2.0 正式版 “西湖以西”

2.0 正式版 “西湖以西”

发布日期: 2016-11-24

版本别名: 西湖以西(West of West Lake)

EMQ-2.0版本正式发布!EMQ-1.0版本产品环境下已支持900K并发连接,EMQ-2.0版本重构了整个项目架构并正式支持共享订阅功能:

  1. 支持共享订阅(Shared Subscription)与本地订阅(Local Subscription),解决MQTT协议负载平衡消费问题;
  2. 支持CoAP(RFC 7252)、MQTT-SN协议和网关,支持CoAP、MQTT-SN客户端与MQTT客户端互通;
  3. 重构配置文件格式与加载方式,支持用户友好的’K = V’文件格式,支持操作系统环境变量;
  4. 增加了扩展钩子和大量的认证插件,支持与大部分数据库或NoSQL的认证集成;
  5. 支持全平台编译部署,Linux/Unix/Windows以及ARM平台网关,支持Docker镜像制作。

共享订阅(Shared Subscription)

共享订阅(Shared Subscription)支持在多订阅者间采用分组负载平衡方式派发消息:

---------
|       | --Msg1--> Subscriber1
  • Publisher—Msg1,Msg2,Msg3—>| EMQ | —Msg2—> Subscriber2

| —Msg3—> Subscriber3


使用方式: 订阅者在主题(Topic)前增加’$queue’或’$share/<group>/‘前缀。

本地订阅(Local Subscription)

本地订阅(Local Subscription)只在本节点创建订阅与路由表,不会在集群节点间广播全局路由,非常适合物联网数据采集应用。

使用方式: 订阅者在主题(Topic)前增加’$local/‘前缀。

erlang.mk与relx

2.0版本分离 emqttd 2.0 正式版 “西湖以西” - 图1 (opens new window) 主项目和发布项目 emq-relx 2.0 正式版 “西湖以西” - 图2 (opens new window), 采用 erlang.mk 2.0 正式版 “西湖以西” - 图3 (opens new window) 和 relx 2.0 正式版 “西湖以西” - 图4 (opens new window) 编译发布工具替换1.x版本使用的rebar,项目可以跨平台在Linux/Unix/Windows系统下编译。

CoAP协议支持

2.0版本支持CoAP协议(RFC7252),支持CoAP网关与MQTT客户端互通。

CoAP插件: https://github.com/emqtt/emq_coap 2.0 正式版 “西湖以西” - 图5 (opens new window)

MQTT-SN协议支持

2.0版本支持MQTT-SN协议,支持MQTT-SN网关与MQTT客户端互通。

MQTT-SN插件: https://github.com/emqtt/emq_sn 2.0 正式版 “西湖以西” - 图6 (opens new window)

‘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 2.0 正式版 “西湖以西” - 图7 (opens new window)

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 2.0 正式版 “西湖以西” - 图8 (opens new window) Web控制台插件(默认加载)
emq_auth_clientid 2.0 正式版 “西湖以西” - 图9 (opens new window) ClientId认证插件
emq_auth_username 2.0 正式版 “西湖以西” - 图10 (opens new window) 用户名、密码认证插件
emq_auth_ldap 2.0 正式版 “西湖以西” - 图11 (opens new window) LDAP认证/访问控制
emq_auth_http 2.0 正式版 “西湖以西” - 图12 (opens new window) HTTP认证/访问控制
emq_auth_mysql 2.0 正式版 “西湖以西” - 图13 (opens new window) MySQL认证/访问控制
emq_auth_pgsql 2.0 正式版 “西湖以西” - 图14 (opens new window) PostgreSQL认证/访问控制
emq_auth_redis 2.0 正式版 “西湖以西” - 图15 (opens new window) Redis认证/访问控制
emq_auth_mongo 2.0 正式版 “西湖以西” - 图16 (opens new window) MongoDB认证/访问控制
emq_mod_rewrite 2.0 正式版 “西湖以西” - 图17 (opens new window) 重写主题(Topic)插件
emq_mod_retainer 2.0 正式版 “西湖以西” - 图18 (opens new window) Retain消息存储模块
emq_mod_presence 2.0 正式版 “西湖以西” - 图19 (opens new window) 客户端上下线状态消息发布
emq_mod_subscription 2.0 正式版 “西湖以西” - 图20 (opens new window) 客户端上线自动主题订阅
emq_coap 2.0 正式版 “西湖以西” - 图21 (opens new window) CoAP协议支持
emq_sn 2.0 正式版 “西湖以西” - 图22 (opens new window) MQTT-SN协议支持
emq_stomp 2.0 正式版 “西湖以西” - 图23 (opens new window) Stomp协议支持
emq_sockjs 2.0 正式版 “西湖以西” - 图24 (opens new window) Stomp over SockJS协议支持
emq_recon 2.0 正式版 “西湖以西” - 图25 (opens new window) Recon性能调试
emq_reloader 2.0 正式版 “西湖以西” - 图26 (opens new window) Reloader代码热加载插件
emq_plugin_template 2.0 正式版 “西湖以西” - 图27 (opens new window) 插件开发模版