You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The VMware, Inc. part of the core team proposes reviewing our limits to eventually (likely before 4.4.0) converge on the following limits design/structure/separation:
Per-user and per-virtual host apply to all protocols
{plugin}.connection_max covers each plugin protocol, including their Protocol-over-WebSockets variants, so mqtt.connections_max will cover both MQTT and MQTT-over-WebSockets
Note that most of this design is already in place but given the number of limits and protocols RabbitMQ supports, we need to review that nothing is missing, in particular for the per-user and per-virtual host limits.
HTTP API
If we put the WebSockets-based protocols aside, the HTTP API is not really covered by the above limits and given the request-oriented nature of HTTP (even with persistent connections, even with HTTP/2, HTTP/3), the protective measure here is a Ranch-level connection limit introduced in #7753, #7593.
Tanzu RabbitMQ Protocols
connections_max should cover AMQP 1.0-over-Websockets since its a WebSocket variant of the core protocols.
Remaining Items as a TODO List
Rename stream.connection_max to stream.max_connections (MK)
For naming consistency, we should rename stream.connection_max to stream.max_connections (to match Web STOMP, Web MQTT that have already shipped) and if we want, bump Cuttlefish and adopt this key aliasing feature that was introduced specifically for basckwards-compatible renaming, deprecations.
We can support both {plugin}.max_connections and {plugin}.connection_max, and even alias the core connection_max as max_connections for consistency.
@the-mikedavis would you have some cycles to begin working on the TODO items on the list above?
We can start with a new Cuttlefish release (3.7.0), then Cuttlefish bump in RabbitMQ (with backports to v4.2.x), renaming of stream.connection_max with aliasing, and then the gaps, per-protocol limits.
Activity
michaelklishin commentedon May 8, 2026
I did a review of what's left to be done in this area.
What Does not Match the Plan
mqtt.connections_max(which is expected, we have barely started on the per-protocol limits)stomp.connections_max(ditto)streamuseconnection_max,stream.connection_maxbut Web MQTT, Web STOMP use{plugin}.max_connections*.max_connectionsequivalentRanch knob.
What is Already Covered
Related Limits (for Completeness' Sake)
default_limits.vhosts.$id.max_queuescovers queue counts per virtual hostmichaelklishin commentedon May 8, 2026
For naming consistency, we should rename
stream.connection_maxtostream.max_connections(to match Web STOMP, Web MQTT that have already shipped) and if we want, bump Cuttlefish and adopt this key aliasing feature that was introduced specifically for basckwards-compatible renaming, deprecations.We can support both
{plugin}.max_connectionsand{plugin}.connection_max, and even alias the coreconnection_maxasmax_connectionsfor consistency.michaelklishin commentedon May 8, 2026
@the-mikedavis would you have some cycles to begin working on the TODO items on the list above?
We can start with a new Cuttlefish release (
3.7.0), then Cuttlefish bump in RabbitMQ (with backports tov4.2.x), renaming ofstream.connection_maxwith aliasing, and then the gaps, per-protocol limits.10 remaining items
Merge pull request #16367 from rabbitmq/feature/gh-16347-mqtt-connect…
Introduce Ranch-based `management.*.max_connections` and `prometheus.…
michaelklishin commentedon May 13, 2026
@the-mikedavis let me know if this roughly matches what you had in mind w.r.t. per-protocol limits.
Rename `connection_max` to `max_connections` with a backwards compat …
Rename `channel_max` to `max_channels` with a backwards compat alias r…
Update `rabbitmq.conf.example` to use new limit names and mention bac…
Rename `connection_max` to `max_connections` with a backwards compat …
Rename `channel_max` to `max_channels` with a backwards compat alias #…
Update `rabbitmq.conf.example` to use new limit names and mention bac…
the-mikedavis commentedon May 19, 2026
This looks great, thank you @michaelklishin & @lukebakken !
(Sorry for the late reply, been busy 😅)
Follow-up to rabbitmq#16341: rename `stream.connection_max` to `strea…
Introduce Ranch-based `management.*.max_connections` and `prometheus.…