【问题标题】:Failing Dockerized Kafka on MacOSMacOS 上的 Dockerized Kafka 失败
【发布时间】:2017-12-01 04:57:00
【问题描述】:

我正在尝试(但失败)在我的 mac 机器(MacOS Sierra (10.12.2))上运行 dockerized kafka。我有 Docker for Mac 版本 17.03.1-ce,构建 c6d412e。这些是我正在使用的图像。

我正在遵循官方quickstart guide 中的建议,使用以下命令运行 Zookeeper 和 Kafka。

docker run -d \
    --net=host \
    --name=zookeeper \
    -e ZOOKEEPER_CLIENT_PORT=32181 \
    confluentinc/cp-zookeeper:3.2.1

docker run -d \
    --net=host \
    --name=kafka \
    -e KAFKA_ZOOKEEPER_CONNECT=localhost:32181 \
    -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:29092 \
    confluentinc/cp-kafka:3.2.1

MAIN 否则这不适用于 docker-compose。再次在我的 Mac 上,版本 1.11.2,构建 dfed245。

version: '2'
services:

  zookeeper:
    image: confluentinc/cp-zookeeper:3.2.2
    environment:
      - ZOOKEEPER_CLIENT_PORT=2181
    ports:
      - 2181:2181

  kafka:
    image: confluentinc/cp-kafka:3.2.2
    environment:
      - KAFKA_BROKER_ID=0
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092
      - KAFKA_AUTO_CREATE_TOPICS_ENABLE=true
    ports:
      - 9092:9092
      - 8082:8082
    depends_on:
      - zookeeper

服务将启动,我什至可以使用这些命令创建主题。

kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic test
kafka-topics --list --zookeeper zookeeper:2181

当我尝试使用此命令进行生产时,zookeeper 保持沉默。

kafka-console-producer --broker-list kafka:9092 --topic test
message-one
message-two

当我尝试用这个命令消费时:

kafka-console-consumer --bootstrap-server zookeeper:2181 --topic test --from-beginning

.. zookeeper 不断吐出这个错误:

...
zookeeper_1  | [2017-06-28 00:55:07,222] INFO Accepted socket connection from /172.20.0.3:52124 (org.apache.zookeeper.server.NIOServerCnxnFactory)
zookeeper_1  | [2017-06-28 00:55:07,222] WARN Exception causing close of session 0x0 due to java.io.EOFException (org.apache.zookeeper.server.NIOServerCnxn)
zookeeper_1  | [2017-06-28 00:55:07,223] INFO Closed socket connection for client /172.20.0.3:52124 (no session established for client) (org.apache.zookeeper.server.NIOServerCnxn)
...

【问题讨论】:

    标签: macos docker apache-kafka


    【解决方案1】:

    您为新的控制台使用者指定了错误的主机和端口。试试console-consumer --bootstrap-server kafka:9092 --topic test --from-beginning

    此外,如果您从 docker 外部(即在本机 macOS 主机上)运行这些命令,则编辑您的 /etc/hosts 文件以添加 kafka 和 zookeeper 作为 localhost 的别名

    您可能还想为 zookeeper 和 kafka 日志声明和挂载一个外部卷,这样当您销毁 docker 映像并升级到新版本时,您的数据不会丢失。

    Confluent 在http://docs.confluent.io/current/cp-docker-images/docs/quickstart.htmlhttp://docs.confluent.io/current/cp-docker-images/docs/quickstart.html 处为这些图像记录了完整的快速入门

    【讨论】:

    • 就是这样。我刚才一直在看控制台。错误。谢谢!
    • 在 docker 外部运行命令时:您不需要编辑 /etc/hosts 文件。只要您正确配置了 Kafka 容器,它就可以开箱即用,请参阅我在 stackoverflow.com/a/44387281/1743580 的回答。
    猜你喜欢
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多