MQTT开源项目应用

EMQ - 百万级开源MQTT消息服务器

EMQ (Erlang/Enterprise/Elastic MQTT Broker)是基于Erlang/OTP平台开发的开源物联网MQTT消息服务器。Erlang/OTP是出色的软实时(Soft-Realtime)、低延时(Low-Latency)、分布式(Distributed)的语言平台。MQTT是轻量的(Lightweight)、发布订阅模式(PubSub)的物联网消息协议。

注解

2.0版本开始emqttd消息服务器自正式简称为EMQ。

EMQ 项目设计目标是承载移动终端或物联网终端海量的MQTT连接,并实现在海量物联网设备间快速低延时(Low-Latency)消息路由:

1. 稳定承载大规模的MQTT客户端连接,单服务器节点支持50万到100万连接。

2. 分布式节点集群,快速低延时的消息路由,单集群支持1000万规模的路由。

3. 消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。

4. 完整物联网协议支持,MQTT、MQTT-SN、CoAP、WebSocket或私有协议支持。

EMQ 2.0完整支持MQTT V3.1/V3.1.1版本协议规范,并扩展支持WebSocket、Stomp、CoAP、MQTT-SN或私有TCP协议。EMQ 2.0消息服务器支持单节点100万连接与多节点分布式集群:

TODO: 2.0-rc.1图片更新.
emqtt.png

EMQ 2.0为大规模客户端连接(C1000K+)的移动推送、移动消息、物联网、车联网、智能硬件等应用,提供一个完全开放源码、安装部署简便、企业级稳定可靠、可弹性扩展、易于定制开发的MQTT消息服务器。

物联网传感器、智能硬件、移动终端、浏览器、应用服务器与数据服务器通过异步发布订阅模式MQTT消息连接

注解

MQTT-SN、CoAP协议支持已在2.0-rc.1版本发布。
MQTT发布订阅模式简述

MQTT是发布订阅(Publish/Subscribe)模式的消息协议,与HTTP协议请求响应(Request/Response)模式不同。

MQTT发布者与订阅者之间通过”主题”(Topic)进行消息路由,主题(Topic)格式类似Unix文件路径,例如:
sensor/1/temperature

chat/room/subject

presence/user/feng

sensor/1/#

sensor/+/temperature

uber/drivers/joe/inbox

MQTT主题(Topic)支持’+’, ‘#’的通配符,’+’通配一个层级,’#’通配多个层级(必须在末尾)。

MQTT消息发布者(Publisher)只能向特定’名称主题’(不支持通配符)发布消息,订阅者(Subscriber)通过订阅’过滤主题’(支持通配符)来匹配消息。

注解

初接触MQTT协议的用户,通常会向通配符的’过滤主题’发布广播消息,MQTT协议不支持这种模式,需从订阅侧设计广播主题(Topic)。 例如Android推送,向所有广州用户,推送某类本地消息,客户端获得GIS位置后,可订阅’news/city/guangzhou’主题。
EMQ设计

基于出色的软实时、低延时、高并发、分布式的Erlang/OTP语言平台开发设计

按主题树(Topic Trie)和路由表(Routing Table)发布订阅模式在集群节点间转发路由MQTT消息

architecture.png

五分钟下载启动EMQ

EMQ 2.0消息服务器每个版本,会发布Ubuntu、CentOS、FreeBSD、Mac OS X、Windows平台程序包与Docker镜像。下载地址: http://emqtt.com/downloads
 MQTT消息服务器的具体应用
1、移动即时消息
MQTT协议将在即时消息领域逐渐取代XMPP协议,移动消息例如Facebook Messenger采用MQTT协议,我们为部分客户基于EMQ项目定制了即时消息服务端
2、Android、HTML5消息推送
Android客户端通过MQTT协议实现低电量、低带宽消耗的消息推送,ZAKER新闻客户端基于EMQ项目实现单节点90万+连接新闻推送。
3、物联网M2M、物联网大数据
物联网终端通过MQTT协议实现发布订阅模式的M2M通信,物联网网关通过MQTT协议上报传感器数据到云平台进行大数据分析和存储。
4、车联网、电动车站桩管理
电动车联网电池监控,电动车、站、桩传感数据采集与分析。鲁能电力基于EMQ项目开发了电动车联网数据采集分析平台。
5、智能硬件、智能家居、智能电器
智能硬件与移动终端通过MQTT协议实现双向通信与智能控制。智能家居、智能电器通过MQTT协议实时双向连接云端服务器。
6、智慧城市、智慧医疗、远程教育
智慧城市传感器、智慧医疗终端均可通过MQTT协议实时上报检测数据,远程教育等多媒体客户端可采用MQTT作为控制通道协议。
7、电力、石油与能源行业
电力、石油、能源等行业户外终端设备,可通过MQTT协议卫星链路推送数据到服务端网络,例如实现石油管道监测系统。
8、SCADA与工业4.0
采用MQTT协议与物联网架构,改造和实现新型的SCADA系统。工业4.0的工厂网络通过MQTT协议打造消息总线并实现云端互联。

1 个评论

MQTT开源客户端案例详情,可以在GitHub: https://github.com/emqtt手动Star起来!

要回复文章请先登录注册