EMQX 采用商业源码许可证,加速 MQTT + AI 创新

broker 5.0.23 更新日志

v5.0.23

Enhancements

  • #10156 Change the priority of the configuration:

    1. If it is a new installation of EMQX, the priority of configuration is ENV > emqx.conf > HTTP API.
    2. If EMQX is upgraded from an old version (i.e., the cluster-override.conf file still exists in EMQX's data directory), then the configuration priority remains the same as before. That is, HTTP API > ENV > emqx.conf.

    Deprecated data/configs/local-override.conf.

    Stabilizing the HTTP API for hot updates.

  • #10354 More specific error messages when configure with bad max_heap_size value. Log current value and the max value when the message_queue_too_long error is thrown.

  • #10359 Metrics now are not implicitly collected in places where API handlers don't make any use of them. Instead, a separate backplane RPC gathers cluster-wide metrics.

  • #10373 Deprecate the trace.payload_encode configuration. Add payload_encode=[text,hidden,hex] option when creating a trace via HTTP API.

  • #10389 Unify the config formats for cluster.core_nodes and cluster.statics.seeds. Now they both support formats in array ["emqx1@127.0.0.1", "emqx2@127.0.0.1"] or semicolon-separated string "emqx1@127.0.0.1,emqx2@127.0.0.1".

  • #10391 Hide a large number of advanced options to simplify the configuration file.

    That includes rewrite, topic_metric, persistent_session_store, overload_protection, flapping_detect, conn_congestion, stats,auto_subscribe, broker_perf, shared_subscription_group, slow_subs, ssl_options.user_lookup_fun and some advance items in node and dashboard section, #10358, #10381, #10385.

  • #10392 A new function to convert a formatted date to an integer timestamp has been added: date_to_unix_ts/3

  • #10404 Change the default queue mode for buffer workers to memory_only. Before this change, the default queue mode was volatile_offload. When under high message rate pressure and when the resource is not keeping up with such rate, the buffer performance degraded a lot due to the constant disk operations.

  • #10426 Optimize the configuration priority mechanism to fix the issue where the configuration changes made to etc/emqx.conf do not take effect after restarting EMQX.

    More introduction about the new mechanism: Configure Override Rules

  • #10376 Simplify the configuration of the limiter feature and optimize some codes

    • Rename message_in to messages
    • Rename bytes_in to bytes
    • Use burst instead of capacity
    • Hide non-importance fields
    • Optimize limiter instances in different rate settings
  • #10430 Simplify the configuration of the retainer feature.

    • Mark flow_control as non-importance field.

Bug Fixes

  • #10369 Fix error in /api/v5/monitor_current API endpoint that happens when some EMQX nodes are down.

    Prior to this fix, sometimes the request returned HTTP code 500 and the following message:

    {"code":"INTERNAL_ERROR","message":"error, badarg, [{erlang,'++',[{error,nodedown},[{node,'emqx@10.42.0.150'}]], ...
    
  • #10410 Fix config check failed when gateways are configured in emqx.conf. This issue was first introduced in v5.0.22 via #10278, the boot-time config check was missing.