Kafka vs Pulsar: どちらのストリーミングプラットフォームを選ぶ?
Kafkaは巨大なエコシステムを持つ主流の分散イベントログであり、Pulsarはcompute/storageを分離し、マルチテナンシーを組み込んだストリーミングプラットフォームです。
Kafkaはbrokerとログストレージを組み合わせ、最大のストリーミングエコシステム(Connect、Streams、Schema Registry)を持っています。Pulsarはserving(broker)をstorage(BookKeeper)から分離し、ネイティブなマルチテナンシー、geoレプリケーション、tiered storage、そしてストリーミングとキューの両方のセマンティクスを提供します。Kafkaは成熟度とエコシステムで勝り、Pulsarはアーキテクチャの柔軟性と組み込みのマルチテナンシーを提供します。
| Kafka | Pulsar | |
|---|---|---|
| アーキテクチャ | broker + ログ | broker + BookKeeper |
| マルチテナンシー | アドオン | ネイティブ |
| モデル | ストリーミング | ストリーミング + キュー |
| エコシステム | 最大 | 成長中 |
| 最適な用途 | 成熟したストリーミングスタック | マルチテナント、tiered storage |
ユースケースとエコシステム
Kafkaは、ツール、採用人材のプール、どこにでもあるマネージドの提供のおかげで安全なデフォルトです。Pulsarは、ネイティブなマルチテナンシー、ストリーミングとキューの統合セマンティクス、あるいはstorageとcomputeの独立したスケーリングが必要な場合に魅力的です。KafkaのKRaftモードも運用面のストーリーを簡素化しました。
CIにおいて
どちらも統合テスト用にcontainerで動作しますが、Pulsarは可動部品がより多くあります(brokerに加えてBookKeeper)。produce/consumeの前に準備完了を待ちます。どちらもマネージドrunnerに適しており、より高速なrunnerはクラスタの起動とend-to-endのテストを短縮します。
結論
最大のエコシステム、ツール、採用のしやすさには、Kafkaです。ネイティブなマルチテナンシー、tiered storage、ストリーミング/キューの統合セマンティクスには、Pulsarです。ほとんどのチームはKafkaをデフォルトにし、そのマルチテナントで分離ストレージのアーキテクチャが明確に適合する場合にPulsarを選びます。