- zoneexternal
- zone.external.enable_acl
- zone.external.enable_ban
- zone.external.enable_stats
- zone.external.acl_deny_action
- zone.external.force_gc_policy
- zone.external.force_shutdown_policy
- zone.external.max_packet_size
- zone.external.max_clientid_len
- zone.external.max_topic_levels
- zone.external.max_qos_allowed
- zone.external.max_topic_alias
- zone.external.retain_available
- zone.external.wildcard_subscription
- zone.external.shared_subscription
- zone.external.server_keepalive
- zone.external.keepalive_backoff
- zone.external.max_subscriptions
- zone.external.upgrade_qos
- zone.external.max_inflight
- zone.external.retry_interval
- zone.external.max_awaiting_rel
- zone.external.await_rel_timeout
- zone.external.session_expiry_interval
- zone.external.max_mqueue_len
- zone.external.mqueue_priorities
- zone.external.mqueue_default_priority
- zone.external.mqueue_store_qos0
- zone.external.enable_flapping_detect
- zone.external.mountpoint
- zone.external.use_username_as_clientid
- zone.external.ignore_loop_deliver
- zone.external.strict_mode
zoneexternal
zone.external.idle_timeout
Type | Default |
---|---|
duration | 15s |
说明
TCP 连接建立后的发呆时间,如果这段时间内未收到任何报文,则会关闭该连接。
zone.external.enable_acl
Type | Optional Value | Default |
---|---|---|
enum | on , off | on |
说明
是否开启 ACL 检查。
zone.external.enable_ban
Type | Optional Value | Default |
---|---|---|
enum | on , off | on |
说明
是否开启黑名单。
zone.external.enable_stats
Type | Optional Value | Default |
---|---|---|
enum | on , off | on |
说明
是否开启客户端状态统计。
zone.external.acl_deny_action
| Type | Optional Value | Default | | —— | —————————— - | ———— | | enum | ignore
, disconnect
| ignore
|
说明
ACL 检查失败后,执行的操作。
ignore
:不做任何操作。disconnect
:断开连接。
zone.external.force_gc_policy
Type | Default |
---|---|
string | 16000|16MB |
说明
当收到一定数量的消息,或字节,就强制执行一次垃圾回收。
格式:<Number>|<Bytes>
。
例如,16000|16MB
表示当收到 16000
条消息,或 16MB
的字节流入就强制执行一次垃圾回收。
zone.external.force_shutdown_policy
Type | Default |
---|---|
string | - |
说明
当进程消息队列长度,或占用的内存字节到达某值,就强制关闭该进程。
这里的 消息队列
指的是 Erlang 进程的 消息邮箱
,并非 QoS 1 和 QoS 2 的 mqueue
。
格式:<Number>|<Bytes>
。
例如,32000|32MB
表示当进程堆积了 32000
条消息,或进程占用内存达到 32MB
则关闭该进程。
zone.external.max_packet_size
Type | Default |
---|---|
bytesize | - |
说明
允许的 MQTT 报文最大长度。
zone.external.max_clientid_len
Type | Default |
---|---|
integer | - |
说明
允许的 Client ID 串的最大长度。
zone.external.max_topic_levels
Type | Default |
---|---|
integer | - |
说明
允许客户端订阅主题的最大层级。0 表示不限制。
zone.external.max_qos_allowed
Type | Optional Value | Default |
---|---|---|
enum | 0 , 1 , 2 | - |
说明
允许客户端发布的最大 QoS 等级。
zone.external.max_topic_alias
Type | Default |
---|---|
integer | - |
说明
允许最大的主题别名数。0 表示不支持主题别名。
zone.external.retain_available
Type | Optional Value | Default |
---|---|---|
enum | true , false | - |
说明
是否支持 Retain 消息。
zone.external.wildcard_subscription
Type | Optional Value | Default |
---|---|---|
enum | true , false | - |
说明
是否支持订阅通配主题。
zone.external.shared_subscription
Type | Optional Value | Default |
---|---|---|
enum | true , false | - |
说明
是否支持共享订阅。
zone.external.server_keepalive
Type | Default |
---|---|
integer | - |
说明
服务端指定的 Keepalive 时间。用于 MQTT v5.0 协议的 CONNACK 报文。
zone.external.keepalive_backoff
Type | Optional Value | Default |
---|---|---|
float | > 0.5 | 0.75 |
说明
Keepalive 退避指数。EMQ X 如果在 Keepalive * backoff * 2
的时间内未收到客户端的任何数据报文,则认为客户端已心跳超时。
zone.external.max_subscriptions
Type | Default |
---|---|
integer | 0 |
说明
单个客户端允许订阅的最大主题数。0
表示不限制。
zone.external.upgrade_qos
Type | Optional Value | Default |
---|---|---|
enum | on , off | off |
说明
允许 EMQ X 在投递消息时,强制升级消息的 QoS 等级为订阅的 QoS 等级。
zone.external.max_inflight
Type | Default |
---|---|
integer | 32 |
说明
飞行窗口大小。飞行窗口用于存储未被应答的 QoS 1 和 QoS 2 消息。
zone.external.retry_interval
Type | Default |
---|---|
duration | 30s |
说明
消息重发间隔。EMQ X 在每个间隔检查是否需要进行消息重发。
zone.external.max_awaiting_rel
Type | Default |
---|---|
integer | 100 |
说明
QoS 2 消息的最大接收窗口,配置 EMQ X 能够同时处理多少从客户端发来的 QoS 2 消息。0
表示不限制。
zone.external.await_rel_timeout
Type | Default |
---|---|
duration | 300s |
说明
QoS 2 消息处理超时时间,在超时后若还未收到 QoS 的 PUBREL 报文,则将消息从接收窗口中丢弃。
zone.external.session_expiry_interval
Type | Default |
---|---|
duration | 2h |
说明
会话默认超时时间,主要用于 MQTT v3.1 和 v3.1.1 协议。在 MQTT v5.0 中,该值通常会携带在客户端的连接报文中。
zone.external.max_mqueue_len
Type | Default |
---|---|
integer | 1000 |
说明
消息队列最大长度。当飞行窗口满,或客户端离线后,消息会被存储至该队列中。0 表示不限制。
zone.external.mqueue_priorities
Type | Optional Value | Default |
---|---|---|
string | none , <Spec> | none |
说明
队列消息优先级配置:
none
:表示无优先级区分。<Spec>
:表示为一个消息优先表,它配置了某主题下消息的优先级。例如:topic/1=10
:表示主题topic/1
的消息优先级为10
。topic/1=10,topic/2=8
:表示配置了两个主题的优先级,其分别为10
和8
。- 其中,优先级数值越高,优先等级越高。
当消息队列长度有限时,会优先丢弃低优先级的消息。
zone.external.mqueue_default_priority
Type | Optional Value | Default |
---|---|---|
enum | highest , lowest | highest |
说明
消息默认的优先等级。
zone.external.mqueue_store_qos0
Type | Optional Value | Default |
---|---|---|
enum | true , false | true |
说明
消息队列是否存储 QoS 0 消息。
zone.external.enable_flapping_detect
Type | Optional Value | Default |
---|---|---|
enum | on , off | off |
说明
是否开启 Flapping
检查。
zone.external.mountpoint
Type | Default |
---|---|
string | - |
说明
主题挂载点。配置后,所有订阅和发布的主题在 EMQ X 都会为其增加一个前缀。
其中可用的占位符有:
%c
:表示客户端的 Client ID。%u
:表示客户端的 Username。
例如,配置挂载点为 user/%c/
。那么 Client ID 为 tom
的客户端在发布主题 open
消息时,实际在 EMQ X 中路由的主题是 user/tom/open
。
zone.external.use_username_as_clientid
Type | Optional Value | Default |
---|---|---|
enum | true , false | false |
说明
是否用客户端的 Username 作为其 Client ID。
zone.external.ignore_loop_deliver
Type | Optional Value | Default |
---|---|---|
enum | true , false | false |
说明
是否忽略自己发送的消息。如果忽略,则表明 EMQ X 不会向消息的发送端投递此消息。
zone.external.strict_mode
Type | Optional Value | Default |
---|---|---|
enum | true , false | false |
说明
是否开启严格检查模式。严格检查模式会更细致的检查 MQTT 报文的正确性。