速率限制
EMQX 提供对接入速度、消息速度的限制,从入口处避免了系统过载,保证了系统的稳定和可预测的吞吐。
限制器类型
EMQX 使用以下几种类型的限制器来限制速率:
类型 | 描述 | 过载后行为 |
---|---|---|
bytes_rate | 单个客户端每秒流入的消息的字节数大小 | 暂停接收客户端消息 |
messages_rate | 单个客户端每秒流入的消息条数 | 暂停接收客户端消息 |
max_conn_rate | 当前监听器每秒的连接数 | 暂停接收新的连接 |
限制器可以在监听器级别上工作。例如,要为默认的TCP监听器设置限制器,可以在 emqx.conf 中按以下进行配置:
listeners.tcp.default {
bind = "0.0.0.0:1883"
max_conn_rate = "1000/s"
messages_rate = "1000/s"
bytes_rate = "1000MB/s"
}
单位
时间单位
速率值中支持的时间单位可以是:
- s :: 秒
- m :: 分钟
- h :: 小时
- d :: 天
时间单位也可以是一个间隔值,例如 1000/10s
表示将限制设置为每 10 秒 1000。
尺寸单位
速率值中支持的字节数大小单位可以是:
- KB :: 千字节
- MB :: 兆字节
- GB :: 吉字节