速率限制

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

限制器类型

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

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

限制器可以在监听器级别上工作。例如,要为默认的TCP监听器设置限制器,可以在 emqx.conf 中按以下进行配置:

  1. listeners.tcp.default {
  2. bind = "0.0.0.0:1883"
  3. max_conn_rate = "1000/s"
  4. messages_rate = "1000/s"
  5. bytes_rate = "1000MB/s"
  6. }

单位

时间单位

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

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

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

尺寸单位

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

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