docker-compose - Docker-compose EMQX 桥接(MQTT 桥接)设置
问题描述
我正在尝试仅使用 docker-compose 创建 EMQ X 桥接设置(MQTT 桥接)。作为参考,我正在查看官方文档。我想到的用例是将EMQ X Edge ( emqx-edge
) 桥接到 EMQ X( emqx
),然后当消息发布到它时,emqx-edge
它会被转发到emqx
。到目前为止,我已经创建了两个代理和一个网络,因此它们可以通信(poc-bridge)。
问题是:当一条消息发布到一个主题(例如sensor1/#
)给emqx-edge
代理时,它永远不会到达emqx
代理。我不知道出了什么问题..
Bellow 是我目前拥有的 docker-compose。
version: '3.3'
networks:
poc-bridge:
external: true
services:
mqtt-edge:
image: emqx/emqx-edge:latest
container_name: edge-broker
restart: always
environment:
- EMQX_LOADED_PLUGINS= "emqx_bridge_mqtt"
- EMQX_ADMIN_PASSWORD=brokerpw1
- EMQX_BRIDGE__MQTT__AWS__ADDRESS=172.26.0.2:1883 #ip:port of mqtt-cloud
- EMQX_BRIDGE__MQTT__AWS__PROTO_VER=mqttv3
- EMQX_BRIDGE__MQTT__AWS__BRIDGE_MODE=true
- EMQX_BRIDGE__MQTT__AWS__CLEAN_START=true
- EMQX_BRIDGE__MQTT__AWS__USERNAME=user
- EMQX_BRIDGE__MQTT__AWS__PASSWORD=passw
- EMQX_BRIDGE__MQTT__AWS__CLIENTID=bridge_aws
- EMQX_BRIDGE__MQTT__AWS__KEEPALIVE=10s
- EMQX_BRIDGE__MQTT__AWS__FORWARDS=sensor1/#
networks:
- poc-bridge
ports:
- 18083:18083
- 1883:1883
- 8883:8883
- 8083:8083
depends_on:
- mqtt-cloud
mqtt-cloud:
image: emqx/emqx:latest
container_name: cloud-broker
restart: always
networks:
- poc-bridge
ports:
- 51883:1883
- 58883:8883
- 58083:8083
解决方案
问题解决了。我错过了更多配置... Bellow 是用于将 emqx-edge 桥接到 emqx 的 docker-compose yaml。
version: '3.3'
networks:
poc-bridge:
external: true
services:
mqtt-edge:
image: emqx/emqx-edge:latest
container_name: edge-broker
restart: always
environment:
- EMQX_LOADED_PLUGINS="emqx_bridge_mqtt,emqx_recon,emqx_retainer,emqx_management,emqx_dashboard"
- EMQX_ADMIN_PASSWORD=brokerpw1
- EMQX_BRIDGE__MQTT__AWS__START_TYPE=auto
- EMQX_BRIDGE__MQTT__AWS__ADDRESS=172.26.0.2:1883 # docker-ip:port of mqtt-cloud
- EMQX_BRIDGE__MQTT__AWS__PROTO_VER=mqttv3
- EMQX_BRIDGE__MQTT__AWS__BRIDGE_MODE=true
- EMQX_BRIDGE__MQTT__AWS__CLEAN_START=true
- EMQX_BRIDGE__MQTT__AWS__USERNAME=user
- EMQX_BRIDGE__MQTT__AWS__PASSWORD=passw
- EMQX_BRIDGE__MQTT__AWS__CLIENTID=bridge_aws
- EMQX_BRIDGE__MQTT__AWS__KEEPALIVE=60s
- EMQX_BRIDGE__MQTT__AWS__FORWARD_MOUNTPOINT=bridge/aws/test/
- EMQX_BRIDGE__MQTT__AWS__FORWARDS=atlas/#
#- EMQX_BRIDGE__MQTT__AWS__SUBSCRIPTION__1__TOPIC=atlas/#
#- EMQX_BRIDGE__MQTT__AWS__SUBSCRIPTION__1__QOS=1
networks:
- poc-bridge
ports:
- 18083:18083
- 1883:1883
- 8883:8883
- 8083:8083
depends_on:
- mqtt-cloud
mqtt-cloud:
image: emqx/emqx:latest
container_name: cloud-broker
restart: always
environment:
- EMQX_LOADED_PLUGINS= "emqx_bridge_mqtt"
networks:
- poc-bridge
ports:
- 51883:1883
- 58883:8883
- 58083:8083
推荐阅读
- xaml - 集合视图标题
- windows - 每天计算收到的电子邮件的 Powershell 脚本有时会报告 0 收到的电子邮件
- r - 沿其对角线重复具有不同零块的矩阵乘法
- sql - 不能在 select 语句中使用子查询。返回“缺少 FROM 表达式”
- kubernetes - 如何使用多个 Web 服务(Pod)准确地进行 JMETER 负载测试
- docker - 带有 RSDriver 的 RSelenium。错误:httr 输出:无法连接到 localhost 端口 4445:连接被拒绝
- javascript - 为什么在这种情况下 babel 会转换 import 和 export?
- owasp - 确保放置到 HTML 中的所有字符串变量都经过手动正确的上下文编码
- windows - tmux no server running on /tmp/tmux-*/default - Windows msys2 终端
- swift - PDFPage setBounds 模糊变形