EMQ X 可以从连接、发布层面进行速率限制,避免因客户端频繁上下线、单个客户端无限制发布消息造成服务器波动。

    打开配置文件

    字节流限制

    • rate: 每秒连接速率;
    • listener.tcp.external.rate_limit = 1024,4096 :配置 external 域下 TCP 连接速率;

    • listener.tcp.internal.rate_limit = 1000000,2000000 :配置 internal 域下 TCP 连接速率;
    • listener.ssl.external.rate_limit = 1024,4096 :配置 external 域下 TCP SSL/TLS 连接速率;
    • listener.ws.external.rate_limit = 1024,4096 :配置 域下 WebSocket 连接速率;
    • listener.wss.external.rate_limit = 1024,4096 :配置 external 域下 WebSocket SSL/TLS 连接速率。

    连接速率限制

    • listener.tcp.internal.max_conn_rate = 1000 : 配置 internal 域下 TCP 连接速率;
    • listener.ssl.external.max_conn_rate = 500 : 配置 external 域下 TCP SSL/TLS 连接速率;
    • : 配置 external 域下 WebSocket 连接速率;
    • listener.wss.external.max_conn_rate = 1000 : 配置 external 域下 WebSocket SSL/TLS 连接速率。

    PUB 速率限制

    打开配置文件 etc/emqx.conf

    配置项为 rate,timerange 组合,时间范围支持s,m,h

    • zone.external.publish_limit = 10,1m :配置 external 域下每个客户端 PUB 速率限制。