tcpexternal

tcpexternal

listener.tcp.external

Type Default
string 0.0.0.0:1883
说明

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

示例

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

listener.tcp.external.acceptors

Type Default
integer 8
说明

监听器的接收池大小。

listener.tcp.external.max_connections

Type Default
integer 1024000
说明

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

listener.tcp.external.max_conn_rate

Type Default
integer 1000
说明

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

listener.tcp.external.active_n

Type Default
integer 100
说明

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

listener.tcp.external.zone

Type Default
string external
说明

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

listener.tcp.external.rate_limit

Type Default
string -
说明

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

示例

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

listener.tcp.external.access.1

Type Default
string allow all
说明

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

示例

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

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

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

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

listener.tcp.external.proxy_protocol

Type Optional Value Default
enum on, off -
说明

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

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

Proxy Protcol 参考: <https://www.haproxy.com/blog/haproxy/proxy-protocol>。

listener.tcp.external.proxy_protocol_timeout

Type Default
duration -
说明

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

listener.tcp.external.backlog

Type Default
integer 1024
说明

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

listener.tcp.external.send_timeout

Type Default
duration 15s
说明

TCP 报文发送超时时间。

listener.tcp.external.send_timeout_close

Type Optional Value Default
enum on, off on
说明

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

listener.tcp.external.recbuf

Type Default
bytesize -
说明

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

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

listener.tcp.external.sndbuf

Type Default
bytesize -
说明

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

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

listener.tcp.external.buffer

Type Default
bytesize -
说明

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

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

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

listener.tcp.external.tune_buffer

Type Optional Value Default
enum on, off -
说明

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

listener.tcp.external.nodelay

Type Optional Value Default
enum true, false true
说明

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

listener.tcp.external.reuseaddr

Type Optional Value Default
enum true, false true
说明

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