github emqx/emqx v2.1.0-beta.1
emqttd v2.1.0-beta.1 released

latest releases: e5.7.0-alpha.1, v5.6.1, e5.6.1...
pre-release7 years ago

EMQ v2.1.0-beta.1 is now available.

We improved the design of Session/Inflight and use one timer to redeliver the inflight QoS1/2 messages, and tuned the GC mechanism of MQTT connection process to reduce CPU usage at the high rate of messages.

Since 2.1.0 release, we will tag EMQ versions according to the Semantic Versioning 2.0.0 principles. And we will release EMQ versions monthly, odd number releases for bugfix and optimization, and even number releases for bugfix and new features.

Warning: EMQ 2.1+ Requires Erlang/OTP R19+ to build.

Tuning GC

All the WebSocket, Client, Session processes will hiberante and GC after a period of idle time.

Add 'mqtt.conn.force_gc_count' configuration to force the Client, Session processes to GC when high message throughput.

Tune the 'fullsweep_after' option of WebSocket, Client, Session processes.

New Features

Per Client, Session Statistics

Support Per Client, Session Statistics. Enable by configuration in etc/emq.conf:

mqtt.client.enable_stats = on

mqtt.session.enable_stats = on

Add 'missed' Metrics

The 'missed' metrics will be increased when EMQ broker received PUBACK, PUBREC, PUBREL, PUBCOMP packets from clients, but missing in inflight window:

packets/puback/missed

packets/pubrec/missed

packets/pubrel/missed

packets/pubcomp/missed

Syslog Integration

Output EMQ log to syslog:

## Syslog. Enum: on, off
log.syslog = on

##  syslog level. Enum: debug, info, notice, warning, error, critical, alert, emergency
log.syslog.level = error

Upgrade QoS

Support to upgrade QoS accoding to the subscription:

mqtt.session.upgrade_qos = on

Add 'acl reload' CLI

Reload acl.conf without restarting emqttd service (#885)

Improvements

etc/emq.conf Changes

  1. Rename mqtt.client_idle_timeout to mqtt.client.idle_timeout
  2. Add mqtt.client.enable_stats
  3. Add mqtt.session.upgrade_qos
  4. Delete mqtt.session.collect_interval
  5. Add mqtt.session.enable_stats
  6. Rename mqtt.session.expired_after to mqtt.session.expiry_interval

Hooks API

Hooks module now support to register the same function with different tags.

Merge modules to emq_modules

Merge the emq_mod_presence, emq_mod_subscription, emq_mod_rewrite into emq_modules

Rename emq_mod_retainer to emq_retainer project

Bugfix

emqttd#916: Add 'mqtt_msg_from()' type

emq-auth-http#15: ACL endpoint isnt called

Plugins

Dashboard Plugin

Overview page: Add 'missed' metrics
Client page: Add 'SendMsg', 'RecvMsg' Fields
Session page: DeliverMsg、EnqueueMsg Fields

recon Plugin

Change the datatype of 'recon.gc_interval' to duration

reloader Plugin

Change the datatype of 'reloader.interval' to duration

Don't miss a new emqx release

NewReleases is sending notifications on new releases.