26 | MQTT协议:如何支持海量的在线IoT设备?
该思维导图由 AI 生成,仅供参考
MQTT 和其他消息队列的传输协议有什么不同?
- 深入了解
- 翻译
- 解释
- 总结
MQTT协议是为物联网设备设计的一套标准的消息队列通信协议,采用了发布-订阅的消息模型,面临着支撑海量IoT设备在线的挑战。在选择MQTT产品时,需要考虑其是否能支撑海量客户端和主题。对于海量在线的IoT设备系统,选择合适的MQTT产品至关重要。文章介绍了MQTT集群的架构设计,通过前置的Proxy集群来解决海量连接、会话管理和海量主题的问题。Proxy负责在Broker和客户端之间转发消息,将海量客户端连接收敛为少量的Proxy与Broker之间的连接,解决了海量客户端连接数的问题。维护会话的实现原理类似于Tomcat维护HTTP会话。对于海量主题,可以在后端部署多组Broker小集群,每个小集群分担一部分主题。总的来说,选择适用的MQTT产品和构建合理的集群架构对于支持海量在线的IoT设备至关重要。
《消息队列高手课》,新⼈⾸单¥59
全部留言(16)
- 最新
- 精选
- Geek_e7834d如果iot设备的数据不多 可否把多个设备的主题合在一起。发送时候是发给一个主题 消费时候通过一个filter过滤出来。这样就可以减少主题数目了。另外 一个kafka集群能支持的topic上限一般是多少?高于这个上限就要分成不同的集群是吗?zookeeper加了observer之后 集群里最多能有多少台zookeeper呢?
作者回复: 关于Kafka集群能支持多少个topic,这个取决的因素很多,集群的节点数量,集群规模大小,zk的配置等等,有个关于这个问题的测试,你可以看一下:https://blogs.apache.org/kafka/entry/apache-kafka-supports-more-partitions zk的节点数量,一般最多配置成7个,observer的场景实际上并不常用,只有一种场景才需要用到Observer:你有海量的zk客户端,大部分和zk的交互都是读操作,这种情况下才需要用Observer来支撑海量的客户端数量。 增加ZK的节点数量并不能提升ZK的性能,写性能反而会降低,读性能也不会随着节点数量有提升,但是,节点数越多,可以支撑更多的并发读,只有这块儿性能会有提升。
2019-10-198 - COLDLY请问RabbitMQ,AMQP、MQTT这三者的关系是什么啊。最近公司项目涉及, 很迷惑,求解答
作者回复: RabbitMQ:一个开源的消息队列产品; AMQP和MQTT都是一种消息队列客户端与服务端交互的标准协议,类似于HTTP一样,是一种协议。 RabbitMQ实现了AMQP协议。
2020-02-0827 - Peter交作业: 生产者时序图:https://github.com/PeterLu798/MQ/blob/master/src/com/lbj/mq/iot/%E7%94%9F%E4%BA%A7%E8%80%85%E6%97%B6%E5%BA%8F%E5%9B%BE.png 消费者时序图: https://github.com/PeterLu798/MQ/blob/master/src/com/lbj/mq/iot/%E6%B6%88%E8%B4%B9%E8%80%85%E6%97%B6%E5%BA%8F%E5%9B%BE.png
作者回复: 对认真完成作业的同学点个赞! 对于消费时序图,Metadata中的数据结构是什么样呢?希望同学能细化一下。
2019-11-054 - 山头老师,什么时候亮亮客户端如何从broke拉取消息,for,websocket,长链接,都是如何实现的,辛苦讲讲,不然没法写demo
作者回复: 对于我们这节课的作业,实现这个Proxy你不需要自己写一个MQ的客户端,完全可以使用已有的客户端。 比如,你的Broker是RocketMQ,Proxy可以集成RocketMQ的客户端与Broker通信就可以了。
2019-09-2542 - 赵雍请问老师,如何通过app端同步发送命令控制设配,比如通过app开锁共享单车? mqtt 能否实现同步发送命令的场景? 如何实现?
作者回复: MQTT是可以实现下发命令到IoT设备上的,通常的做法是,每个IoT设备都为自己建立一个专属的Topic并且订阅这个Topic,Server端需要给指定设备发送命令的时候,直接往对应的Topic上发消息就可以了。
2020-06-183 - 游弋云端Proxy相当于管理了多个消息队列的小集群,对外体现为一个大的消息队列集群,分而治之,这个方案赞一个!2019-09-2618
- 业余草mqtt是云厂商必争之地,作为小公司,用好云厂商提供的技术即可,没资源造轮子!2019-09-255
- Bumblebee目前国产的emqx挺好用的2022-01-2113
- ifelse在物联网应用场景中,IoT 设备性能差,网络连接不稳定。服务端面临的挑战主要是,需要支撑海量的客户端和主题。--记下来2023-01-06归属地:浙江
- Confidant.请教一下,这样设计会有大量的proxy,那客户端是如何知道该对哪一个proxy发起请求呢2021-06-18