Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a mechanism for completely disabling AMQP 0-9-1 polling consumers (basic.get) #13098

Open
michaelklishin opened this issue Jan 17, 2025 · 0 comments
Assignees
Milestone

Comments

@michaelklishin
Copy link
Member

Is your feature request related to a problem? Please describe.

Polling consumers can waste a non-trivial amount of resources because, well, that's typical of polling.

Describe the solution you'd like

We could use the deprecated feature mechanism but the goal is not so much to deprecate polling consumers
but to disable them entirely.

I would need to take a look at how the similar features are grouped in rabbitmq.conf (since feature flags in RabbitMQ are an upgrade/mixed version cluster safety mechanism, not a way to disable features)
but it should be done node-wide.

Clients would get a channel or even a connection error (which are considered unrecoverable in the protocol) if a basic.get frame is received and this feature is disabled.

A small efficiency hit to basic.get is acceptable because basic.get and polling are fundamentally not efficient to begin with, plus we can store this state in a persistent term or even AMQP 0-9-1 channel state.

Describe alternatives you've considered

We have had metrics for polling consumers for a while but many application developers do not pay any attention to them or simply don't have access to the metrics.

Additional context

No response

@michaelklishin michaelklishin self-assigned this Jan 17, 2025
@michaelklishin michaelklishin added this to the 4.1.0 milestone Jan 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant