两个不同的问题
桥接解决的是代理之间的连接:按主题过滤器把消息从一个代理转发到另一个,常用于边缘与云、分公司与总部以及不同代理产品之间的对接。集群解决的是单个逻辑代理的容量与可用性:多个节点对外表现为一个入口,客户端可以在节点之间迁移。把扩展问题当成数据同步问题来解,往往得到又慢又贵的方案。
方案对照
| 方案 | 适用 | 代价 |
|---|---|---|
| 单向桥接 | 边缘向云端上报,方向明确 | 链路中断时需本地缓存补传,注意重复数据 |
| 双向桥接 | 两地数据互通 | 必须加主题前缀隔离,否则形成消息环路 |
| 代理集群 | 单集群内扩容与高可用 | 依赖共享会话存储与服务发现,运维复杂度上升 |
| 按地域分区 | 按地域或租户分治,降低跨区依赖 | 跨区查询与全局视图需要额外汇总层 |
典型使用场景
- 边缘到云:边缘代理缓存现场数据,断网恢复后按序上报
- 旧系统对接:用桥接把历史代理集群的数据汇总到新平台
- 多租户隔离:每个租户独立集群,仅在必要维度上汇总
- 灰度迁移:新旧集群之间桥接同一主题,验证无误后切换客户端入口
桥接链路本身也是一条普通连接,需要保活、重连与缓存策略;把它当成永不断开的内部通道,是很多现场问题的根源。
双向桥接不加主题前缀是典型环路来源:一条消息会在两个代理之间来回转发,迅速耗尽带宽与存储,且难以从现象上直接定位。