第10章 Mosquitto桥接模式

第10章 Mosquitto桥接模式

10.1 桥接模式概述

桥接
本地
本地
本地
本地
Broker A
Broker B
客户端A1
客户端A2
客户端B1
客户端B2
消息转发

10.2 桥接类型

本地桥接

桥接
桥接
Broker主
监听器1: 1883
监听器2: 1884
客户端组1
客户端组2
主题转发
本地桥接

同一Broker

远程桥接

网络
桥接
边缘Broker
云端Broker
本地设备
云端服务
主题同步
数据聚合

10.3 配置本地桥接

bash 复制代码
# /etc/mosquitto/mosquitto.conf

# 主监听器
listener 1883

# 桥接连接
connection bridge-to-remote
address remote.broker.com:1883

# 远程桥接的客户端ID
remote_clientid bridge_local
remote_username bridge_user
remote_password bridge_pass

# 要桥接的主题
topic sensor/# out 1
topic cmd/# in 1

# 尝试重连
try_private true
start_type automatic
notifications true
cleansession false

10.4 配置远程桥接

bash 复制代码
# /etc/mosquitto/mosquitto.conf

# 桥接到云端
connection cloud-bridge
address cloud.mqtt.io:8883

# TLS配置
bridge_cafile /etc/mosquitto/ca.crt
bridge_certfile /etc/mosquitto/bridge.crt
bridge_keyfile /etc/mosquitto/bridge.key

# 认证
remote_username edge_bridge
remote_password secure_password

# 主题映射
topic local/data/# out 1
topic cloud/cmd/# in 1

# 桥接配置
try_private true
cleansession false
keepalive_interval 60

10.5 桥接主题方向

out
in
both
both
本地主题
远程主题
本地Broker
远程Broker
local/#
remote/#

主题方向示例

bash 复制代码
# out: 从本地发布到远程
topic sensor/# out 1

# in: 从远程订阅到本地
topic cmd/# in 1

# both: 双向转发
topic status/# both 1

10.6 桥接连接流程

远程Broker 本地Broker 远程Broker 本地Broker 启动桥接 订阅远程主题 本地客户端发布 本地客户端发布 CONNECT ClientID=bridge_local CONNACK 连接成功 SUBSCRIBE cmd/ SUBACK PUBLISH cmd/device1 "on" 转发到本地订阅者 PUBLISH sensor/temp "25" 转发到远程订阅者

10.7 多桥接配置

bash 复制代码
# /etc/mosquitto/mosquitto.conf

# 桥接1: 到数据中心
connection datacenter-bridge
address dc1.mqtt.io:1883
topic aggregate/# out 1
remote_clientid bridge_to_dc1
remote_username bridge
remote_password pass

# 桥接2: 到备份中心
connection backup-bridge
address dc2.mqtt.io:1883
topic aggregate/# out 1
remote_clientid bridge_to_dc2
remote_username bridge
remote_password pass

# 桥接3: 到云端
connection cloud-bridge
address cloud.mqtt.io:8883
bridge_cafile /etc/mosquitto/ca.crt
topic sensor/# out 1
topic cloud/cmd in 1

多桥接架构

边缘Broker
数据中心1
数据中心2
云端服务
本地设备
本地设备
数据存储
数据备份
数据分析

10.8 桥接监控

bash 复制代码
# 桥接状态
mosquitto_sub -v -t "$SYS/broker/connection/#"

# 桥接消息统计
$SYS/broker/connection/bridge-local/state
$SYS/broker/connection/bridge-local/messages/received
$SYS/broker/connection/bridge-local/messages/sent

10.9 桥接应用场景

场景1: 边缘云计算

桥接
边缘设备
边缘Mosquitto
本地处理
云端Mosquitto
大数据分析
长期存储

场景2: 多地域部署

bash 复制代码
# 区域A
connection to-region-b
address region-b.mqtt.io:1883
topic region-a/# both 1

# 区域B
connection to-region-a
address region-a.mqtt.io:1883
topic region-b/# both 1

10.10 本章小结

掌握了桥接模式配置,实现了多Broker之间的消息转发。

相关推荐
赛博山人1 小时前
4 款开源 Bot 实测对比:Rakazo、OpenMausBot、Open Duet、OpenBot
开源
freejackman1 小时前
【架构篇】双遍历 + 多栈协同:手撸 SQL 血缘引擎的架构思考
java·大数据·数据库·hive·sql·架构·spark
杨云龙UP1 小时前
TDengine 社区版磁盘空间不足故障处理 SOP:历史日志清理、日志保留策略及数据保留 200 天
数据库·时序数据库·tdengine·tsdb·历史日志清理·trim database·logkeepdays
Zhao-Jichao1 小时前
AI Prompting for Everyone 课程笔记 - P06 模型提示词对比 AI Model Prompt Comparison
人工智能·笔记·prompt
武子康1 小时前
MultiNet 只听到一次命令,为什么连续触发?
人工智能·后端·agent
每天都要写算法(努力版)1 小时前
【行业前沿报告】AutoML / AutoResearch / RSI
人工智能·agent·rsi
全栈探索者1 小时前
给视频配一段完整 BGM:一次生成还是分段拼?
人工智能·comfyui·音频生成·stable audio
betazhou1 小时前
MySQL Oracle官方备份工具
数据库·mysql·oracle
Teable任意门互动1 小时前
破解多平台数据不通!江浙沪跨境电商外贸业务私有化部署方案|任意门互动科技
大数据·人工智能·科技·信息可视化·信息与通信
自养Agent1 小时前
AI 私有化实战:多模态本地化·视觉与音频怎么装下
人工智能·大模型·llm·音视频·语音识别