Azure云中的MQTT代理

我有一个后端设备,MQTT客户端连接到开源MQTT代理(Mosquitto).另一方面,我有许多前端设备(PC,平板电脑,移动),GUI应用程序也连接到代理.所以这里Mosquitto作为后端设备和前端设备之间的通信点,只是在它们之间转发消息.有时传输的数据量可能非常高(例如1 MB /分钟).

一个后端设备许多前端设备是一个安装.我需要为成千上万个同时工作的安装准备基础设施.所以我的服务需要非常灵活.我的公司使用Azure云解决方案,所以我开始学习这个解决方案,我必须承认我有点困惑.我已经读过我需要使用IoT Hub,但它需要MQTT网关才能与MQTT设备对话.另一方面,如果我理解得很好,网关需要在某个VM上运行,所以这里我失去了我的解决方案的可扩展性.我对吗?现在,如果我需要支持100k或500k设备,那么我将需要另一台VM?还有一件事是我需要将所有这些与一些web服务集成(用于管理后端和前端设备),所以我需要webservice和MQTT代理之间的一些连接……

在我开始使用Azure之前,我想,我将简单地启动一个MQTT代理服务,并且神奇地它将是高度可扩展的,并且能够为数千个设备提供服务.

谁能解释我怎么咬这个?

今天,Azure中没有对MQTT协议的官方支持,只有支持AMQP和HTTP的IoT Hub的公开预览.
为了将MQTT设备连接到IoT Hub,Microsoft提供了一个名为IoT Protocol Gateway( https://github.com/Azure/azure-iot-protocol-gateway)的“框架”,它在MQTT和AMQP之间执行协议转换.
物联网协议网关可以作为Azure辅助角色在本地或云中安装.在第二种方案中,您具有Azure提供的与工作者角色实例相关的可伸缩性.
由于IoT Hub(仍在公开预览中)和物联网协议网关本身的寿命很短,因此该解决方案绝对是新的.

您的第一个解决方案基于使用应安装在VM中的第三方MQTT代理(如mosquitto). AFAIK mosquitto不像HiveMQ经纪人那样支持群集(请参阅另一个回复:Cluster forming with Mosquitto broker).

关于Web服务和MQTT代理之间的连接的最后一件事.
在这种情况下,Web服务应使用您需要包含在Web服务本身内的MQTT客户端将调用(从前端)转换为MQTT代理上的已发布消息.

即使使用AWS,以下链接也可能有用:
https://groups.google.com/forum/#!topic/mqtt/19jqofoPLro

保罗.

相关文章
相关标签/搜索