节点

EMQ X 集群中节点通信,管理监控 API、管理命令等节点连接、管理功能均需要指定节点名称。EMQ X 节点规范与功能沿用 Erlang,节点名称格式为:name@当前节点用于通信的 IP 地址

Erlang/OTP 平台应用多由分布的 Erlang 节点(进程)组成,每个 Erlang 节点(进程)需指配一个节点名,用于节点间通信互访。 所有互相通信的 Erlang 节点(进程)间通过一个共用的 Cookie 进行安全认证。

  1. ## Node name
  2. node.name = emqx@127.0.0.1
  3. ## Cookie for distributed node
  4. node.cookie = emqxsecretcookie

EMQ X 节点连接方式

EMQ X 节点基于 Erlang/OTP 平台的 TCPv4, TCPv6 或 TLS 协议连接:

  1. ## 指定 Erlang 分布式通信协议
  2. ## - inet_tcp: 默认值,使用 TCP IPv4 通信.
  3. ## - inet6_tcp: 使用 TCP IPv6 通信.
  4. ## - inet_tls: 使用 TLS.
  5. node.proto_dist = inet_tcp

使用 TLS (inet_tls)连接方式通信时,需指定 ssl 配置文件:

  1. node.ssl_dist_optfile = {{ platform_etc_dir }}/ssl_dist.conf
  2. ## etc/ssl_dist.conf
  3. ## 使用 Erlang 元组指定证书
  4. [{server,
  5. [{certfile, "etc/certs/cert.pem"},
  6. {keyfile, "etc/certs/key.pem"},
  7. {secure_renegotiate, true},
  8. {depth, 0}]},
  9. {client,
  10. [{secure_renegotiate, true}]}].

Erlang 虚拟机参数

该部分配置为高级配置,如无特殊需求或不清楚配置项含义建议使用默认值。详细配置见 Erlang 虚拟机启动配置项配置

配置项说明
node.smp = autoSMP 模式,可选 enable, auto, disable
node.heartbeat = onErlang 运行时系统心跳监控
node.kernel_poll = on内核轮询
node.async_threads = 32同步线程池大小
node.process_limit = 256000Erlang 虚拟机允许的最大进程数,一个 MQTT 连接会消耗2个 Erlang 进程,所以参数值 > 最大连接数 * 2
node.max_ports = 256000Erlang 虚拟机允许的最大 Port 数量,一个 MQTT 连接消耗 1 个 Port,所以参数值 > 最大连接数
node.dist_buffer_size = 8MB分发缓冲区缓存大小
node.max_ets_tables = 256000最大 ETS 表大小
node.fullsweep_after = 1000调整 GC 频率
node.crash_dump = log/crash.dump故障转储日志文件
node.dist_net_ticktime = 60
node.dist_listen_min = 6369node.dist_listen_max = 6369节点监听器端口范围