Apache Pulsarとは

山頂部に雪が積もった山々の上にある星空と水辺。

執筆者

Alice Gomstyn

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Apache Pulsarとは

Apache Pulsarは、クラウドネイティブのオープンソース分散メッセージングおよびストリーミング・プラットフォームです。Apache Kafkaは長年にわたり、リアルタイムイベント・ストリーミングとデータ処理の標準でしたが、ここ10年でApache Pulsarが強力な代替手段として台頭してきました。

 

企業はますます複雑化するITおよびデータ環境に直面しており、アプリケーション、システム、およびサービス間での高速で信頼性の高いデータ交換を保証するために、メッセージングおよびストリーミング・プラットフォームに依存しています。リアルタイムのデータ分析が実行可能な洞察を得るための重要な要因となり、データ・ストリームデータ処理の速度を加速することが最優先事項となっています。2025年のIDCのデータによると、調査対象の企業は、ユースケースの63%において、データは数分以内に処理されなければ役に立たないと回答しています。

Pulsarは、従来のメッセージング・システムの機能とPub/Subシステムの機能を組み合わせており、マイクロサービス、インスタント・メッセージング、データ統合などのユースケースに独自の適性を持っています。Geoレプリケーション、マルチテナンシー、階層型ストレージなど、さまざまな機能と利点がPulsarの汎用性を実現しています。

元はYahoo社で開発され、2016年にApache Software Foundationによりオープンソース化されたApache Pulsarは、現在では多くの大手組織で用いられ、全体として1日あたり数千億件のイベントを管理しています。

The DX Leaders

AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。

ご登録いただきありがとうございます。

ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。

メッセージングとイベント・ストリーミング

Apache Pulsarの重要性を理解するには、メッセージングおよびイベント・ストリーミング・プラットフォームがどのように機能するのか明確に把握することから始まります。

メッセージング

メッセージは、アプリケーションが他のアプリケーションが使用できるように作成するデータのパケットです。これらのパケットは、消費側アプリケーションが処理するまで、送信された順序で使用されます。

メッセージング・システムは、これらのメッセージの交換を容易にします。従来のメッセージング・システムはミドルウェア・ソリューション(メッセージ指向ミドルウェア、またはMOMとも呼ばれる)であり、一般的にポイント・ツー・ポイント・メッセージングとPub/Subメッセージングという2つのメッセージ配信パターンをサポートしています。

ポイント・ツー・ポイント・メッセージングでは、1つのアプリケーション(センダーと呼ばれる)が、メッセージ・キューという場所にメッセージを送信し、そこにメッセージが保管されます。次に、別のアプリケーション(レシーバーまたはコンシューマーと呼ばれます)がキューからメッセージを受信し、処理します。各メッセージは一度だけ消費されます。

Pub/Subメッセージング(またはパブリッシュ/サブスクライブメッセージング)では、メッセージを生成するアプリケーションはパブリッシャーと呼ばれます。このメッセージを利用するアプリケーションはサブスクライバーと呼ばれます。各メッセージはトピックと呼ばれるカテゴリーに公開され、そのトピックをサブスクライブするすべてのアプリケーションは、公開されるすべてのメッセージのコピーを受信します。

パーティションとパーティションによって分割されたトピックは、メッセージ処理を高速化できます。分割されたトピックに公開されたメッセージは、複数のブローカーに分散されます。

Pub/Subメッセージングは、ブロードキャスト形式の「1 対多」通信向けに設計されています。ポイント・ツー・ポイント・メッセージングは、その名前が示すように、単一の送信者と単一の受信者の間で情報を交換します。

従来のメッセージング・システムの中で、 オープンソース・プラットフォームであるRabbitMQが、多くの場合最も人気があるものとして挙げられます。

イベント・ストリーミング

イベント・ストリーミング・プラットフォームは、アプリケーション、データベース、IoT(モノのインターネット)デバイスからリアルタイム・データをキャプチャします。その後、データはさまざまな宛先に転送され、即時に処理、分析、または保存されます。

拡張性で知られるイベント・ストリーミング・プラットフォームは、レコードのストリームをトピックに整理し、事前に決められた時間だけ保管することができます。ただし、従来のメッセージング・システムとは異なり、イベント・ストリーミング・プラットフォームはメッセージの配信を保証したり、どのコンシューマーがメッセージを受信したかを追跡したりすることはできません。ポイント・ツー・ポイントのメッセージング配信ではなく、Pub-Subメッセージングに依存しており、メッセージ・ルーティングの柔軟性が低くなります。

イベント・ストリーミング・プラットフォームの中で、Apache Kafkaが最も広く使用されています。

AI Academy

生成AIの成功の鍵はデータ管理

生成AIの使用を成功させるために、高品質のデータが不可欠である理由をご覧ください。

Apache Pulsarの主な機能

Apache Pulsarは、RabbitMQやApache Kafkaなどのプラットフォームの機能を1つのソリューションに組み合わせたものです。イベントをストリーミングし、Kafkaなどの複数のコンシューマーにメッセージを配信できます。キューイングをサポートし、RabbitMQなどの単一のコンシューマーにメッセージを送信できます。

しかし、Pulsarは単なる従来製品の総和ではありません。Yahoo社は当初、自社の組織のニーズに対処するためにこのプラットフォームを開発したため、特定の競争上の優位性が最初から組み込まれていました。それ以来数年間で、他の改善策により、Pulsarは高性能のメッセージングおよびストリーミング・プラットフォームとしてさらに強化されました。

現在、Apache Pulsarの最も魅力的な機能には、次のようなものがあります。

  • マルチテナント
  • Geoレプリケーション
  • 多層アーキテクチャー
  • 階層型ストレージ
  • IOコネクター
  • 柔軟なサブスクリプション

マルチ・テナンシー

マルチテナンシーは、Apache Pulsarを他のプラットフォームと差別化した独自の機能の1つでした。マルチテナント・ソフトウェア・アーキテクチャーでは、ソフトウェア・アプリケーションの単一インスタンス(およびその基盤となるデータベースとハードウェア)が複数のテナント(またはユーザー・アカウント)にサービスを提供します。マルチテナンシーのメリットには、システムのセットアップ、構成、保守、アプリケーションのデプロイメントが簡素化されることだけでなく、コスト削減なども含まれます。

Apache Pulsarでは、さまざまなチームがメッセージング・システムを安全に共有できます。各テナントには独自の認証、承認、ポリシーがあります。テナントは、名前空間(トピックの論理グループ)と呼ばれるものにさらに分類できます。この分割により、開発、ステージング、本番などのさまざまな環境をシングル・テナント内で簡単にサポートできるようになります。

Geoレプリケーション

災害復旧をサポートしたり、アプリケーションを世界規模で運用したりするためには、遠隔地へのメッセージの複製が重要です。他のプラットフォームとは異なり、Pulsarはこの機能を活用するために複雑な設定やアドオンを必要としません。

Geoレプリケーションを使用すると、アプリケーションはローカルのPulsarクラスターに接続しながら、世界中のクラスターに送信できます。作成者が複製された名前空間内のトピックにメッセージを公開すると、そのメッセージは設定された遠隔地にあるジオロケーションまたはロケーションに自動的に複製されます。

多層アーキテクチャー

Pulsarアーキテクチャーは、メッセージ配信コンポーネント(メッセージ・ブローカー)とメッセージ・ストレージ層を分離します。メッセージは、耐久性のあるログ・ストレージ・ソリューションのリーダーとして知られるApache BookKeeperによって保管されます。

性能を向上させるために、BookKeeperはブッキーと呼ばれる複数のサーバーにデータを分散します。(BookKeeper台帳のメタデータはApache ZooKeeperに保管されます。)必要に応じてブッキーを追加できるため、大量のデータ処理に適した水平方向の拡張性が実現します。このアーキテクチャーにより、Pulsarは低レイテンシーを実現すると同時に、大量のデータを短時間で転送できます。これはハイ・スループットと呼ばれます。

Pulsarのアーキテクチャーは、クラウドネイティブ・アーキテクチャーとも考えられます。Pulsarもクラウド・コンピューティングも、コンピューティングとストレージを分離しています。さらに、Pulsarは、現代のクラウド・インフラストラクチャの構成要素であるオープンソースのコンテナ・オーケストレーション・プラットフォームであるKubernetesにデプロイできます。

階層型ストレージ

Apache Pulsarには階層型ストレージも備わっています。この機能により、Pulsarのクライアントはバックログへのアクセスが可能となり、古いバックログ・データをApache BookKeeperから低コストの長期ストレージに移動できます。

Pulsar階層型ストレージは、 Apache jclouds (Java プラットフォーム用のオープンソースのマルチクラウド・ツールキット)を使用し、AWS S3(Amazon S3)、GCS(Google Cloud Storage)、Azure、Aliyun などのソリューションを通じて長期ストレージをサポートしています。

IOコネクター

Apache Pulsarは、Pulsar IOコネクタのおかげで、外部システムで簡単に使用できます。これらのコネクタは、Pulsarと他のシステム(ストリーム処理エンジン、 データ・パイプラインAPI、その他のメッセージング プラットフォームなど)との間のブリッジとして機能します。

Pulsarコネクターには、ソースとシンクの2つのタイプがあります。ソース・コネクターは外部システムからPulsarにデータを送信し、シンク・コネクターはその逆に、Pulsarから外部システムにデータを送信します。一般的に使用されているPulsarコネクターには、MySQL、MongoDB、Cassandra、RabbitMQ、Kafka、Flume、Redisなどがあります。

柔軟なサブスクリプション

Apache Pulsarは、ユーザーがメッセージング・パターンを設定する際に役立つ、4つの異なるサブスクリプション・タイプ1をサポートしています。

  • 排他的:サブスクリプションを介してメッセージを受信できるのは1人のコンシューマーだけです。

  • フェイルオーバー:指定された1次コンシューマーへのメッセージ送信が失敗すると、メッセージは代わりにスタンバイ・コンシューマーに送信され、処理されます。

  • 共有:メッセージは「ラウンドロビン」方式で配信され、複数のコンシューマーがメッセージを受信しますが、各メッセージは1人のコンシューマーに配信されます。

  • キーの共有:メッセージはメッセージ・キーに割り当てられ、関連するメッセージの関連付けに役立ちます。同じキーを持つメッセージは、特定の順序でコンシューマーに送信されます。

その他のApache Pulsar機能

その他の注目すべきPulsarの機能には、以下が含まれます。

ブローカーの負荷分散:Pulsarは、PulsarブローカーのCPU、メモリ、ネットワークの使用状況を監視し、必要に応じてワークロードを移動させてバランスを最適化し、個々のブローカーの過負荷を回避します。

スキーマ・レジストリー:Pulsarのスキーマ・レジストリーを使用することで、Pulsarのクライアントはトピックごとにデータ・スキーマをアップロードし、プロデューサーとコンシューマーが互換性のあるメッセージ形式を使用できます。

クライアント・ライブラリ:クライアント・ライブラリは、アプリケーションとAPI、データベース、サービス間の対話を簡素化する、事前構築された関数とプロシージャです。Pulsarは、プログラミング言語固有のライブラリ(Java、C++、Python、Node.jsのライブラリを含む)と言語に依存しないライブラリ(RESTおよびWebSocket)をサポートしています。

メッセージ保持:従来のシステムでは、一度消費されたメッセージは削除されます。Pulsarを使用すると、ユーザーはメッセージが消費された後でも保存するように保存ポリシーを設定できます。これは、イベント駆動型のアーキテクチャー・モデルをサポートできる機能です。

Apache Pulsarのユースケース

Apache Software Foundationの次のユースケースは、Apache Pulsarの有用性と多用途性を示しています。2

メッセージング・プラットフォームの統合

Apache Pulsarは、複数のメッセージング・ユースケース(メッセージ・キューイングやストリーミングを含む)とマルチテナンシーをサポートしており、複数のチームが最適な方法でApache Pulsarを使用できるため、企業がメッセージング技術の統合を追求する際に選ばれることが多いプラットフォームです。

ミッションクリティカルなアプリケーションの障害レジリエンス

金融取引などの重要なアプリケーションのデータ損失の可能性を最小限に抑えたい企業は、Apache Pulsarの障害レジリエンス機能を活用できます。つまり、Pulsarを介して供給されるメッセージは、複数のBookKeeperノードに複製されます。さらに、ハードウェアに障害が発生しても、メッセージが失われることはありません。

マイクロサービス通信

Apache Pulsarは、間接的なAPI呼び出しを通じてマイクロサービス間で必要となる継続的な通信をサポートします。サービスは、他のサービスがサブスクライブするトピックにメッセージを送信できます。他のメッセージング・システムもこの機能を提供できますが、Pulsarの水平拡張性はそれとは一線を画しています。Pulsarは、大量のリクエストの流入に対応するためにプラットフォームを数分以内にスケールアップできます。

タスク・キューのサポート

メッセージング・システムは一般的にタスクキュー(アプリケーションのパフォーマンスを妨げることなく、バックグラウンド・ジョブの非同期実行を整理するシステム)をサポートします。Apache Pulsarは、複数のコンシューマーにメッセージを配布する共有サブスクリプションと、タスクの完了を確認するメッセージ確認機能によってタスク・キュー・システムをサポートします。

関連ソリューション
データ管理ソフトウェアとソリューション

データ・サイロを排除し、複雑さを軽減し、データ品質を向上させることで、卓越した顧客体験と従業員体験を実現するデータ・ストラテジーを設計します。

データ管理ソリューションの詳細はこちら
IBM watsonx.data

watsonx.dataを使用すると、オープンでハイブリッド、かつ管理されたデータ・ストアを通じて、データがどこに保存されていても、すべてのデータを使用して分析とAIを拡張できます。

watsonx.dataについてはこちら
データ分析コンサルティングサービス

IBMコンサルティングと連携することで、企業データの価値を引き出し、ビジネス上の優位性をもたらす洞察を活用した組織を構築します。

分析サービスを発見する
次のステップ

データ・サイロを排除し、複雑さを軽減し、データ品質を向上させることで、卓越した顧客体験と従業員体験を実現するデータ・ストラテジーを設計します。

データ管理ソリューションの詳細はこちら watsonx.dataについてはこちら
脚注

"Messaging." The Apache Software Foundation. Retrieved 4 August 2025.

"Pulsar Use Cases." The Apache Software Foundation. Retrieved 4 August 2025.