docker kafka

Codcodog發表於2021-04-28

本地搭建 kafka 環境

構建環境

下載本倉庫

# 啟動
$ docker-compose up -d

# 停止
$ docker-compose stop

kafka 啟動之後,只能本機訪問,同一區域網其他機器沒法訪問

使用

進入容器

$ docker exec -it kafka /bin/bash

$ cd /opt/kafka/bin

生產訊息

$ ./kafka-console-producer.sh --broker-list localhost:9092 --topic my-topic

消費訊息

$ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning

其他

客戶端訪問 kafka 的時候

  1. 客戶端連線到 KAFKA_LISTENERS 標識的地址,完後認證後,獲取一個 brokers 的返回地址
  2. 通過返回的 brokers 地址重新建立與 kafka 的連線,這個返回的地址就是 KAFKA_ADVERTISED_LISTENERS 的值

因此,若要區域網其他機器也能訪問到容器內的 kafka,則需要宣告 KAFKA_ADVERTISED_LISTENERS 的地址.

欄位說明:

  • KAFKA_LISTENERS 定義 kafka 的服務監聽地址
  • KAFKA_ADVERTISED_LISTENERS kafka 釋出到 zookeeper 供客戶端使用的服務地址

參考

Docker kafka
kafka配置KAFKA_LISTENERS和KAFKA_ADVERTISED_LISTENERS

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章