Docerを用いてコマンドラインだけでKafka入門
目次
背景
必要に迫られて、Kafkaの勉強をはじめました。今回はDockerを用いて環境を速攻で構築します。
ハンズオン
Kafka起動
docker-compose.yml
に以下の通り記載し、該当ファイルが存在するディレクトリで上で、docker-compose up --no-recreate --scale kafka=<起動したいブローカー数>
を発行します。
version: '3' services: zookeeper: image: wurstmeister/zookeeper expose: - "2181" kafka: image: wurstmeister/kafka expose: - "9092" environment: HOSTNAME_COMMAND: hostname KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 depends_on: - "zookeeper"
動作確認
トピック作成
kafkaのコンテナ上で以下を実行します。
# /opt/kafka/bin/kafka-topics.sh --zookeeper zookeeper:2181 --create --partitions <任意の数> --replication-factor <任意の数> --topic test
主要なオプションに関しては、以下の通りです。
- --partitions: パーティションの数を指定する。詳しくはこちらを参照ください。
- --replication-factor: パーティション毎に作成されるレプリカの数を指定します。起動したブローカー数以下である必要があります。詳しくは、上記リンクを参照ください。
コンシューマ起動
kafkaのコンテナ上で以下を実行します。
# /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --group consumer-group
主要なオプションに関しては、以下の通りです。
プロデューサ起動
kafkaのコンテナ上で以下を実行します。入力した文字がコンシューマ上で出力されます。
# /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test > // 文字を入力
主要なオプションに関しては、以下の通りです。
オフセットの状態確認
kafkaのコンテナ上で以下を実行します。トピック, パーティション毎のオフセットが確認可能です。
# /opt/kafka/bin/kafka-consumer-groups.sh --describe --bootstrap-server localhost:9092 --group consumer-group GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID consumer-group test 0 130 143 13 - - -