The EMQ Version 2.0, named "West of West Lake", has been released with a lot of improvements and enhancements, and is ready to deploy in production now.
First of all, the EMQ broker now supports
Shared Subscription
andLocal Subscription
.Supports CoAP(RFC 7252) and MQTT-SN protocol/gateway.
Adopt a more user-friendly
k = v
syntax for the new configuration file.Add more hooks and new plugins, integrate with HTTP, LDAP, Redis, MySQL, PostgreSQL and MongoDB.
Cross-platform Builds and Deployment. Run the broker on Linux, Unix, Windows, Raspberry Pi and ARM platform.
Shared Subscription
Shared Subscription supports Load balancing to distribute MQTT messages between multiple subscribers in the same group:
---------
| | --Msg1--> Subscriber1
Publisher--Msg1,Msg2,Msg3-->| EMQ | --Msg2--> Subscriber2
| | --Msg3--> Subscriber3
---------
Create a shared subscription with $queue/
or $share/<group>/
prefix.
Local Subscription
The Local Subscription
will not create global routes on clustered nodes, and only dispatch MQTT messages on local node.
Usage: subscribe a topic with $local/
prefix.
erlang.mk and relx
The EMQ 2.0 adopts erlang.mk
and relx
tools to build the whole projects on Linux, Unix and Windows.
CoAP Support
The EMQ 2.0 supports CoAP(RFC7252) protocol/gateway now, and supports communication between CoAP, MQTT-SN and MQTT clients.
CoAP Protocol Plugin: https://github.com/emqtt/emqttd_coap
MQTT-SN Support
The EMQ 2.0 now supports MQTT-SN protocol/gateway.
MQTT-SN Plugin: https://github.com/emqtt/emq_sn
New Configuration File
The release integrated with cuttlefish
library, and adopted a more user-friendly k = v
syntax for the new configuration file:
## Node name
node.name = emqttd@127.0.0.1
...
## Max ClientId Length Allowed.
mqtt.max_clientid_len = 1024
...
OS Environment Variables
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 Image
We released an official Docker Image for EMQ 2.0. The open source project for Dockerfile: https://github.com/emqtt/emq_docker.
Full Support for Windows
The EMQ 2.0 fully supports Windows platform. You can run 'emqttd_ctl' command and cluster two nodes on Windows now.
Bugfix and Enhancements
\#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