发布于 2016-11-25 04:02:53 | 327 次阅读 | 评论: 0 | 来源: 网友投递
MQTT 消息传输协议
MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。
EMQ-2.0版本正式发布!EMQ-2.0版本重构了整个项目架构并正式支持共享订阅功能:
支持共享订阅(Shared Subscription)与本地订阅(Local Subscription),解决MQTT协议负载平衡消费问题;
支持CoAP(RFC 7252)、MQTT-SN协议和网关,支持CoAP、MQTT-SN客户端与MQTT客户端互通;
重构配置文件格式与加载方式,支持用户友好的'K = V'文件格式,支持操作系统环境变量;
增加了扩展钩子和大量的认证插件,支持与大部分数据库或NoSQL的认证集成;
支持全平台编译部署,Linux/Unix/Windows以及ARM平台网关,支持Docker镜像制作。
共享订阅(Shared Subscription)支持在多订阅者间采用分组负载平衡方式派发消息:
--------- | | --Msg1--> Subscriber1 Publisher--Msg1,Msg2,Msg3-->| EMQ | --Msg2--> Subscriber2 | | --Msg3--> Subscriber3 ---------
使用方式: 订阅者在主题(Topic)前增加'$queue'或'$share//'前缀。
本地订阅(Local Subscription)只在本节点创建订阅与路由表,不会在集群节点间广播全局路由,非常适合物联网数据采集应用。
使用方式: 订阅者在主题(Topic)前增加'$local/'前缀。
2.0版本分离 emqttd 主项目和发布项目 emq-relx, 采用 erlang.mk 和 relx 编译发布工具替换1.x版本使用的rebar,项目可以跨平台在Linux/Unix/Windows系统下编译。
2.0版本支持CoAP协议(RFC7252),支持CoAP网关与MQTT客户端互通。
CoAP插件: https://github.com/emqtt/emq_coap
2.0版本支持MQTT-SN协议,支持MQTT-SN网关与MQTT客户端互通。
MQTT-SN插件: https://github.com/emqtt/emq_sn
2.0版本支持用户友好的'K = V'格式配置文件etc/emq.conf:
node.name = emqttd@127.0.0.1 ... mqtt.listener.tcp = 1883 ...
2.0版本支持操作系统环境变量。启动时通过环境变量设置EMQ节点名称、安全Cookie以及TCP端口号:
EMQ_NODE_NAME=emqttd@127.0.0.1 EMQ_NODE_COOKIE=emq_dist_cookie EMQ_MAX_PORTS=65536 EMQ_TCP_PORT=1883 EMQ_SSL_PORT=8883 EMQ_HTTP_PORT=8083 EMQ_HTTPS_PORT=8084
EMQ-2.0版本支持Docker镜像制作,Dockerfile开源在: https://github.com/emqtt/emq_docker
2.0版本完整支持Windows平台的编译、发布与运行,支持Windows平台下的'emqttd_ctl'控制命令,支持在Windows节点间的集群。
#764: add mqtt.cache_acl option
#667: Configuring emqttd from environment variables
#722: mqtt/superuser calls two times emqtt_auth_http
#754: "-heart" option for EMQ 2.0
#741: emq_auth_redis cannot use hostname as server address