MQTT和EMQ是什么关系? | 您所在的位置:网站首页 › mqtt与activemq › MQTT和EMQ是什么关系? |
一般是emq broker暴露MQTT的1883/ MQTTS的8883端口,现场的许多网关通过MQTT协议作为MQTT client与emq进行pub/ sub消息。 下图是IBM的架构。bluemix IoT foundation相当于MQTT broker,bluemix message hub相当于kafka消息中间件集群。 下图是亚马逊aws的aws IoT的工作原理。 message broker支持MQTT和http和基于websocket的MQTT协议,与设备通信。IoT rules使用表达式来筛选消息,然后把设备数据插入dynamodb,调用lambda函数提取数据,把数据发送到sqs队列等。 下图是aws IoT的一个参考架构。 总之,这种架构大都大同小异。把下图的kafka看成一般的消息中转服务即可。kafka消费者可以有多个consumer group,每个group拿走所需的消息,然后再转发给实时内存数据库、历史数据库、流处理引擎之类的后端服务。 在emq后面你自己写程序,可以用任何编程语言通过MQTT客户端库与emq进行交互,接收网关发送的MQTT消息,也可以publish消息给网关。只要这种语言有对应的MQTT客户端库就可以。 至于用不用erlang开发,只不过正巧emq和rabbitmq都是用erlang开发的,但是这个跟你准备用啥语言开发一点关系都没有。 你的程序接受到MQTT消息后,就可以作为消息中间件的producer转发给消息中间件,你这里选的是Rabbit mq,但是也可以用activemq, kafka之类的。这个消息中间件的作用是解耦消息解析和消息分发处理的业务逻辑,让其他应用作为消息中间件的consumer可以订阅消费它所需的消息。 MQTT是IBM制定的物联网通信协议。可以先读下3.1.1版本MQTT协议标准文档,有中文版。 emq是华为出来的人开发的遵循MQTT等协议的MQTT broker。官网有详细使用文档。有开源版本和收费的企业版。 RabbitMQ不能称之为中间件,更准确的说法是amqp协议的一种broker实现。 【加微信群】 需要加【物联网前沿技术观察】微信群的小伙伴,请加微信号iot1999,申请入群。 群内不定期分享物联网、工业4.0、边缘计算、雾计算的最新前沿技术和相关资料。 更多精彩文章,请关注我的专栏:物联网前沿技术观察 我的专栏文章目录索引:与子同袍:【物联网前沿技术观察】专栏目录索引 |
CopyRight 2018-2019 实验室设备网 版权所有 |