用于物联网和推送通知的 MQTT 集群
Cluster in MQTT for IoT and Push Notification
我已经开始阅读有关 MQTT 协议及其实现的一些细节。我经常遇到 'cluster' 这个词。谁能帮我理解 'cluster' 对 MQTT 协议意味着什么?
在this各种MQTT协议的比较中,有一栏是词条'cluster'
集群是 MQTT 代理的集合,设置为在彼此之间桥接所有主题,以便客户端可以连接到任何一个集群成员,并且仍然可以向所有其他客户端发布和接收消息,无论是哪个集群成员他们连接到。
需要注意的几点:
- 主题桥循环,消息被发布到一个集群成员,然后被转发到另一个集群成员,然后是另一个,最后回到原来的。如果发生这种情况,原始代理无法知道它最初将其推送给其他集群成员,因此消息最终进入循环。共享消息状态数据库或使用单个桥接复制代理可以解决此问题。
- 持久性subscriptions/sessions,除非代理有池化会话缓存,否则客户端在重新连接时连接到不同的集群成员时将不会保留会话或订阅状态。
使用主题桥循环转发消息不会产生真正的 MQTT 代理集群,这将导致上述缺点。
true MQTT 代理集群是一个代表一个逻辑 MQTT 代理的分布式系统。集群由各种单独的 MQTT 代理节点组成,这些节点通常安装在单独的物理机或虚拟机上,或者通过网络连接。
MQTT 代理集群的典型优势包括:
- 消除单点故障
- 跨多个集群节点的负载分配
- 客户端能够在任何代理集群上恢复会话
- 可扩展性
- 弹性和容错 - 在云环境中特别有用
如果您正在寻找更详细的解释,我推荐 this blogpost。
我已经开始阅读有关 MQTT 协议及其实现的一些细节。我经常遇到 'cluster' 这个词。谁能帮我理解 'cluster' 对 MQTT 协议意味着什么?
在this各种MQTT协议的比较中,有一栏是词条'cluster'
集群是 MQTT 代理的集合,设置为在彼此之间桥接所有主题,以便客户端可以连接到任何一个集群成员,并且仍然可以向所有其他客户端发布和接收消息,无论是哪个集群成员他们连接到。
需要注意的几点:
- 主题桥循环,消息被发布到一个集群成员,然后被转发到另一个集群成员,然后是另一个,最后回到原来的。如果发生这种情况,原始代理无法知道它最初将其推送给其他集群成员,因此消息最终进入循环。共享消息状态数据库或使用单个桥接复制代理可以解决此问题。
- 持久性subscriptions/sessions,除非代理有池化会话缓存,否则客户端在重新连接时连接到不同的集群成员时将不会保留会话或订阅状态。
使用主题桥循环转发消息不会产生真正的 MQTT 代理集群,这将导致上述缺点。
true MQTT 代理集群是一个代表一个逻辑 MQTT 代理的分布式系统。集群由各种单独的 MQTT 代理节点组成,这些节点通常安装在单独的物理机或虚拟机上,或者通过网络连接。
MQTT 代理集群的典型优势包括:
- 消除单点故障
- 跨多个集群节点的负载分配
- 客户端能够在任何代理集群上恢复会话
- 可扩展性
- 弹性和容错 - 在云环境中特别有用
如果您正在寻找更详细的解释,我推荐 this blogpost。