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.
Výhody¶
- 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)
Architektura a praktické nasazení¶
Klíčová architektonická výhoda Pulsaru spočívá v oddělení brokerů od storage vrstvy (Apache BookKeeper). Brokery jsou stateless a lze je horizontálně škálovat nezávisle na datech. To zjednodušuje operace jako rolling upgrade nebo přidávání kapacity bez přesunu dat.
Pulsar Functions umožňují zpracování zpráv přímo uvnitř platformy bez potřeby externího stream processingu jako Flink nebo Spark. Pro jednoduché transformace, routování nebo enrichment stačí nasadit Python nebo Java funkci přímo do Pulsaru. V praxi se Pulsar osvědčuje zejména v multi-tenant prostředích, kde různé týmy potřebují izolované namespaces s vlastními retention policies a rate limits. Tiered storage automaticky přesouvá starší data do levného object storage (S3, GCS), čímž snižuje náklady na hot storage.
Shrnutí¶
Pulsar je alternativa ke Kafce pro multi-tenancy a geo-replikaci. Oddělení compute/storage = lepší škálovatelnost.