代码之家  ›  专栏  ›  技术社区  ›  DeepProblems

在本地主机上启动多个kafka节点(docker compose)

  •  2
  • DeepProblems  · 技术社区  · 7 年前

    我正在尝试创建一个docker kafka,并在本地主机上扩展它。这是我最初的docker写作。yml:

    version: '2'
    services:
      zookeeper:
        image: wurstmeister/zookeeper
        ports:
          - "2181:2181"
      kafka:
        image: wurstmeister/kafka
        ports:
          - "9092:9092"
        environment:
            KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
            KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    

    当我使用BOOTSTRAP_SERVERS_CONFIG=“PLAINTEXT://127.0.0.1:9092”进行请求时,这种方法非常有效。

    显然,如果我使用docker compose scale kafka=3,我会得到一个错误,因为本地主机上的端口9092已经被使用。

    根据文件: https://github.com/wurstmeister/kafka-docker/wiki/Connectivity ,我试图像这样更改端口:

    version: '2'
    services:
      zookeeper:
        image: wurstmeister/zookeeper
        ports:
          - "2181:2181"
      kafka:
        image: wurstmeister/kafka
        ports:
          - "9092"
        environment:
            KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
            KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    

    这样,如果我使用BOOTSTRAP_SERVERS_CONFIG=“PLAINTEXT://127.0.0.1:9092”请求,由于超时,我的制作人无法发送消息。这意味着切入点不是卡夫卡听众或卡夫卡听众。

    java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
    

    如果我使用docker已绑定的端口(32001):BOOTSTRAP_SERVERS_CONFIG=“PLAINTEXT://127.0.0.1:32001”我在尝试发送消息时收到了不同的错误消息:

    java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for demo-0:120001 ms has passed since batch creation
    

    我想卡夫卡的听众和卡夫卡的听众有些奇怪,但我找不到一种方法来让它发挥作用。

    在最后一次尝试中,我做到了:

    version: '2'
    services:
      zookeeper:
        image: wurstmeister/zookeeper
        ports:
          - "2181:2181"
      kafka:
        image: wurstmeister/kafka
        ports:
          - "9093:9092"
        environment:
            KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 # or PLAINTEXT://0.0.0.0:9093
            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092 # or PLAINTEXT://127.0.0.1:9093 
            KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    

    但这并没有得到任何正确的结果。 如果有人有主意,请告诉我。

    0 回复  |  直到 7 年前
    推荐文章