tcpexternal

listener.tcp.external

TypeDefault
string0.0.0.0:1883
说明

配置名称为 external 的 MQTT/TCP 监听器的监听地址。

示例

1883:表监听 IPv4 的 0.0.0.0:1883127.0.0.1:1883:表监听地址为 127.0.0.1 网卡上的 1883 端口。 ::1:1883:表监听 IPv6 地址为 ::1 网卡上的 1883 端口。

listener.tcp.external.acceptors

TypeDefault
integer8
说明

监听器的接收池大小。

listener.tcp.external.max_connections

TypeDefault
integer1024000
说明

监听器允许的最大并发连接数量。

listener.tcp.external.max_conn_rate

TypeDefault
integer1000
说明

监听器允许的最大接入速率。单位:个/秒

listener.tcp.external.active_n

TypeDefault
integer100
说明

监听器持续接收 TCP 报文的次数。

listener.tcp.external.zone

TypeDefault
stringexternal
说明

监听器所属的配置域 (Zone)。

listener.tcp.external.rate_limit

TypeDefault
string-
说明

监听器的速率限制。格式为 <limit>,<duration>

示例

100KB,10s:表 限制 10 秒内的流入字节数不超过 100 KB

listener.tcp.external.access.1

TypeDefault
stringallow all
说明

监听器的 ACL 规则列表。它用于设置连接层的白/黑名单。

示例

allow all:表允许所有的 TCP 连接接入。 allow 192.168.0.0/24:表允许网络地址为 192.168.0.0/24 的 TCP 连接接入。

同时,该配置可配置多条规则:

  1. listener.tcp.external.access.1 = deny 192.168.0.1
  2. listener.tcp.external.access.2 = allow all

它表示,除 192.168.0.1 外的 TCP 连接都允许接入。

listener.tcp.external.proxy_protocol

TypeOptional ValueDefault
enumon, off-
说明

监听器是否开启 Proxy Protocol 的支持。

如果 EMQ X 集群部署在 HAProxy 或 Nginx 后,且需要拿到客户端真实的源 IP 地址与端口,则需打开此配置。

Proxy Protcol 参考: https://www.haproxy.com/blog/haproxy/proxy-protocoltcpexternal - 图1 (opens new window)

listener.tcp.external.proxy_protocol_timeout

TypeDefault
duration-
说明

设置 Proxy Protocol 解析的超时时间。如果该时间内没收到 Proxy Protocol 的报文,EMQ X 会关闭其连接。

listener.tcp.external.backlog

TypeDefault
integer1024
说明

TCP 连接队列的最大长度。它表明了系统中允许的正在三次握手的 TCP 连接队列最大个数。

listener.tcp.external.send_timeout

TypeDefault
duration15s
说明

TCP 报文发送超时时间。

listener.tcp.external.send_timeout_close

TypeOptional ValueDefault
enumon, offon
说明

TCP 报文发送超时后,是否关闭该连接。

listener.tcp.external.recbuf

TypeDefault
bytesize-
说明

TCP 接收缓存区大小(操作系统内核级参数)

参见:http://erlang.org/doc/man/inet.html

listener.tcp.external.sndbuf

TypeDefault
bytesize-
说明

TCP 发送缓存区大小(操作系统内核级参数)。

参见:http://erlang.org/doc/man/inet.htmltcpexternal - 图2 (opens new window)

listener.tcp.external.buffer

TypeDefault
bytesize-
说明

TCP 缓冲区大小 (用户级)。

该值建议大于等于 sndbuffrecbuff 的最大值,以避免一些性能问题。在不配置的情况下,它默认等于 sndbuff 和 recbuff 的最大值。

参见:http://erlang.org/doc/man/inet.htmltcpexternal - 图3 (opens new window)

listener.tcp.external.tune_buffer

TypeOptional ValueDefault
enumon, off-
说明

如果打开此配置,请设置该值等于 sndbuffrecbuff 的最大值。

listener.tcp.external.nodelay

TypeOptional ValueDefault
enumtrue, falsetrue
说明

TCP_NODELAY 参数。开启该选项即允许小的 TCP 数据报文将会立即发送。

listener.tcp.external.reuseaddr

TypeOptional ValueDefault
enumtrue, falsetrue
说明

SO_REUSEADDR 参数。开启该选项即允许本地重用端口,无需等待 TIME_WAIT 状态结束。