Kafka-docker:无法生成消息

时间:2018-05-05 21:04:22

标签: docker apache-kafka docker-compose

我使用此项目https://github.com/wurstmeister/kafka-docker在docker容器中设置kafka。我可以成功创建并列出主题,但是一旦我尝试使用

生成消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

bin/kafka-console-producer.sh --broker-list 0.0.0.0:9092 --topic test

我收到以下错误:

  

错误使用密钥向主题测试发送消息时出错:null,value:   4个字节有错误:   (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)   org.apache.kafka.common.errors.TimeoutException:过期1条记录   对于test-0:自批量创建加上延迟时间

以来已经过了1536 ms

我的 docker-compose.yml 看起来像这样:

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    build: .
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: docker.for.mac.localhost
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

我尝试了 KAFKA_ADVERTISED_HOST_NAME 属性的不同选项,包括 docker.for.mac.localhost ,它应该被解析为实际的docker主机ip和 0.0.0.0 ,但结果是一样的。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用此docker-compose,它对我有用:

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    stdin_open: true
    tty: true
    ports:
    - 2181:2181/tcp
  kafka:
    image: wurstmeister/kafka:0.11.0.1
    environment:
      KAFKA_CREATE_TOPICS: test:1:1
      KAFKA_ZOOKEEPER_CONNECT: <<HOST_IP>>:2181
      KAFKA_ADVERTISED_HOST_NAME: <<HOST_IP>>
      KAFKA_ADVERTISED_PORT: '9092'
      KAFKA_BROKER_ID: '999'
    stdin_open: true
    tty: true
    links:
    - zookeeper:zookeeper
    ports:
    - 9092:9092/tcp

答案 1 :(得分:-3)

请勿使用127.0.0.1之类的本地IP。改用真正的IP。