2.0 正式版 “西湖以西”
发布日期: 2016-11-24
版本别名: 西湖以西(West of West Lake)
EMQ-2.0版本正式发布!EMQ-1.0版本产品环境下已支持900K并发连接,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)
共享订阅(Shared Subscription)支持在多订阅者间采用分组负载平衡方式派发消息:
---------
| | --Msg1--> Subscriber1
Publisher—Msg1,Msg2,Msg3—>| EMQ | —Msg2—> Subscriber2
| --Msg3--\> Subscriber3
使用方式: 订阅者在主题(Topic)前增加’$queue’或’$share/\/‘前缀。
本地订阅(Local Subscription)
本地订阅(Local Subscription)只在本节点创建订阅与路由表,不会在集群节点间广播全局路由,非常适合物联网数据采集应用。
使用方式: 订阅者在主题(Topic)前增加’$local/‘前缀。
erlang.mk与relx
2.0版本分离 emqttd 主项目和发布项目 emq-relx, 采用 erlang.mk 和 relx 编译发布工具替换1.x版本使用的rebar,项目可以跨平台在Linux/Unix/Windows系统下编译。
CoAP协议支持
2.0版本支持CoAP协议(RFC7252),支持CoAP网关与MQTT客户端互通。
CoAP插件: https://github.com/emqtt/emq_coap
MQTT-SN协议支持
2.0版本支持MQTT-SN协议,支持MQTT-SN网关与MQTT客户端互通。
MQTT-SN插件: https://github.com/emqtt/emq_sn
‘K = V’格式配置文件
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
Docker镜像支持
EMQ-2.0版本支持Docker镜像制作,Dockerfile开源在: https://github.com/emqtt/emq_docker
Windows平台支持
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
扩展插件
2.0版本发布的认证与扩展插件列表:
插件 | 说明 |
---|---|
emq_dashboard | Web控制台插件(默认加载) |
emq_auth_clientid | ClientId认证插件 |
emq_auth_username | 用户名、密码认证插件 |
emq_auth_ldap | LDAP认证/访问控制 |
emq_auth_http | HTTP认证/访问控制 |
emq_auth_mysql | MySQL认证/访问控制 |
emq_auth_pgsql | PostgreSQL认证/访问控制 |
emq_auth_redis | Redis认证/访问控制 |
emq_auth_mongo | MongoDB认证/访问控制 |
emq_mod_rewrite | 重写主题(Topic)插件 |
emq_mod_retainer | Retain消息存储模块 |
emq_mod_presence | 客户端上下线状态消息发布 |
emq_mod_subscription | 客户端上线自动主题订阅 |
emq_coap | CoAP协议支持 |
emq_sn | MQTT-SN协议支持 |
emq_stomp | Stomp协议支持 |
emq_sockjs | Stomp over SockJS协议支持 |
emq_recon | Recon性能调试 |
emq_reloader | Reloader代码热加载插件 |
emq_plugin_template | 插件开发模版 |