メインコンテンツにスキップ
バージョン: 5.0

RocketMQ EventBridge コアコンセプト

EventBridgeのコアコンセプトを理解することは、EventBridgeをより良く分析し、使用するために役立ちます。この記事では、EventBridgeに含まれる用語について紹介します。

  • EventSource: イベントのソース。EventBridgeに送信されるイベントを管理するために使用され、EventBridgeに送信されるすべてのイベントはソース名情報でマークされ、CloudEventイベントボディのsourceフィールドに対応します。
  • EventBus: イベントバス。EventBridgeに送信されたイベントを格納するために使用されます。
  • EventRule: イベントルール。コンシューマーがイベントを購読する必要がある場合、ルールを通じてフィルタリングと変換情報を設定し、指定されたターゲットエンドポイントにイベントをプッシュできます。
  • FilterPattern: イベントフィルタリングパターン。ルール内のターゲットエンドポイントのフィルタリングを設定するために使用されます。
  • Transform: イベント変換。イベント形式をターゲットエンドポイントに必要なデータ形式に変換します。
  • EventTarget: イベントのターゲットエンドポイント。実際のイベントコンシューマーです。

次に、これらの概念をより詳細に説明します。

EventSource

イベントソースはイベントの発生元を表し、イベントのカテゴリを記述するために使用され、一般的にマイクロサービスシステムと1対1で対応します。例:トランザクションイベントソース、勤怠イベントソースなど。イベントソースはイベントの大分類であり、単一のイベントソースには多くの場合、複数のイベントタイプ(type)が含まれます。たとえば、トランザクションイベントソースには、注文イベント、支払いイベント、払い戻しイベントなどが含まれる場合があります。

さらに、イベントソースはイベントを引き起こしたエンティティを記述するために使用されないことに注意する価値があります。代わりに、CloudEventでは、一般的にsubjectを使用してイベントを引き起こしたエンティティリソースを表します。イベントソースは、市場経済のデパートにおける大カテゴリ区分(生鮮食品エリア、日用品エリア、家電エリアなど)に似ています。イベントセンターの「デパート」では、イベントソースを通じて必要なイベントをすばやく見つけることができます。

EventBus

イベントバスはイベントが格納される場所であり、Local、RocketMQ、Kafkaなど、複数の実装を持つことができます。

イベントプロデューサーがイベントを送信する際には、イベントバスを指定する必要があります。イベントバスはEventBridgeにおけるファーストクラスシチズンであり、他のすべてのリソースはイベントバスを中心に論理的に分離されます。つまり、イベントソースとイベントルールは特定のイベントバスに属している必要があります。異なるイベントバス下のイベントソースとイベントルールは同じ名前を持つことができますが、同じイベントバス下のイベントソースとルールは一意の名前を持つ必要があります。

EventRule

コンシューマーがイベントを購読する必要がある場合、イベントルールを通じてフィルタリングと変換情報を設定し、指定されたターゲットエンドポイントにイベントをプッシュできます。したがって、イベントルールには、イベントフィルタリング+イベント変換+イベントターゲットの3つの部分が含まれます。

img_1.png

FilterPattern

イベントフィルタリングパターンを使用することで、イベントバス上のイベントをフィルタリングし、ターゲットエンドポイントが必要とするイベントのみをプッシュすることで、不要な開放を減らし、コンシューマーのターゲットエンドポイントの圧力を軽減できます。現在、EventBridgeは次のイベントフィルタリング機能をサポートしています。

  • 指定値マッチング
  • プレフィックスマッチング
  • サフィックスマッチング
  • 除外マッチング
  • 数値マッチング
  • 配列マッチング
  • および複雑な組み合わせ論理マッチング

(詳細は他の記事で説明します)

Transform

イベントプロデューサーのイベントは複数のコンシューマーによって購読される場合がありますが、異なるコンシューマーが必要とするデータ形式はしばしば異なります。この場合、プロデューサーによって生成されたイベントをコンシューマーのターゲットエンドが必要とするイベント形式に変換する必要があります。現在、EventBridgeは次のイベント変換機能をサポートしています。

  • 完全なイベント:変換なしで、元のCloudEventsを直接配信します。
  • 部分的なイベント:CloudEventsからJsonPath構文を通じてイベントターゲットに配信する必要があるコンテンツを抽出します。
  • 定数:イベントはトリガーとしてのみ機能し、配信されるコンテンツは定数です。
  • テンプレートコンバーター:テンプレートの定義を通じて配信されるイベント形式を柔軟にレンダリングします。

(詳細は他の記事で説明します)

EventTarget

イベントターゲットは、EventBridgeアーキテクチャにおけるイベントコンシューマーです。このアーキテクチャでは、コンシューマーは独自のビジネスモデルを設計し、共通のAPI(このAPIはイベントを受信するため、およびフロントエンドの管理操作に使用できます)を提供するだけで済みます。EventBridgeは、APIで定義されたデータ形式に従って、イベントを安全かつ確実にターゲットコンシューマーにプッシュします。