首页 > 解决方案 > Node-red 无法连接到 broker 产生消息(Kafka 和 Zookeeper 在 docker 容器中)

问题描述

我正在创建一个显示来自 IIoT 的实时数据的应用程序。

我的整个应用程序都在 docker 容器中,Kafka 和 Zookeeper 运行没有问题,我执行 node-red(在我的本地机器上)并成功连接,但是当我尝试以 node-red 从 IIoT 生成消息时,它给出“连接已启动排队消息”。

这是我的 docker-compose.yml(用于 Kafka 和 Zookeeper):

  zookeeper:
    image: confluentinc/cp-zookeeper:latest
    ports:
      - 2181:2181
    environment:
      - ZOOKEEPER_CLIENT_PORT=2181
    volumes:
      - zookeeper_data:/var/lib/zookeeper
    networks:
      - app_backend_network

  kafka:
    image: confluentinc/cp-kafka:latest
    environment:
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_LISTENERS=LISTENER_BOB://kafka:9092,LISTENER_FRED://127.0.0.1:29092
      - KAFKA_ADVERTISED_LISTENERS=LISTENER_BOB://kafka:9092,LISTENER_FRED://127.0.0.1:29092
      - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=LISTENER_BOB:PLAINTEXT,LISTENER_FRED:PLAINTEXT
      - KAFKA_INTER_BROKER_LISTENER_NAME=LISTENER_BOB
      - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
      - KAFKA_AUTO_CREATE_TOPICS_ENABLE=false
    ports:
      - 9092:9092
      - 29092:29092
    depends_on:
      - zookeeper
    volumes:
      - kafka_data:/var/lib/kafka
    networks:
      - app_backend_network

主机:127.0.0.1:29092

节点红色生产者错误

主机:127.0.0.1:9092

节点红色生产者错误

我尝试将“TH”直接连接到消息,并且收到没有错误的消息,这里的问题可能是连接到代理。

我忘了提到,当我在没有 docker 的本地机器上设置 Kafka 时,它工作得很好。

任何帮助,请!

标签: dockerapache-kafkanode-red

解决方案


推荐阅读