EMQ X 配置变更历史
为方便用户与插件开发者使用,EMQ X 配置文件经过四次调整。
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 开发者的用户很不友好。
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 读取配置参数。
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
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 启动时配置文件处理流程: