Skip to content

速率限制

EMQX 提供对接入速度、消息速度的限制,从入口处避免了系统过载,保证了系统的稳定和可预测的吞吐。

限制器类型

EMQX 使用以下几种类型的限制器来限制速率:

类型描述过载后行为
bytes_rate单个客户端每秒发布的消息的字节数大小暂停接收客户端消息
messages_rate单个客户端每秒发布的消息条数暂停接收客户端消息
max_conn_rate当前监听器每秒的连接数暂停接收新的连接

限制器可以在监听器级别上工作,您可以在 Dashboard 的管理 -> 监听器页面中,为每个监听器设置速率限制。

也可以通过配置文件设置,例如,要为默认的 TCP 监听器设置限制器,可以在 emqx.conf 中按以下进行配置:

bash
listeners.tcp.default {
  bind = "0.0.0.0:1883"
  max_conn_rate = "1000/s"
  messages_rate = "1000/s"
  bytes_rate = "1MB/s"
}

该配置表示:

  • 监听器上连接建立最大速率为每秒 1000 个
  • 消息的最大发布速率为每个客户端每秒 1000 条
  • 数据的最大发布速率为每个客户端每秒 1MB

单位

时间单位

速率值中支持的时间单位可以是:

  • s: 秒
  • m: 分钟
  • h: 小时
  • d: 天

时间单位也可以是一个间隔值,例如 1000/10s 表示将限制设置为每 10 秒 1000。

尺寸单位

速率值中支持的字节数大小单位可以是:

  • KB: 千字节
  • MB: 兆字节
  • GB: 吉字节