【アパッチ パルサー】

Apache Pulsar とは?

最終更新:
💡 メッセージの配信と保存を分けて支える、分散基盤

Apache Software Foundationの分散メッセージング・ストリーミング基盤。ブローカーが送信側と受信側を仲介し、永続メッセージの保存はApache BookKeeperが担う。複数テナントやクラスタ間の複製を扱える。

📌 このページのポイント
配信する役と、保存する役を分けるProducer送信側Broker受付・配信Consumer受信側BookKeeper永続保存保存読み出し
永続メッセージを扱う概念図。受信側へ届けるのはBrokerで、保存データが必要ならBookKeeperから読み出します。メタデータ管理、キャッシュ、確認応答などの内部構成は省略しています。
ひよこ ひよこ
Apache Pulsarでは、誰がメッセージを届けるの?
ペンギン先生 ペンギン先生
送信側から受け取ったブローカーが、受信側へ配信するよ。永続メッセージはBookKeeperに保存し、必要ならブローカーがそこから読み出す。受信側がBookKeeperから直接受け取る図ではないんだ
ひよこ ひよこ
配信と保存を分けると何がいいの?
ペンギン先生 ペンギン先生
ブローカーと保存側を別々に増やせる設計だよ。ただ、分離するだけで運用が簡単になるとは限らない。保存側やメタデータ管理の仕組みも含め、構成と必要な容量を考えるんだ
ひよこ ひよこ
複数の会社や部署で使えるの?
ペンギン先生 ペンギン先生
テナントの下に名前空間、その下にトピックを置いて管理できるよ。組織やアプリごとに分けるのに使える。名前を分けるだけでアクセスが安全になるわけではなく、認証や認可などの設定も必要だよ
ひよこ ひよこ
購読方式は、どう選ぶの?
ペンギン先生 ペンギン先生
4種類あるよ。Exclusiveは一つの受信側、Sharedは複数へ分配、Failoverは受信役を引き継ぐ方式。Key_Sharedは同じキーのメッセージを同じ受信側へ割り当てる。Sharedは順序を保証せず、Key_Sharedにもバッチの設定など条件があるんだ
ひよこ ひよこ
別の地域への複製は、すぐ同じ状態になるの?
ペンギン先生 ペンギン先生
非同期のGeo-Replicationでは、ローカルに保存してから別クラスタへ複製するため、遅れが生じうるよ。BookKeeperによる同期方式もあるが、複数拠点の確認を待つ遅延がある。クラスタや複製先を設定し、方式に合う障害時の動作を考えるんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Apache Pulsar」って出てきたら「配信と保存を分けて支える、分散メッセージング基盤」と思えればだいたいOK!
📖 おまけ:英語の意味
「Apache Pulsar」 = Apacheのメッセージング基盤の名称
💬 ここでは天体のパルサーではなく、ソフトウェアのApache Pulsarを説明しているよ。Kafkaの後継版という位置付けではなく、別のプロジェクトなんだ

参考資料

← 用語集にもどる