基于发布订阅模式的协议是否否定了网状网络的好处?

物联网 发布订阅者 网状网络 线
2021-05-30 04:00:01

发布-订阅模式为模型的协议(例如MQTTAMQP)需要一个集中的消息代理来协调发送和接收的消息。当您的 IoT 网络基于星型拓扑时,这不会造成太大问题,无论如何,所有消息都必须通过一个中央集线器,但是我一直在考虑网状网络的好处以及这些可能会如何受到影响协议选择。

线的导入演讲概述特别主题的网状网络(不过这些应该普遍适用)的几个好处:

✔ 无单点故障

✔ 自愈

✔ 抗干扰性

✔ 自扩展

✔ 足够可靠,适用于关键基础设施

虽然我无法想象后四点会受到协议选择的影响,但我很好奇使用消息代理协议是否会抵消网状网络“无单点故障”的任何优势。

一般而言,使用基于发布订阅的协议是否会引入不可避免的单点故障,这就是线程介绍演示文稿建议使用 CoAP 作为潜在协议的原因吗?


已经问过 Mosquitto 支持多个代理来消除单点故障,但我问这个问题是为了质疑这是否是网状网络和发布订阅协议之间的根本冲突。

1个回答

是和否。

这两种技术都涉及提供连接的不同级别。通常网状网络由ISO OSI 模型的第 3 级或第 4 级甚至两者提供,具体取决于实现的扩展。网络层和传输层提供网状网络的基本可靠性。当节点掉线时,这种可靠性通常不会受到影响。

MQTT 和 AMQP 是第 7 层的应用层协议。因此,就基本模型而言,这些协议依赖于较低层的可靠性。然而,实施保护措施以应对较低级别的故障始终是较高 OSI 级别的特权。例如,如果应用程序检测到网络故障,它可以切换到一个完全不同的网络,例如从 Wi-Fi 到 4G。当我们进入或离开一个配置了 Wi-Fi 的地方时,智能手机会一直这样做。

下层也有可能适应上层的故障。例如,OSI 4 级负载平衡可以适应其背后的故障节点。当然,这要求可以为负载平衡和/或故障转移解决方案寻址的每个节点都可以提供相同的服务。同样显然您至少需要两次中央组件由于MQTT基本上是基于主题的应用程序级路由,应该可以通过简单的复制来实现。这是具有HiveMQ 实现的 MQTT 集群解决方案的示例。

考虑到这一点,可以得出结论,网络和传输级别的可靠性不能因选择任何更高级别的协议而被否定。但是,这不适用于用户体验。对于用户而言,较低级别的协议只是车辆。使用具有故障仍然装置的单点,如果该节点被打破,则应用层协议该功能被破坏,即使我的网络仍然工作。

总之,应用层及以上有责任为用户提供可靠性。网状网络只能提供基础知识。

最后还有一件事需要考虑。除非每个组件都有冗余,否则总会有单点故障的用例。它很可能是用户实际与之交互的节点。例如,在家庭自动化中,每个出现故障的节点很可能意味着一个用例丢失了。