5.15. Apache Kafka reactive サンプルの仕組み

このサンプルアプリケーションは、Apache Kafka を使用して実装された Publisher-Subscriber メッセージストリーミングパターンに基づいています。アプリケーションで設定されるコンポーネントは、以下のとおりです。

  • ログメッセージプロデューサーおよびコンシューマーをインスタンス化する KafkaExampleApplication クラス
  • Spring Boot HTTP Starter によって設定され、提供される WebFlux HTTP コントローラー。コントローラーは、メッセージの公開および読み取りに使用される残りのリソースを提供します。
  • プロデューサーが Kafka の log トピックにメッセージを公開する方法を定義する KafkaLogger クラス。
  • Kafka の log トピックからサンプルアプリケーションが受け取るメッセージを表示する KafkaLog クラス。

メッセージを公開します。

  1. ログメッセージをペイロードとして使用して、サンプルアプリケーションに対して HTTP POST 要求を実行します。
  2. HTTP コントローラーはメッセージを公開するのに使用される REST エンドポイントにルーティングし、そのメッセージをロガーインスタンスに渡します。
  3. HTTP コントローラーは、受け取ったメッセージを Kafka の log トピックに公開します。
  4. KafkaLog インスタンスは、Kafka トピックからログメッセージを受け取ります。

メッセージの読み取り:

  1. HTTP GET リクエストをサンプルアプリケーション URL に送信します。
  2. コントローラーは KafkaLog インスタンスからメッセージを取得し、HTTP 応答のボディーとして返します。