Pulsar je messaging platforma nové generace. Oddělení compute od storage, multi-tenancy a tiered storage.
Pulsar vs Kafka¶
Klíčový rozdíl: stateless brokery + Apache BookKeeper pro storage.
Vorteile¶
- Multi-tenancy — nativní izolace
- Tiered storage — offload do S3
- Geo-replication — vestavěná
- Pulsar Functions — serverless processing
import pulsar, json
client = pulsar.Client('pulsar://localhost:6650')
producer = client.create_producer('persistent://t/ns/orders')
producer.send(json.dumps(order).encode())
consumer = client.subscribe('persistent://t/ns/orders',
subscription_name='proc', consumer_type=pulsar.ConsumerType.Shared)
while True:
msg = consumer.receive()
process(json.loads(msg.data()))
consumer.acknowledge(msg)
Architektur und praktischer Einsatz¶
Der zentrale architektonische Vorteil von Pulsar liegt in der Trennung von Brokern und der Storage-Schicht (Apache BookKeeper). Broker sind stateless und koennen unabhaengig von den Daten horizontal skaliert werden. Dies vereinfacht Operationen wie Rolling Upgrades oder das Hinzufuegen von Kapazitaet ohne Datenverschiebung.
Pulsar Functions ermoeglichen die Nachrichtenverarbeitung direkt innerhalb der Plattform, ohne externes Stream Processing wie Flink oder Spark. Fuer einfache Transformationen, Routing oder Enrichment genuegt es, eine Python- oder Java-Funktion direkt in Pulsar zu deployen. In der Praxis bewaehrt sich Pulsar besonders in Multi-Tenant-Umgebungen, in denen verschiedene Teams isolierte Namespaces mit eigenen Retention Policies und Rate Limits benoetigen. Tiered Storage verschiebt aeltere Daten automatisch in guenstigen Object Storage (S3, GCS) und reduziert so die Hot-Storage-Kosten.
Zusammenfassung¶
Pulsar je alternativa ke Kafce pro multi-tenancy a geo-replikaci. Oddělení compute/storage = lepší škálovatelnost.