■ はじめに
Apache Kafka ~ 環境構築 / Windows編 ~
https://dk521123.hatenablog.com/entry/2023/04/23/235534
で、Docker compose 版をいつか書こうと思ってたけど 意外と簡単だったので、 今回、Apache KafkaのDocker composeでの構築手順をまとめる
目次
【1】構築手順 - Docker compose版 0)前提条件 1)compose.yaml を書く 2)「docker compose up -d」実行 3)補足:作成した構成物について 【2】Quick Start 1)Topicの作成 2)イベントの書き込み 3)イベントの読み込み 【3】環境破棄
【1】構築手順 - Docker compose版
* 以下を参考
https://developer.confluent.io/quickstart/kafka-docker/
* Topic作成などを行いたい場合は、以下の関連記事を参照のこと
Docker compose で Kafka構築時に Topic を作るには
https://dk521123.hatenablog.com/entry/2023/07/22/145643
0)前提条件
* Docker / Docker compose の環境が構築されていること
Docker compose ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2022/04/28/000000
WSL ~ Docker-CE + Genie / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/03/003836
Docker compose ~ Version 2 ~
https://dk521123.hatenablog.com/entry/2023/01/02/000000
1)compose.yaml を書く
compose.yaml
version: '3' services: zookeeper: image: confluentinc/cp-zookeeper:7.3.2 container_name: zookeeper environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 broker: image: confluentinc/cp-kafka:7.3.2 container_name: broker ports: # To learn about configuring Kafka for access across networks see # https://www.confluent.io/blog/kafka-client-cannot-connect-to-broker-on-aws-on-docker-etc/ - "9092:9092" depends_on: - zookeeper environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,PLAINTEXT_INTERNAL://broker:29092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
2)「docker compose up -d」実行
docker compose up -d
3)補足:作成した構成物について
+--------+ +-----------------------------+ | Client | broker-0:9092 | Booker | | | -------------- | Port:9092/Internal:19092 | +--------+ +-----------------------------+ | zookeeper:2181 +------------+ | Zookeeper | | Port:2181 | +------------+
a) Broker
* Producerからデータを受け、Consumerに渡す
b) Zookeeper
* Apache Zookeeper といって、Kafka だけのものではない => 以下のサイトで 「同期, 設定管理, グルーピング, 名前管理, などの機能を提供するサービス」
https://qiita.com/szit/items/aec0ce677a28c83c6893
* Kafka では、Brokerをマネジメントする
【2】Quick Start
1)Topicの作成
docker exec broker \ kafka-topics --bootstrap-server broker:9092 \ --create \ --topic quickstart
2)イベントの書き込み
docker exec --interactive --tty broker \ kafka-console-producer --bootstrap-server broker:9092 \ --topic quickstart > This is my first kafka message... > Hello world! > This is my third kafka message. I’m on a roll :-D < Ctrl-C>
3)イベントの読み込み
docker exec --interactive --tty broker \ kafka-console-consumer --bootstrap-server broker:9092 \ --topic quickstart \ --from-beginning <↓が表示されるはず> This is my first kafka message... Hello world! This is my third kafka message. I’m on a roll :-D
【3】環境破棄
docker compose down -v
参考文献
https://amateur-engineer-blog.com/getting-started-kafka-with-docker-compose/
関連記事
Apache Kafka ~ 環境構築 / Windows編 ~
https://dk521123.hatenablog.com/entry/2023/04/23/235534
Apache Kafka ~ 環境構築 / Linux編 ~
https://dk521123.hatenablog.com/entry/2024/02/05/153202
Apache Kafka ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/04/26/103421
Apache Kafka ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/01/000000
Apache Kafka ~ Kafkaコマンド ~
https://dk521123.hatenablog.com/entry/2023/05/16/000000
Apache Kafka ~ 設定値 ~
https://dk521123.hatenablog.com/entry/2023/05/28/151212
Apache Kafka ~ Web UI / Kafdrop編 ~
https://dk521123.hatenablog.com/entry/2023/07/30/174239
Apache Kafka ~ Web UI / kafka-ui編 ~
https://dk521123.hatenablog.com/entry/2023/07/31/000152
Kafka Connect ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/10/22/220717
Kafka Connect ~ 環境構築 / Docker compose編 ~
https://dk521123.hatenablog.com/entry/2023/08/11/220921
Kafka Connect ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/04/29/185133
Kafka Connect ~ 基本編 / PostgreSQL ~
https://dk521123.hatenablog.com/entry/2023/05/02/233806
Kafka Connect ~ Connector 構成プロパティ ~
https://dk521123.hatenablog.com/entry/2023/06/02/011131
Kafka Connect ~ Rest API ~
https://dk521123.hatenablog.com/entry/2023/05/31/000000
Docker compose で Kafka構築時に Topic を作るには
https://dk521123.hatenablog.com/entry/2023/07/22/145643
WSL ~ Docker-CE + Genie / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/03/003836
Docker compose ~ Version 2 ~
https://dk521123.hatenablog.com/entry/2023/01/02/000000
Amazon MSK ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/04/21/000000
Amazon MSK ~ 基本編 / Connector ~
https://dk521123.hatenablog.com/entry/2023/05/20/003516
Terraform ~ AWS MSK ~
https://dk521123.hatenablog.com/entry/2023/05/14/122215
Terraform ~ AWS MSK Connect ~
https://dk521123.hatenablog.com/entry/2023/05/25/000000
Scala ~ Apache Kafka / Producer ~
https://dk521123.hatenablog.com/entry/2023/04/27/235703
Scala ~ Apache Kafka / Consumer ~
https://dk521123.hatenablog.com/entry/2023/04/28/014737
Docker compose ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2022/04/28/000000