12 | IoT Hub:面对海量设备如何打造高性能设备接入层?
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了物联网云平台面临的海量设备接入和数据输入挑战,重点讨论了构建高性能设备接入层的关键技术。首先从负载均衡角度出发,介绍了多台MQTT Broker服务器协作和负载均衡技术,如轮询策略和最小连接数策略,以实现服务器任务分配和压力平衡。其次,从消息队列方面探讨了消息队列的异步处理机制,实现了MQTT Broker服务器和数据流处理服务器之间的解耦和输入数据量的平衡,并推荐了Kafka和RabbitMQ等开源软件作为消息队列的选择。最后,介绍了缓存系统的重要性,以提高数据读写速度和减轻数据库压力,推荐了Redis和Memcached等常用开源缓存系统。整体而言,本文以深入浅出的方式详细讲解了构建高性能设备接入层的关键技术,为物联网平台的搭建提供了技术储备。
《物联网开发实战》,新⼈⾸单¥59
全部留言(24)
- 最新
- 精选
- il李li对于每个设备负载均衡分配连接到那个MQTT Broker,收到设备PUB消息的Broker路由转发该消息到集群的其他Broker,这需要集群中维护一个全局的主题Topic与消息路由表Route Table的对应关系,能够准确转发到其他有订阅该主题的Broker节点上。而对于Broker收到PUB消息后,查到相应的Topic,并将消息发送给订阅此 Topic 的终端设备。这个全局的Topic消息路由表是个关键的设计
作者回复: 大赞👍,完全正确
2020-12-04426 - Geek_9b7997一般的企业级平台毕竟不是大厂平台,如果有了边缘网关后,并发量是不是就没有那么多了?其实也无需集群了?
作者回复: 嗯,十几万、甚至几十万的量级都可以不用集群
2020-12-047 - fwx当接入 IoT 设备数量在十万以内或者万级时,能否直接选择支持MQTT协议的消息队列,将MQTT Broker服务器和消息队列系统进行合二为一?
作者回复: 可以,但是注意测试你使用的部分对mqtt协议的支持是否OK,一般情况下支持还可以,有些情况可能有问题,需要你往这方面留意一下。因为不是主要功能,mqtt方面的问题解决起来可能优先级不高。
2020-12-0432 - 小太阳rabbitmq的mqtt插件,在生产环境使用有什么限制么?
作者回复: RabbitMQ这些通过插件的方式支持mqtt,毕竟不是专门为mqtt的,之前有看到某些协议实现上有坑,要留意。
2021-05-141 - InfoQ_Albert之前做个一项目需要对接物联网数据,需要用到消息队列来降低数据库的写入请求,当时对比了几个MQ;Kafka集群支持比较好,但是不支持MQTT协议;RabbitMQ支持MQTT协议但是使用的是Erlang语言编写,怕出问题了搞不了;当时项目的接入的物联网设备不多就30台,最后使用的是ActiveMQ的新一代叫Apollo,它可以提供消息队列和broker功能;但是不知如何部署集群,所以想问问郭老师?
作者回复: 一些开源的软件是不支持集群的,如果必要,需要我们自己去开发让他支持集群
2020-12-141 - Garwen相同主题的数据发送到了不同的设备上,但是这些MQTT Broker里面的数据都进了消息队列的同一主题里面了吧,所以订阅消息队列里面的对应主题就能接收到所有同一Topic的数据了。
作者回复: 消息队列怎么知道订阅者是谁呢?如何给不同的订阅者发送消息呢 可以从多个broker如何配合考虑
2020-12-111 - Dan方法一应该是直接从缓存那一集提取数据 然后再通过MQTT broken分发 方法二应该是每个mqtt都有有一分订阅名单,然后所有broker 都吧相关信息发给一个服务器综合处理
作者回复: 👍方法二基本是一般的思路了
2020-12-081 - 稳请教下老师,mqtt不也属于消费队列吗?那增加的rabbitmq这一层的意义大吗?
作者回复: mqtt是一种通信协议,本身并不是消息队列的功能哈。它的名字使人有误解。其实是遵循的IBM的一个MQ产品系列名。
2020-12-0521 - 贤伟我们是用3 kafka brokers集群做消息处理的, 每个topic有多个分区,每个分区有3个副本,分在3个broker上。同时每个topic我们有一个消费者group,每个group 有多个消费者,每个消费者去处理1个或多个partition(消费者就是数据处理微服务,可以动态扩展,保证启动时订阅同一个topic,属于同一个group)。 我的理解可以把consumer group当做一个订阅者,既能利用多分区并行消费,也可以保证该group可以收到topic的所有消息。
作者回复: 嗯,你是结合具体的技术方案做了解释。这个机制已经保证了消息的消费。这里的特殊点是多个消费者一起来消费brokers上的消息,这个组里的消费者没有自己的独立性。如果消费某个topic的消费者只有它一个,它只连接其中一个broker,就需要考虑其他机制了。
2020-12-041 - 杨磊HAProxy会变成整个系统的网络瓶颈吧?毕竟所有网络请求流量都要流经这里。 为什么不把网关配置为连接某固定MQTT Broker呢,这样就不去除了这个网络贷款瓶颈。 谢谢
作者回复: 那broker不就成为瓶颈了吗?而且broker需要处理具体的应用协议,工作任务更重,更容易出现性能问题。
2021-04-13