# Rate limit
EMQX allows for specifying limits on connection speed and messaging speed, using a backpressure scheme that avoids system overload at the entry point and guarantees system stability with predictable throughput.
# Limiter Types
EMQX uses the following types of limiters to specify the rate limits:
Type | Description | Post-Overload Behavior |
---|---|---|
bytes_rate | Incoming message size in bytes per second per client | Pause receiving client messages |
messages_rate | Incoming messages per second per client | Pause receiving client messages |
max_conn_rate | Connections per second per listener | Pause receiving new connections |
Limiter can work on the listener level. For example, to set a Limiter for the default TCP listener, You can configure it in emqx.conf as follows:
listeners.tcp.default {
bind = "0.0.0.0:1883"
max_conn_rate = "1000/s"
messages_rate = "1000/s"
bytes_rate = "1000MB/s"
}
1
2
3
4
5
6
2
3
4
5
6
# Rate Unit
# Time Unit
The supported time unit in the rate value could be:
- s :: Second
- m :: Minute
- h :: Hour
- d :: Day
The time unit also can be an interval value, like 1000/10s
means setting the limit to 1000 per every 10 seconds.
# Size Unit
The supported size unit in the rate value could be:
- KB :: Kilobyte
- MB :: Megabyte
- GB :: Gigabyte
What’s on this page