node.name
说明:节点名。格式为 <name>@<host>。其中 <host> 可以是 IP 地址,也可以是 FQDN。
提示:FQDN(全限定域名):同时带有主机名和域名的名称;例如:主机名server,域名是emqx.com,那么FQDN就是server.emqx.com。
node.cookie
说明:分布式 Erlang 集群使用的 cookie 值。
注:cookie是一个字符串,用于辨别用户身份,只有cookie相同的两个节点才能建立连接
node.data_dir
说明:节点的 data 目录,用于存放 Mnesia 数据文件等。
node.heartbeat
说明:
系统调优参数,此配置将覆盖 vm.args
文件里的 -heart
参数。
启用或关闭 Erlang 运行时检测机制,并在运行时终止时自动重启。需小心使用,以免手动关闭 emqx 时被监控进程重新启动。
注:如果节点对心跳ping没有响应,启用此选项可能会导致节点重新启动。
注:当由systemd(或systemd等其他监管工具)管理时,heart可能只会导致EMQ X停止,但重启与否将取决于systemd的重启策略。
注:在docker中运行时,一旦心脏进程杀死EMQ X,容器就会死亡,但重启与否取决于容器监控策略,例如k8s重启策略。
node.async_threads
说明:
系统调优参数,此配置将覆盖 vm.args
文件里的 +A
参数。
设置 Erlang 运行时异步线程池中的线程数量。
node.process_limit
说明:
系统调优参数,此配置将覆盖 vm.args
文件里的 +P
参数。
设置 Erlang 允许的最大进程数,这将影响 emqx 节点能处理的连接数。
node.max_ports
说明:
系统调优参数,此配置将覆盖 vm.args
文件里的 +Q
参数。
设置 Erlang 允许的最大 Ports 数量。
node.dist_buffer_size
说明:
系统调优参数,此配置将覆盖 vm.args
文件里的 +zdbbl
参数。
设置 Erlang 分布式通信使用的最大缓存大小。
node.max_ets_tables
说明:
系统调优参数,此配置将覆盖 vm.args
文件里的 +e
参数。
设置 Erlang 运行时允许的最大 ETS 表数量。请注意,mnesia和SSL将创建临时ETS表。
node.global_gc_interval
说明:
系统调优参数,设置 Erlang 运行多久强制进行一次全局垃圾回收。
node.fullsweep_after
说明:
系统调优参数,此配置将覆盖 vm.args
文件里的 -env ERL_FULLSWEEP_AFTER
参数。
设置 Erlang 运行时多少次 generational GC 之后才进行一次 fullsweep GC。
node.crash_dump
说明:
设置 Erlang crash_dump 文件的存储路径和文件名。
node.ssl_dist_optfile
说明:
此配置将覆盖 vm.args
文件里的 -ssl_dist_optfile
参数。
如使用 SSL 方式建立 emqx 集群,需指定 SSL 分布式协议的配置文件。需要与 cluster.proto_dist = inet_tls
一起使用。
node.dist_net_ticktime
说明:
系统调优参数,此配置将覆盖 vm.args
文件里的 -kernel net_ticktime
参数。
当一个节点持续无响应多久之后,认为其已经宕机并断开连接。详情请参见
node.dist_listen_min
说明:
与 node.dist_listen_max
一起设定一个 TCP 端口段,此端口段用于分配给分布式 Erlang,作为分布式通道的监听端口。注意如果在节点之间设置了防火墙,需要将此端口段放进防火墙的端口白名单里。
node.dist_listen_max
说明:
与 node.dist_listen_min
一起设定一个 TCP 端口段,此端口段用于分配给分布式 Erlang,作为分布式通道的监听端口。注意如果在节点之间设置了防火墙,需要将此端口段放进防火墙的端口白名单里。
allow_anonymous
说明:
是否允许匿名用户登录系统。
注:生产环境建议关闭此选项。
acl_nomatch
说明:
ACL 未命中时,允许或者拒绝 发布/订阅 操作。
acl_file
说明:
默认 ACL 文件的路径。
enable_acl_cache
说明:
是否启用ACL缓存
acl_cache_max_size
说明:
ACL规则最大缓存条数
acl_cache_ttl
说明:ACL规则最大缓存时间
acl_deny_action
说明:
ACL 检查失败后,执行的操作。
ignore
:不做任何操作。disconnect
:断开连接。
flapping_detect_policy
说明:
指定 Flapping
检查策略。
格式:<threshold>,<duration>,<banned>
。
例如,30, 1m, 5m
,它表示如果客户端在 1 分钟内断开连接 30 次,那么在后续 5 分钟内禁止登录。
mqtt.max_packet_size
说明:允许的 MQTT 报文最大长度。
mqtt.max_clientid_len
说明:允许的 Client ID 串的最大长度。
mqtt.max_topic_levels
说明:允许客户端订阅主题的最大层级。0 表示不限制。
提示:Topic层级过多可能会导致订阅时的性能问题
mqtt.max_qos_allowed
说明:允许客户端发布的最大 QoS 等级。
mqtt.max_topic_alias
说明:允许最大的主题别名数。0 表示不支持主题别名。
mqtt.retain_available
说明:是否支持 Retain 消息。
mqtt.wildcard_subscription
说明:是否支持订阅通配主题。
mqtt.shared_subscription
说明:是否支持共享订阅
mqtt.ignore_loop_deliver
说明:是否忽略自己发送的消息。如果忽略,则表明 EMQX 不会向消息的发送端投递此消息。
mqtt.strict_mode
说明:是否开启严格检查模式。严格检查模式会更细致的检查 MQTT 报文的正确性。
plugins.etc_dir
说明:插件的配置目录
plugins.loaded_file
说明:插件启动列表的配置文件路径。
plugins.expand_plugins_dir
说明:外部插件存放目录。
broker.sys_interval
说明:设置系统主题 ($SYS
) 消息的发布间隔。
broker.sys_heartbeat
说明:设置系统心跳消息的发布间隔。系统心跳消息包括下面两个主题:
- "$SYS/brokers/<node>/uptime"
- "$SYS/brokers/<node>/datetime"
broker.session_locking_strategy
说明:设置会话集群锁的类型。会话的集群锁用来防止同一个客户端在多个不同节点上创建多个会话,常见于客户端频繁切换节点登录的情况。
broker.shared_subscription_strategy
说明:设置共享订阅的分发策略。可选值为:
- random: 在所有订阅者中随机选择
- round_robin: 按照一个固定的顺序选择下一个订阅者
- sticky: 首次分发时随机选择一个订阅者,后续消息一直发往这一个订阅者
- hash_clientid: 按照发布者 ClientID 的哈希值
- hash_topic: 按照源消息主题的哈希值
broker.shared_dispatch_ack_enabled
说明:开启或关闭共享订阅对于 qos1/qos2 消息的 ACK 检查功能。开启后,如果投递到某个订阅者但收不到ACK,将尝试投递给订阅组里的下一个订阅者。
broker.route_batch_clean
说明:开启或关闭批量清理路由信息。批量清理路由可用在短时间内大量客户端掉线的情况,以提高清理效率。
broker.perf.route_lock_type
Description
选择在数据库中为通配符订阅更新路由信息时锁的粒度。
key
(默认值) 为每个前缀拿一次数据库锁。tab
表锁global
全局锁
对于较大集群,(如7个node或以上),尤其是node之间网络延迟大的,推荐是用tab
和 global
。 注意:是需要重启整个集群来使得更新生效。
broker.perf.trie_compaction
Description
设置为 true
时,对通配符订阅表进行压缩。 压缩可优化写操作,降低高并发量的订阅请求响应时间,内存使用量也只有非压缩时的一半。 非压缩优化读操作,适用于发布主题层数较多的场景。
注意: 将该配置从 fase
改成 true
时,集群中的节点可依次重启来是配置生效。 从 true
改为 false
时,需要将集群中所有的节点重启,否则会发生有些消息 无法被路由的情况。
license.file
说明:license文件路径