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

Docker网络-制作人看不到Kafka

  •  0
  • BeetleJuice  · 技术社区  · 2 年前

    我很难弄清楚为什么我的制作人(来自Docker之外)无法在Docker中连接到Kafka。这是码头工人的作文

    services:
      zookeeper:
        image: 'arm64v8/zookeeper:latest'
        container_name: zookeeper
        ports:
          - '2181:2181'
        environment:
          - ALLOW_ANONYMOUS_LOGIN=yes
        networks:
          - my_network
    
      kafka:
        image: 'wurstmeister/kafka:2.13-2.8.1'
        container_name: kafka
        ports:
          - '29092:29092'
        environment:
          KAFKA_BROKER_ID: 1
          KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
          KAFKA_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://0.0.0.0:29092
          KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
          KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
          KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
          ALLOW_PLAINTEXT_LISTENER: yes
          KAFKA_AUTO_CREATE_TOPICS_ENABLE: false
          KAFKA_CREATE_TOPICS: 'events:1:1'
        depends_on:
          - zookeeper
        networks:
          - my_network
    

    我尝试使用代理URL进行连接 localhost:29092 从主机。我希望它能起作用,因为:

    1. 卡夫卡集装箱暴露了那个港口
    2. 卡夫卡听众包括 PLAINTEXT_HOST://0.0.0.0:29092

    然而,我从我的应用程序中得到了这个错误:

    拨号tcp 127.0.0.1:9092:连接:连接被拒绝

    我试着直接运行kafka cli:

    $ kafka-console-producer --broker-list localhost:29092 --topic events
    

    没有错误。但当我试图产生一个信息时,它不起作用:

    > Hi KAFKA!
    WARN [Producer clientId=console-producer] Connection to node 1 (kafka/127.0.0.1:9092) 
    could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
    
    0 回复  |  直到 2 年前
        1
  •  1
  •   BeetleJuice    2 年前

    不确定这是否符合答案:

    旧的“关掉再打开”在这里奏效了。配置很好;Docker或主机网络中的其他东西不起作用。现在似乎正在工作,所以设置似乎很好。

    推荐文章