EMQ X 配置变更历史

EMQ X 配置变更历史

为方便用户与插件开发者使用,EMQ X 配置文件经过四次调整。

  1. EMQ X 1.x 版本采用 Erlang 原生配置文件格式 etc/emqttd.config:
{emqttd, [
  %% Authentication and Authorization
  {access, [
     %% Authetication. Anonymous Default
     {auth, [
     %% Authentication with username, password
     %{username, []},

     %% Authentication with clientid
     %{clientid, [{password, no}, {file, "etc/clients.config"}]},

Erlang 的原生配置格式多层级嵌套,对非 Erlang 开发者的用户很不友好。

  1. EMQ X 2.0-beta.x 版本简化了原生 Erlang 配置文件,采用类似 rebar.config 或 relx.config 格式:
 %% Max ClientId Length Allowed.
 {mqtt_max_clientid_len, 512}.

 %% Max Packet Size Allowed, 64K by default.
 {mqtt_max_packet_size, 65536}.

 %% Client Idle Timeout.
 {mqtt_client_idle_timeout, 30}. % Second

简化后的 Erlang 原生配置格式方便用户配置,但插件开发者不得不依赖 gen_conf 库,而不是通过 appliaton:get_env 读取配置参数。

  1. EMQ X 2.0-rc.2 正式版集成了 cuttlefish 库,采用了类似 sysctl 的 k = v 通用格式,并在系统启动时翻译成 Erlang 原生配置格式:
## Node name
node.name = emq@127.0.0.1

## Max ClientId Length Allowed.
mqtt.max_clientid_len = 1024
  1. EMQ X 3.0-beta.1 测试版正式更名 emqttd 为 emqx ,配置名称与配置信息进行相关变化:
## Profile
etc/emq.config  ==> etc/emqx.config

 ## Node name
 原先:
 node.name = emq@127.0.0.1
 现在:
 node.name = emqx@127.0.0.1

EMQ X 启动时配置文件处理流程:

image