Changes
Version 4.3.1
Release Date: 2021-05-14
EMQ X 4.3.1 is released now, it mainly includes the following changes:
emqx
Bug fixes:
CPU consumption increases exponentially with the number of topic levels after route compression
Github PR: emqx#4800 (opens new window)
Fix poor large frame concatenation performance
Github Issue: emqx#4787 (opens new window) Github PR: emqx#4802 (opens new window)
Newly added shared subscription strategy is unavailable
Github Issue: emqx#4808 (opens new window) Github PR: emqx#4809 (opens new window)
Fixed the incorrect implementation of metrics/stats for retained messages and messages of delayed publish
Github PR: emqx#4778 (opens new window), emqx#4778 (opens new window)
Ensure line breaks between json logs
Github PR: emqx#4778 (opens new window)
Version 4.3.0
Release Date: 2021-05-06
EMQ X 4.3.0 is released now, it mainly includes the following changes:
Features and Enhancement
Building
- Support Erlang/OTP 23
- The new installation package only supports macOS 10.14 and above
- Project adjusted to umbrella structure
- Support using Elixir to build plugins
Performance improvement
- The underlying implementation of the multi-language extension function is changed from erlport to gRPC
- Support routing table compression, reduce memory usage, enhance subscription performance, publishing performance will be slightly affected, so disable option is provided
- Improve wildcard subscription performance
- Improve processing performance when a large number of clients are offline
Security
- Protect EMQ X Broker from cross-site WebSocket hijacking attacks
- SSL supports
verify
andserver_name_indication
configuration - Support the configuration of the maximum length of the certificate chain and the password of the private key file
- Use TLS v1.3 by default, TLS v1.3 configs has no effect if started on OTP 22
- JWT authentication supports JWKS
Other
- Added update resource functionality for rule engine
- Rule engine SQL function supports conversion between unix timestamp and rfc3339 format time
- Keep retrying the resources that failed to connect after the EMQ X Broker is started
- Websocket listener supports selecting supported subprotocols from the subprotocols list
- WebSocket connection supports obtaining real IP and Port
- Support the default authentication method caching_sha2_password of MySQL 8.0
- The starting point is randomly selected when the shared subscription distribution strategy is configured as
round_robin
- Shared subscription supports hash distribution of messages by source topic
- Support import and export of Authentication & ACL information in Mnesia
- Allow to use base64 encoded client certificate or MD5 value of client certificate as username or Client ID
- MQTT listener restart from API/CLI
- API/CLI to force evict ACL cache
- Added observer_cli
- Support cluster metrics for Prometheus
- Redis sentinel mode supports SSL connection
- Support single-line log output, and support rfc3339 time format
emqx_auth_clientid
andemqx_auth_username
are merged toemqx_auth_mnesia
. Please refer to doc (opens new window) to export data from older versions, and import to v4.3- By default, docker only logs to console, set EMQX_LOG__TO=file to switch to file
- Support Json format log
- Support IPv6 auto probe
- Environment variable override configuration files can be used for all distributions (previously only for docker)
- Certificate upload from dashboard has been made available for open-source edition (previously only for enterprise edition)
Bugs Fix
MQTT Protocol
- Fix the processing of MQTT heartbeat packets
- Fix MQTT packet receiving count issue
- Limit the maximum effective size of the flight window to 65535
- The value of the
Keep Alive
field in the Dashboard is not synchronized whenServer Keep Alive
was in effect
Gateway
- ACL configuration in CoAP connection does not take effect
- CoAP clients using the same ClientID can access at the same time
- The sleep mode of MQTT-SN is unavailable
- The MQTT-SN gateway will discard DISCONNECT packets in sleep mode
- The LwM2M gateway encodes and decodes numbers into unsigned integers
Resource
- The MySQL authentication SSL/TLS connection function is not available
- Fix Redis reconnection failure
Other Fixes
- ekka_locker’s memory may grow infinitely under extreme conditions
- The
max_inflight_size
configuration item in the MQTT bridge function does not take effect - Fix the issue of inflight in MQTT bridge
- Fixed the error of indicator statistics in the MQTT bridge function and the problem of multiple unit conversions in the
retry_interval
field - Incorrect calculation of alarm duration
- The long Client ID cannot be tracked
- The query client information may crash
- The inconsistency between topic rewriting and ACL execution order when publishing and subscribing
- The WebSocket connection cannot use the peer certificate as the username
- The authentication data cannot be imported
- EMQ X may fail to start in Docker
- Fixed delayed connection process OOM kill
- The MQTT-SN connection with Clean Session being false did not publish a will message when it was disconnected abnormally
Version 4.3-rc.5
Release Date: 2021-04-26
EMQ X 4.3-rc.5 is released now, it mainly includes the following changes:
emqx
Enhancement:
Improve wildcard subscription performance
Github Issue: emqx#2985 (opens new window) Github PR: emqx#4645 (opens new window)
Support single-line log output, and support rfc3339 time format
Github PR: emqx#4656 (opens new window)
Support routing table compression, reduce memory usage, enhance subscription performance, publishing performance will be slightly affected, so disable option is provided
Github PR: emqx##4628 (opens new window)
Rule engine SQL function supports conversion between unix timestamp and rfc3339 format time
Github PR: emqx#4639 (opens new window)
Bug fixes:
Fix the issue that EMQ X may fail to start in Docker
Github PR: emqx#4670 (opens new window), emqx#4675 (opens new window), emqx#4657 (opens new window)
When the rule engine resource is not initialized successfully, the corresponding rule status is set to unavailable
Github Issue: emqx#4642 (opens new window) Github PR: emqx#4643 (opens new window)
Fix the issue caused by reporting telemetry data when EMQ X is not fully started
Github PR: emqx#4627 (opens new window)
Fix the issue that the HTTPS certificate must be configured to load
emqx-exhook
pluginGithub PR: emqx#4678 (opens new window)
Version 4.3-rc.4
Release Date: 2021-04-16
EMQ X 4.3-rc.4 is released now, it mainly includes the following changes:
emqx
Enhancement:
Redis sentinel mode supports SSL connection
Github PR: emqx#4553 (opens new window)
WebSocket connection supports obtaining real IP and Port
Github PR: emqx#4558 (opens new window)
Support cluster metrics for Prometheus
Github Issue: emqx#4548 (opens new window) Github PR: emqx#4572 (opens new window)
Bug fixes:
Fix the issue of inflight in MQTT bridge
Github Issue: emqx#3629 (opens new window) Github PR: emqx#4513 (opens new window), emqx#4526 (opens new window)
Fix the issue that the multi-language extension hook cannot handle the false value returned
Github PR: emqx#4542 (opens new window)
Start modules by default to prevent modules from not working properly after the cluster
Github PR: emqx#4547 (opens new window)
Fix the issue that the authentication data cannot be imported
Github PR: emqx#4582 (opens new window), emqx#4528 (opens new window)
Fix the issue that the authentication data cannot be imported
Github PR: emqx#4563 (opens new window)
Fix the issue that the MQTT-SN gateway will discard DISCONNECT packets in sleep mode
Github Issue: emqx#4506 (opens new window) Github PR: emqx#4515 (opens new window)
Fix the issue that the LwM2M gateway encodes and decodes numbers into unsigned integers
Github Issue: emqx#4499 (opens new window) Github PR: emqx#4500 (opens new window)
Fix the issue that some HTTP APIs are unavailable
Github Issue: emqx#4472 (opens new window) Github PR: emqx#4503 (opens new window)
Version 4.3-rc.3
Release Date: 2021-03-30
EMQ X 4.3-rc.3 is released now, it mainly includes the following changes:
emqx
Bug fixes:
Limit the maximum effective size of the flight window to 65535
Github PR: emqx#4436 (opens new window)
Fix the issue that the value of the
Keep Alive
field in the Dashboard is not synchronized whenServer Keep Alive
was in effectGithub PR: emqx#4444 (opens new window)
Quickly kill the connection process when OOM
Github PR: emqx#4451 (opens new window)
Fix the issue that
emqx start
reports timeout but the service has actually startedGithub PR: emqx#4449 (opens new window)
Fix the issue that the sleep mode of MQTT-SN is unavailable
Github PR: emqx#4435 (opens new window)
Version 4.3-rc.2
Release Date: 2021-03-26
EMQ X 4.3-rc.2 is released now, it mainly includes the following changes:
emqx
Bug fixes:
Fix the issue that
emqx
andemqx_ctl
commands are not available in some casesGithub PR: emqx#4430 (opens new window)
Version 4.3-rc.1
Release Date: 2021-03-23
EMQ X 4.3-rc.1 is released now, it mainly includes the following changes:
emqx
Enhancement:
Added observer_cli
Github PR: emqx#4323 (opens new window)
Support clearing all ACL cache
Github PR: emqx#4361 (opens new window)
SSL supports
verify
andserver_name_indication
configurationGithub PR: emqx#4349 (opens new window)
Bug fixes:
Fix issues caused by subject rewriting and ACL execution order
Github Issue: emqx#4200 (opens new window) Github PR: emqx#4331 (opens new window)
Fix MQTT packet receiving count issue
Github PR: emqx#4371 (opens new window)
Fix the processing of heartbeat packets
Github Issue: emqx#4370 (opens new window) Github PR: emqx#4371 (opens new window)
Fix the issue that the default SSL Ciphers contains Ciphers that are not supported by OTP 22, which causes the startup failure after compiling with OTP 22
Github PR: emqx#4377 (opens new window)
Version 4.3-beta.1
Release Date: 2021-03-03
EMQ X 4.3-beta.1 is released now, it mainly includes the following changes:
emqx
Enhancement:
Reduce the performance loss when opening the rule engine plugin
Github PR: emqx#4160 (opens new window)
Only enable data telemetry in the official version
Github PR: emqx#4163 (opens new window)
Support restarting the listener
Github PR: emqx#4188 (opens new window), emqx#4190 (opens new window)
Disable the rules while destroying the resources occupied by the action
Github PR: emqx#4232 (opens new window)
The starting point is randomly selected when the shared subscription distribution strategy is configured as
round_robin
Github PR: emqx#4232 (opens new window)
Allow to use Base64 encoded client certificate or MD5 value of client certificate as username or Client ID
Github PR: emqx#4194 (opens new window)
Keep retrying the resources that failed to connect after the EMQ X Broker is started
Github PR: emqx#4125 (opens new window)
Bug fixes:
Fix the issue that the long Client ID cannot be tracked
Github PR: emqx#4163 (opens new window)
Fix the issue that the query client information may crash
Github PR: emqx#4124 (opens new window)
Version 4.3-alpha.1
Release Date: 2021-01-29
EMQ X 4.3-alpha.1 is released now, it mainly includes the following changes:
Features
- Added update resource logic for rule engine
- Enhance Webhook and HTTP authentication performance
- The underlying implementation of the multi-language extension function is changed from erlport to gRPC
- Protect EMQ X Broker from cross-site WebSocket hijacking attacks
- Project adjusted to umbrella structure
- Solve the problem that the nodes in the cluster environment must be started in the first startup sequence, otherwise you need to wait for the front node to start
- Websocket listener supports selecting supported subprotocols from the subprotocols list
- Support the default authentication method caching_sha2_password of MySQL 8.0
- JWT authentication supports JWKS
- Support the configuration of the maximum length of the certificate chain and the password of the private key file
- Support import and export of Authentication & ACL information in Mnesia
- Shared subscription supports Hash distribution of messages by source topic
- EMQ X Broker in docker now starts in foreground mode
BUG
- Fix the issue that ekka_locker’s memory may grow infinitely under extreme conditions
- Fix the issue that the
max_inflight_size
configuration item in the MQTT bridge function does not take effect - Fix the issue that ACL configuration in CoAP connection does not take effect
- Fix the issue that CoAP clients using the same ClientID can access at the same time
- Fix the issue of incorrect calculation of alarm duration
- Fix the issue that the MySQL authentication SSL/TLS connection function is not available
- Fixed the error of indicator statistics in the MQTT bridge function and the problem of multiple unit conversions in the
retry_interval
field - Fix Redis reconnection failure
Others
- Support Erlang/OTP 23
- The new installation package only supports macOS 10.14 and above