- tcpexternal
- listener.tcp.external.acceptors
- listener.tcp.external.max_connections
- listener.tcp.external.max_conn_rate
- listener.tcp.external.active_n
- listener.tcp.external.zone
- listener.tcp.external.rate_limit
- listener.tcp.external.access.1
- listener.tcp.external.proxy_protocol
- listener.tcp.external.proxy_protocol_timeout
- listener.tcp.external.backlog
- listener.tcp.external.send_timeout
- listener.tcp.external.send_timeout_close
- listener.tcp.external.recbuf
- listener.tcp.external.sndbuf
- listener.tcp.external.buffer
- listener.tcp.external.tune_buffer
- listener.tcp.external.nodelay
- listener.tcp.external.reuseaddr
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
状态结束。