You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器内Apache Camel无法连接MQTT Broker问题求助

解决方案:Docker环境下Apache Camel连接MQTT(Mosquitto)失败问题

问题核心原因

本地运行Jar时,localhost:1884指向宿主机映射的MQTT端口;但Docker容器内的localhost是容器自身,无法访问到MQTT服务容器。同时默认Mosquitto可能仅绑定127.0.0.1,拒绝外部容器连接。

具体修复步骤

1. 修改Camel项目的MQTT连接地址

将代码中MQTT的连接URL从:

tcp://localhost:1884

替换为:

tcp://mqtt:1884

Docker Compose默认会创建内部网络,服务名mqtt可直接解析到对应容器的IP地址。

2. 配置Mosquitto允许外部连接

在你挂载的C:\\Users\\user\\temp\\mosquitto目录下创建mosquitto.conf文件,添加以下配置:

listener 1884 0.0.0.0
allow_anonymous true
  • listener 1884 0.0.0.0:让Mosquitto监听所有IP的1884端口,允许其他容器连接。
  • allow_anonymous true:允许匿名访问(若需认证,可添加用户名密码配置)。

3. 重启Docker Compose服务

执行以下命令重新启动所有服务:

docker-compose down
docker-compose up -d

验证方法

  • 进入bridge-service容器,测试网络连通性:
    docker exec -it <bridge-service-container-name> ping mqtt
    docker exec -it <bridge-service-container-name> telnet mqtt 1884
    
    若能ping通且telnet连接成功,说明网络配置正确。

内容的提问来源于stack exchange,提问作者mdanish98

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:35:11