docker - 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 时,它工作得很好。
任何帮助,请!
解决方案
推荐阅读
- playframework - 部署 Play 应用程序时找不到 javac 错误
- angular5 - Angular 5/6:保护路由(路由保护)而不重定向到错误路由
- python - 如何使用字典更新而不是创建列表并传递值
- c# - uwp中的应用中心导致服务器执行失败0x80080005
- mysql - 我将如何为此数据库表编写 SQL SELECT 语句?
- c# - C# 访问修饰符设置为公共但不可访问
- php - Laravel 5.4 - 模型访问器不起作用
- r - 从另一个数据帧子集一个数据帧不会产生预期的结果
- python - Pylint 说模块无法导入
- django - 如何从 DRF 序列化器返回特定响应?