e5.1.1
版本发布时间: 2023-07-27 22:21:46
emqx/emqx最新发布版本:v5.8.2(2024-11-12 22:20:49)
e5.1.1
Enhancements
- #10667 The MongoDB connector and bridge have been refactored into a separate app to improve the code structure.
- #11115 Added info logs to indicate when buffered messages are dropped due to time-to-live (TTL) expiration.
-
#11133 Renamed
deliver_rate
todelivery_rate
in the configuration ofretainer
, while being compatible with the previousdeliver_rate
. -
#11137 Refactored the Dashboard listener configuration to use a nested
ssl_options
field for SSL settings. -
#11138 Changed the default value of k8s
api_server
fromhttp://127.0.0.1:9091
tohttps://kubernetes.default.svc:443
.-
emqx_ctl conf show cluster
no longer displays irrelevant configuration items whendiscovery_strategy=static
. Configuration information related toetcd/k8s/dns
will not be shown. - Removed
zones
(deprecated config key) fromemqx_ctl conf show_keys
.
-
-
#11165 Removed the
/configs/limiter
API fromswagger.json
. Only the API documentation was removed, and the/configs/limiter
API functionalities remain unchanged. -
#11166 Added 3 random SQL functions to the rule engine:
-
random()
: Generates a random number between 0 and 1 (0.0 =< X < 1.0). -
uuid_v4()
: Generates a random UUID (version 4) string. -
uuid_v4_no_hyphen()
: Generates a random UUID (version 4) string without hyphens.
-
-
#11180 Added a new configuration API
/configs
(GET/PUT) that supports reloading the HOCON format configuration file. -
#11226 Unified the listener switch to
enable
, while being compatible with the previousenabled
. -
#11249 Added
/license/setting
REST API endpoint to read and update licensed connections usage alarm watermark. -
#11251 Added the
/cluster/topology
REST API endpoint: AGET
request to this endpoint returns the cluster topology, showing connections between RLOG core and replicant nodes. - #11253 The Webhook/HTTP bridge has been refactored into its own Erlang application. This allows for more flexibility in the future and allows the bridge to be run as a standalone application.
- #11079 Added support for custom headers in messages for Kafka bridge producer mode.
- #11132 Added support for MQTT action authorization based on QoS level and Retain flag values. Now, EMQX can verify whether clients have the permission to publish/subscribe using specific QoS levels, and whether they have the permission to publish retained messages.
-
#11207 Updated the driver versions of multiple data bridges to enhance security and ensure that sensitive data will not be leaked. This includes:
- TDengine
- MongoDB
- MySQL
- Clickhouse
- #11241 Schema Registry has been refactored into its own Erlang application. This allows for more flexibility in the future.
- #11020 Upgraded emqtt dependency to prevent sensitive data leakage in the debug log.
- #11135 Improved time offset parser in rule engine and return uniform error codes.
-
#11236 Improved the speed of clients querying in REST API
/clients
endpoint with default parameters.
Bug Fixes
- #11004 Wildcards are no longer allowed for the destination topic in topic rewrite.
-
#11026 Addressed an inconsistency in the usage of
div
andmod
operations within the rule engine. Previously, thediv'
operation could only be used as an infix operation, andmod
could only be applied through a function call. Now, bothdiv
andmod
can be used via function call syntax and infix syntax. - #11037 When starting an HTTP connector, EMQX now returns a descriptive error in case the system is unable to connect to the remote target system.
- #11039 Fixed database number validation for Redis connector. Previously, negative numbers were accepted as valid database numbers.
- #11074 Fixed a bug to adhere to Protocol spec MQTT-5.0 [MQTT-3.8.3-4].
- #11077 Fixed a crash when updating listener binding with a non-integer port.
- #11094 Fixed an issue where connection errors in Kafka Producer would not be reported when reconnecting the bridge.
-
#11103 Updated
erlcloud
dependency. -
#11106 Added validation for the maximum number of
worker_pool_size
of a bridge resource. Now the maximum amount is 1024 to avoid large memory consumption from an unreasonable number of workers. -
#11118 Ensured that validation errors in REST API responses are slightly less confusing. Now, if there are out-of-range errors, they will be presented as
{"value": 42, "reason": {"expected": "1..10"}, ...}
, replacing the previous usage ofexpected_type
withexpected
. - #11126 Rule metrics for async mode bridges will set failure counters correctly now.
-
#11134 Fixed the value of the uppercase
authorization
header not being obfuscated in the log. - #11139 The Redis connector has been refactored into its own Erlang application to improve the code structure.
-
#11145 Added several fixes and improvements in Ekka and Mria.
Ekka:
- Improved cluster discovery log messages to consistently describe actual events Ekka PR.
- Removed deprecated cluster auto-clean configuration parameter (it has been moved to Mria) Ekka PR. Mria:
- Ping now only runs on replicant nodes. Previously,
mria_lb
was trying to ping both stopped and running replicant nodes, which could result in timeout errors. Mria PR - Used
null_copies
storage when copying$mria_rlog_sync
table. This fix has no effect on EMQX for now, as$mria_rlog_sync
is only used inmria:sync_transaction/2,3,4
, which is not utilized by EMQX. Mria PR
- #11148 Fixed an issue when nodes tried to synchronize configuration update operations to a node which has already left the cluster.
- #11150 Wait for Mria table when emqx_psk app is being started to ensure that PSK data is synced to replicant nodes even if they don't have init PSK file.
- #11151 The MySQL connector has been refactored into its own Erlang application to improve the code structure.
- #11158 Wait for Mria table when the mnesia backend of retainer starts to avoid a possible error of the retainer when joining a cluster.
- #11162 Fixed an issue in webhook bridge where, in async query mode, HTTP status codes like 4XX and 5XX would be treated as successes in the bridge metrics.
-
#11164 Reintroduced support for nested (i.e.:
${payload.a.b.c}
) placeholders for extracting data from rule action messages without the need for callingjson_decode(payload)
first. -
#11172 Fixed the
payload
field in rule engine SQL being duplicated in the below situations:- When using a
foreach
sentence without theas
sub-expression and selecting all fields (using the*
or omitting thedo
sub-expression). For example:FOREACH payload.sensors FROM "t/#"
- When selecting the
payload
field and all fields. For example:SELECT payload.sensors, * FROM "t/#"
- When using a
-
#11174 Fixed the encoding of the
server
key coming from an ingress MQTT bridge. Before the fix, it was encoded as a list of integers corresponding to the ASCII characters of the server string. -
#11184 Config value for
mqtt.max_packet_size
now has a max value of 256MB as defined by the protocol. -
#11192 Fixed an issue with producing invalid HOCON file when an atom type was used. Also removed unnecessary
"
around keys and latin1 strings from HOCON file. - #11195 Fixed an issue where the REST API could create duplicate subscriptions for specified clients of the Stomp gateway.
-
#11206 Made the
username
andpassword
params of CoAP client optional in connection mode. - #11208 Fixed the issue of abnormal data statistics for LwM2M clients.
-
#11211 HTTP API
DELETE
operations on non-existent resources now consistently returns404
. - #11214 Fixed a bug where node configuration may fail to synchronize correctly when the node joins the cluster.
-
#11229 Fixed an issue that prevented plugins from starting/stopping after changing configuration via
emqx ctl conf load
. -
#11237 The
headers
default value in /prometheus API should be a map instead of a list. - #11250 Fixed a bug when the order of MQTT packets withing a WebSocket packet will be reversed.
-
#11271 Ensured that the range of all percentage type configurations is from 0% to 100% in the REST API and configuration. For example,
sysom.os.sysmem_high_watermark=101%
is invalid now. -
#11272 Fixed a typo in the log, where an abnormal
PUBREL
packet was mistakenly referred to aspubrec
. -
#11281 Restored support for the special
$queue/
shared subscription topic prefix. -
#11294 Fixed
emqx ctl cluster join
,leave
, andstatus
commands. - #11306 Fixed rule action metrics inconsistency where dropped requests were not accounted for.
- #11309 Improved startup order of EMQX applications. Simplified build scripts and improved code reuse.
-
#11322 Added support for importing additional configurations from EMQX backup file (
emqx ctl import
command):- rule_engine (previously not imported due to the bug)
- topic_metrics (previously not implemented)
- slow_subs (previously not implemented).
- #10645 Changed health check for Oracle Database, PostgreSQL, MySQL and Kafka Producer data bridges to ensure target table/topic exists.
- #11107 MongoDB bridge health check now returns the failure reason.
- #11139 The Redis bridge has been refactored into its own Erlang application to improve the code structure and to make it easier to maintain.
- #11151 The MySQL bridge has been refactored into its own Erlang application to improve the code structure and to make it easier to maintain.
-
#11163 Hid
topology.pool_size
in MondoDB bridges and fixed it to 1 to avoid confusion. - #11175 Now when using a nonexistent hostname for connecting to MySQL, a 400 error is returned rather than 503 in the REST API.
-
#11198 Fixed global rebalance status evaluation on replicant nodes. Previously,
/api/v5/load_rebalance/global_status
API method could return incomplete results if handled by a replicant node. - #11223 In InfluxDB bridging, mixing decimals and integers in a field may lead to serialization failure in the Influx Line Protocol, resulting in the inability to write to the InfluxDB bridge (when the decimal point is 0, InfluxDB mistakenly interprets it as an integer). See also: InfluxDB v2.7 Line-Protocol.
-
#11225 The
username
field in PostgreSQL/Timescale/MatrixDB bridges configuration is now a required one. - #11242 Restarted emqx_ee_schema_registry when a node joins a cluster. As emqx_ee_schema_registry uses Mria tables, a node joining a cluster needs to restart this application in order to start relevant Mria shard processes, ensuring a correct behaviour in Core/Replicant mode.
-
#11266 Fixed and improved support for TDengine
insert
syntax:- Added support for inserting into multi-table in the template.
For example:
insert into table_1 values (${ts}, '${id}', '${topic}') table_2 values (${ts}, '${id}', '${topic}')
- Added support for mixing prefixes/suffixes and placeholders in the template.
For example:
insert into table_${topic} values (${ts}, '${id}', '${topic}')
Note: This is a breaking change. Previously, the values of string type were quoted automatically, but now they must be quoted explicitly. For example:insert into table values (${ts}, '${a_string}')
- Added support for inserting into multi-table in the template.
For example:
- #11307 Fixed check for table existence to return a more friendly message in the Oracle bridge.
- #11316 Fixed Pool Size value not being considered in Oracle Bridge.
- #11326 Fixed return error checking on table validation in the Oracle bridge.
1、 emqx-enterprise-5.1.1-amzn2-amd64.rpm 51.99MB
2、 emqx-enterprise-5.1.1-amzn2-amd64.rpm.sha256 64B
3、 emqx-enterprise-5.1.1-amzn2-amd64.tar.gz 73.81MB
4、 emqx-enterprise-5.1.1-amzn2-amd64.tar.gz.sha256 64B
5、 emqx-enterprise-5.1.1-amzn2-arm64.rpm 51.29MB
6、 emqx-enterprise-5.1.1-amzn2-arm64.rpm.sha256 64B
7、 emqx-enterprise-5.1.1-amzn2-arm64.tar.gz 66.5MB
8、 emqx-enterprise-5.1.1-amzn2-arm64.tar.gz.sha256 64B
9、 emqx-enterprise-5.1.1-debian10-amd64.deb 45.75MB
10、 emqx-enterprise-5.1.1-debian10-amd64.deb.sha256 64B
11、 emqx-enterprise-5.1.1-debian10-amd64.tar.gz 77.1MB
12、 emqx-enterprise-5.1.1-debian10-amd64.tar.gz.sha256 64B
13、 emqx-enterprise-5.1.1-debian10-arm64.deb 44.89MB
14、 emqx-enterprise-5.1.1-debian10-arm64.deb.sha256 64B
15、 emqx-enterprise-5.1.1-debian10-arm64.tar.gz 67.89MB
16、 emqx-enterprise-5.1.1-debian10-arm64.tar.gz.sha256 64B
17、 emqx-enterprise-5.1.1-debian11-amd64.deb 45.81MB
18、 emqx-enterprise-5.1.1-debian11-amd64.deb.sha256 64B
19、 emqx-enterprise-5.1.1-debian11-amd64.tar.gz 75.36MB
20、 emqx-enterprise-5.1.1-debian11-amd64.tar.gz.sha256 64B
21、 emqx-enterprise-5.1.1-debian11-arm64.deb 44.93MB
22、 emqx-enterprise-5.1.1-debian11-arm64.deb.sha256 64B
23、 emqx-enterprise-5.1.1-debian11-arm64.tar.gz 67.49MB
24、 emqx-enterprise-5.1.1-debian11-arm64.tar.gz.sha256 64B
25、 emqx-enterprise-5.1.1-el7-amd64.rpm 51.82MB
26、 emqx-enterprise-5.1.1-el7-amd64.rpm.sha256 64B
27、 emqx-enterprise-5.1.1-el7-amd64.tar.gz 66.56MB
28、 emqx-enterprise-5.1.1-el7-amd64.tar.gz.sha256 64B
29、 emqx-enterprise-5.1.1-el7-arm64.rpm 51.26MB
30、 emqx-enterprise-5.1.1-el7-arm64.rpm.sha256 64B
31、 emqx-enterprise-5.1.1-el7-arm64.tar.gz 65.52MB
32、 emqx-enterprise-5.1.1-el7-arm64.tar.gz.sha256 64B
33、 emqx-enterprise-5.1.1-el8-amd64.rpm 50.47MB
34、 emqx-enterprise-5.1.1-el8-amd64.rpm.sha256 64B
35、 emqx-enterprise-5.1.1-el8-amd64.tar.gz 77.21MB
36、 emqx-enterprise-5.1.1-el8-amd64.tar.gz.sha256 64B
37、 emqx-enterprise-5.1.1-el8-arm64.rpm 49.66MB
38、 emqx-enterprise-5.1.1-el8-arm64.rpm.sha256 64B
39、 emqx-enterprise-5.1.1-el8-arm64.tar.gz 68.03MB
40、 emqx-enterprise-5.1.1-el8-arm64.tar.gz.sha256 64B
41、 emqx-enterprise-5.1.1-el9-amd64.rpm 47.9MB
42、 emqx-enterprise-5.1.1-el9-amd64.rpm.sha256 64B
43、 emqx-enterprise-5.1.1-el9-amd64.tar.gz 75.39MB
44、 emqx-enterprise-5.1.1-el9-amd64.tar.gz.sha256 64B
45、 emqx-enterprise-5.1.1-el9-arm64.rpm 47.39MB
46、 emqx-enterprise-5.1.1-el9-arm64.rpm.sha256 64B
47、 emqx-enterprise-5.1.1-el9-arm64.tar.gz 67.78MB
48、 emqx-enterprise-5.1.1-el9-arm64.tar.gz.sha256 64B
49、 emqx-enterprise-5.1.1-macos11-amd64.zip 57.39MB
50、 emqx-enterprise-5.1.1-macos11-amd64.zip.sha256 65B
51、 emqx-enterprise-5.1.1-macos12-amd64.zip 57.39MB
52、 emqx-enterprise-5.1.1-macos12-amd64.zip.sha256 65B
53、 emqx-enterprise-5.1.1-macos12-arm64.zip 56.56MB
54、 emqx-enterprise-5.1.1-macos12-arm64.zip.sha256 65B
55、 emqx-enterprise-5.1.1-ubuntu18.04-amd64.deb 45.86MB
56、 emqx-enterprise-5.1.1-ubuntu18.04-amd64.deb.sha256 64B
57、 emqx-enterprise-5.1.1-ubuntu18.04-amd64.tar.gz 73.96MB
58、 emqx-enterprise-5.1.1-ubuntu18.04-amd64.tar.gz.sha256 64B
59、 emqx-enterprise-5.1.1-ubuntu18.04-arm64.deb 44.89MB
60、 emqx-enterprise-5.1.1-ubuntu18.04-arm64.deb.sha256 64B
61、 emqx-enterprise-5.1.1-ubuntu18.04-arm64.tar.gz 66.35MB
62、 emqx-enterprise-5.1.1-ubuntu18.04-arm64.tar.gz.sha256 64B
63、 emqx-enterprise-5.1.1-ubuntu20.04-amd64.deb 45.88MB
64、 emqx-enterprise-5.1.1-ubuntu20.04-amd64.deb.sha256 64B
65、 emqx-enterprise-5.1.1-ubuntu20.04-amd64.tar.gz 77.81MB
66、 emqx-enterprise-5.1.1-ubuntu20.04-amd64.tar.gz.sha256 64B
67、 emqx-enterprise-5.1.1-ubuntu20.04-arm64.deb 45.01MB
68、 emqx-enterprise-5.1.1-ubuntu20.04-arm64.deb.sha256 64B
69、 emqx-enterprise-5.1.1-ubuntu20.04-arm64.tar.gz 68.59MB
70、 emqx-enterprise-5.1.1-ubuntu20.04-arm64.tar.gz.sha256 64B
71、 emqx-enterprise-5.1.1-ubuntu22.04-amd64.deb 47.56MB
72、 emqx-enterprise-5.1.1-ubuntu22.04-amd64.deb.sha256 64B
73、 emqx-enterprise-5.1.1-ubuntu22.04-amd64.tar.gz 75.77MB
74、 emqx-enterprise-5.1.1-ubuntu22.04-amd64.tar.gz.sha256 64B
75、 emqx-enterprise-5.1.1-ubuntu22.04-arm64.deb 47.03MB
76、 emqx-enterprise-5.1.1-ubuntu22.04-arm64.deb.sha256 64B
77、 emqx-enterprise-5.1.1-ubuntu22.04-arm64.tar.gz 68.02MB
78、 emqx-enterprise-5.1.1-ubuntu22.04-arm64.tar.gz.sha256 64B