MQTT/TCP 监听器 - 1883
EMQ X 版本支持配置多个 MQTT 协议监听器,例如配置名为 external、internal 两个监听器:
TCP 监听器:
listener.tcp.external = 0.0.0.0:1883
接收池大小:
listener.tcp.external.acceptors = 8
最大并发连接数:
listener.tcp.external.max_connections = 1024000
每秒最大创建连接数:
listener.tcp.external.max_conn_rate = 1000
监听器使用的 Zone:
listener.tcp.external.zone = external
挂载点:
## listener.tcp.external.mountpoint = devicebound/
TCP 数据接收速率限制:
## listener.tcp.external.rate_limit = 1024,4096
访问控制规则:
## listener.tcp.external.access.1 = allow 192.168.0.0/24
listener.tcp.external.access.1 = allow all
EMQ X 集群部署在 HAProxy 或 Nginx 时,是否启用代理协议 V1/2:
## listener.tcp.external.proxy_protocol = on
代理协议的超时时间:
## listener.tcp.external.proxy_protocol_timeout = 3s
启用基于 X.509 证书的身份验证选项。EMQ X 将使用证书的公共名称作为 MQTT 用户名:
## listener.tcp.external.peer_cert_as_username = cn
挂起连接的队列的最大长度:
listener.tcp.external.backlog = 1024
TCP 发送超时时间:
listener.tcp.external.send_timeout = 15s
发送超时时是否关闭 TCP 连接:
listener.tcp.external.send_timeout_close = on
用于 MQTT 连接的 TCP 接收缓冲区(os 内核):
#listener.tcp.external.recbuf = 2KB
用于 MQTT 连接的 TCP 发送缓冲区(os 内核):
#listener.tcp.external.sndbuf = 2KB
驱动程序使用的用户级软件缓冲区的大小,不要与选项 sndbuf 和 recbuf 混淆, 它们对应于内核套接字缓冲区。建议使用 val(buffer) >= max(val(sndbuf),val(recbuf)) 来避免不必要的复制带来的性能问题。当设置 sndbuf 或 recbuf 值时,val(buffer) 自动设置为上述最大值:
#listener.tcp.external.buffer = 2KB
是否设置 buffer = max(sndbuf, recbuf):
## listener.tcp.external.tune_buffer = off
是否设置 TCP_NODELAY 标志。如果启用该选项,发送缓冲区一旦有数据就会尝试发送:
listener.tcp.external.nodelay = true
是否设置 SO_REUSEADDR 标志:
listener.tcp.external.reuseaddr = true