コンテンツへスキップ

イベントメッシュ

イベントメッシュは、イベントを送信者から受信者に配信することを簡素化するように設計された動的なインフラストラクチャです。Apache KafkaやRabbitMQなどの従来のメッセージチャネルアーキテクチャと同様に、イベントメッシュはメッセージの非同期(ストアアンドフォワード)配信を提供し、送信者と受信者を時間的に切り離すことができます。従来のメッセージチャネルベースの統合パターンとは異なり、イベントメッシュは、基礎となるイベントトランスポートインフラストラクチャ(Kafka、RabbitMQ、またはクラウドプロバイダーインフラストラクチャなどのフェデレーションされたソリューションのセットである可能性があります)から切り離すことにより、送信者と受信者のルーティングに関する懸念も簡素化します。メッシュは、あらゆる環境、さらにはクラウド間でも、相互接続されたイベントブローカーのネットワークを介して、プロデューサーからコンシューマーにイベントをシームレスかつ疎結合な方法で転送します。

イベントメッシュでは、イベントを生成するアプリケーションと消費するアプリケーションの両方が、イベントルーティングやサブスクリプション管理を実装する必要はありません。イベントプロデューサーはすべてのイベントをメッシュに公開でき、メッシュは、アプリケーションがイベントをチャネルに細分化する必要なく、関心のあるサブスクライバーにイベントをルーティングできます。イベントコンシューマーは、複数のサブスクリプションとアプリケーションレベルのイベントフィルタリングを実装して目的のイベントを選択する必要なく、メッシュ構成を使用して、きめ細かいフィルター式を使用して関心のあるイベントを受信できます。イベントのシリアル化とデシリアル化は、より複雑なルーティングとフィルタリングを実装する必要なく、言語ネイティブライブラリで処理できます。

Knativeイベントメッシュ

上記のイベントブローカーは、Knative EventingのコアAPIであるBroker APIに直接マッピングされます。これは、イベントイングレスのための発見可能なエンドポイントを提供し、Trigger APIは、イベントフィルタリングと配信機能を提供します。これらのAPIを使用すると、Knative Eventingは上記の定義に従ってイベントメッシュを提供します

Raw Trace

上記の図に見られるように、イベントメッシュは、イベントのイングレスとイグレスのためにBrokerおよびTrigger APIで定義されています。Knative Eventingは、"ダックタイピング"と呼ばれる部分スキーマパターンを使用して、複数のリソースがイベントメッシュに参加できるようにします。ダックタイピングを使用すると、複数のリソースタイプが、"URLでイベントを受信できる"または"宛先にイベントを配信できる"などの共通機能をアドバタイズできます。Knative Eventingはこれらの機能を使用して、Brokerにイベントを送信するための相互運用可能なソースのプールと、Triggerルーティングされたイベントの宛先を提供します。Knative Eventing APIには、3つのカテゴリのAPIが含まれています

  • イベントイングレス:イベント送信者の接続をサポートします:SourceダックタイプとSinkBindingにより、アプリケーションがイベントをBrokerに配信するように簡単に構成できます。アプリケーションはイベントを送信でき、ソースがインストールされていなくてもEventingを使用できます。
  • イベントルーティングBrokerおよびTriggerオブジェクトは、メッシュとイベントルーティングの定義をサポートします。Brokerはアドレス指定可能なイベント宛先の定義と一致するため、あるクラスターのBrokerから別のクラスターのBrokerにイベントをリレーできることに注意してください。同様に、Triggerは多くのソースと同じ配信可能なダックタイプを使用するため、イベントの直接配信の代わりにイベントメッシュを簡単に代用できます。
  • イベントイグレス:配信可能なコントラクトは、宛先としてベアURLを指定するか、アドレス指定可能なインターフェイス(status.address.urlを持つ)を実装するKubernetesオブジェクトを参照することをサポートします。すべてのイベント宛先("シンク")は、CloudEvents配信仕様を実装する必要がありますが、必ずしもKubernetesの動作を実装する必要はありません。URLで参照されるベアVMは、許容可能なイベントイグレスです。

イベントソースとシンクは、イベントエコシステムをサポートするコンポーネントですが、イベントメッシュの一部ではないことに注意することが重要です。イベントメッシュの一部ではありませんが、これらのエコシステムコンポーネントはメッシュを補完し、"イベントメッシュ"とのスムーズな統合または接続のためにダックタイプAPI(Callable/Addressable)からメリットを得ます。

サイトトラフィックを把握するために、分析とCookieを使用しています。当サイトの利用に関する情報は、その目的のためにGoogleと共有されます。詳細はこちら。