Spring Bootアプリケーション用のローカルKafkaコンテナのセットアップ

今日のマイクロサービスおよびイベント駆動アーキテクチャにおいて、Apache Kafkaはストリーミングアプリケーションの事実上の標準です。しかし、Spring Bootアプリケーションと組み合わせてローカル開発のためにKafkaを設定するのは難しい場合があります。特に、ローカルで実行するための設定が必要な場合です。

Spring Bootアプリケーションは、spring-kafka Mavenパッケージを通じてKafka統合をサポートしています。spring-kafkaを使用するには、Kafkaインスタンスに接続する必要があります。通常、開発中はローカルのKafkaインスタンスを実行し、それに対してビルドを行います。しかし、Docker Desktopとコンテナを使用すると、ローカルのKafkaインスタンスを実行するよりも、はるかに簡単にセットアップできます。この記事では、Spring Bootアプリケーションと一緒にローカルKafkaコンテナを設定する手順を案内します。

前提条件

  1. Docker Desktopをセットアップする必要があります。これを行うには、こちらの記事を参照できます。
  2. spring-kafkaパッケージが構成されたSpring Bootアプリケーション。

Kafkaコンテナの実行

Kafkaコンテナを実行するために、まず以下のdocker-composeファイルを使用します:

YAML

 

このdocker-composeファイルには、Kafkaコンテナとその依存関係であるZookeeperコンテナをプルするための設定が含まれています。Zookeeperはクラスター内のKafkaブローカーノードを管理します。これに関する詳細はこの 記事 で確認できます。

コンテナをDocker Desktopに登録するために、以下のコマンドを使用します:

PowerShell

 

これにより、必要なイメージがプルされ、コンテナが起動します。コンテナが起動すると、Docker Desktopで以下のようにコンテナを見ることができます:

Kafkaコンテナが起動したので、次にDocker Desktopコンソールを使用して、以下のコマンドで必要なトピックを作成できます:

PowerShell

 

コンテナが起動し、必要な前提条件が実行されたので、Spring Bootアプリケーションを起動できます。Spring Bootアプリケーションのために、Kafkaのブートストラップアドレスを以下のように設定します:

Properties files

 

Spring Bootアプリケーションを起動すると、Kafkaとの接続に関するログが表示されるはずです。これは、Spring Bootアプリケーションのタイプによって、プロデューサーかコンシューマーかに依存します。

記事に記載されている手順に従って、KafkaコンテナとSpring Bootアプリケーションを使用してローカル開発環境をセットアップしました。

Source:
https://dzone.com/articles/setting-up-local-kafka-container-for-spring-boot-application