【问题标题】:Unable to start the Kafka instance using docker无法使用 docker 启动 Kafka 实例
【发布时间】:2021-12-12 17:53:30
【问题描述】:

我正在尝试运行 multibroker kafka 设置,下面是我的 docker-compose.yml 文件

 version: '3'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zoom
    ports:
      - "2181:2181"
  kafka1:
      image: wurstmeister/kafka
      container_name: kafkacont1
      ports:
        - "9092:9092"
      environment:
          KAFKA_BROKER_ID: 1
          KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
          KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092,PLAINTEXT_HOST://localhost:29092
          KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
          KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
          KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

  kafka2:
    image: wurstmeister/kafka
    container_name: kafkacont2
    ports:
      - "9093:9093"
    environment:
          KAFKA_BROKER_ID: 2
          KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
          KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9093,PLAINTEXT_HOST://localhost:39092
          KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
          KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
          KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

当我运行docker-compose -f docker-compose.yml up -d

终端说容器已创建,但是当我这样做时 docker ps 我没有看到那些容器

【问题讨论】:

  • 试试docker-compose -f docker-compose.yml up 并检查屏幕上打印的错误/警告
  • @SachithMuhandiram 是的,我在没有 -d 标志的情况下运行,我收到一条错误消息,说如果我必须使用 KAFKA_ADVERTISED_LISTENERS,我必须添加 KAFKA_LISTENERS 变量,我添加了 KAFKA_LISTENERS: PLAINTEXT://kafka1:9092,PLAINTEXT_HOST: //localhost:29092 用于 kafka1 并且它有效
  • 请记住,两个代理都在争夺同一台机器的资源,因此不会像只有一个代理那样快,也不是真正的容错
  • @Thejas 所以你的问题解决了吗?如果是这样,请将其发布为答案
  • @Thejas Kafka 的主要优点之一是可以复制数据。如果一个代理发生故障,那么其他代理仍然可以提供相同的数据......显然,如果您的一台机器(您的 Docker 主机)发生故障,那么所有代理(和 zookeepers)都死了。因此,将这些服务暴露在 Docker 网络之外并没有真正的好处

标签: docker apache-kafka


【解决方案1】:

我更新的 docker-compose.yml 文件,要使用 KAFKA_ADVERTISED_LISTENERS,我们需要提供 KAFKA_LISTENERS

 version: '3'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zoom
    ports:
      - "2181:2181"
  kafka1:
    image: wurstmeister/kafka
    container_name: kafkacont1
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENERS: PLAINTEXT://kafka1:9092,PLAINTEXT_HOST://localhost:29092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092,PLAINTEXT_HOST://localhost:29092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

  kafka2:
    image: wurstmeister/kafka
    container_name: kafkacont2
    ports:
      - "9093:9093"
    environment:
      KAFKA_BROKER_ID: 2
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENERS: PLAINTEXT://kafka2:9093,PLAINTEXT_HOST://localhost:39092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9093,PLAINTEXT_HOST://localhost:39092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

我已将 KAFKA_LISTENERS 变量添加到两个 kafka 服务

【讨论】:

    猜你喜欢
    • 2021-06-19
    • 2020-09-07
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 2018-01-14
    • 1970-01-01
    相关资源
    最近更新 更多