rabbitmq / rabbitmq-server

Open source RabbitMQ: core server and tier 1 (built-in) plugins
https://www.rabbitmq.com/
Other
12.16k stars 3.91k forks source link

Quorum Queues v4 #8261

Closed kjnilsson closed 1 month ago

kjnilsson commented 1 year ago

This is a prioritised list of required and optional features for the next version of quorum queues. Due to quorum queues' Raft internals it makes sense for us to bundle a set of features into a single change and this issue aims to capture and discuss the features for the next iteration.

Required:

Optional:

Implementation details

Fair/share priorities

Consumer timeouts

Single Active Consumer Priorities

The waiting consumers list should be sorted by consumer priority. When a consumer with a higher priority than the current active one attaches it would demote the current active one. This could provide a means for users to achieve better consumer app balances and avoid the all consumer on one app issue when using multiple queues with SAC.

Checkpoints

Consumer cancel option that immediately removes consumer and returns all pending messages.

ansd commented 1 year ago

One more feature:

chenchen300 commented 1 year ago

Priorities (at least two) from my POV are mandatory. We can't migrate our classic queues to quorum without priorities

kjnilsson commented 1 year ago

Please can you elaborate on your use case? Especially why you need priority queues rather than use by multiple queues. Also what kind of prefetch do your priority consumers use?

michaelklishin commented 1 year ago

Priorities (at least two) from my POV are mandatory. We can't migrate our classic queues to quorum without priorities

Yes, you usually can. By using multiple queues instead of just one with priorities.

This belongs to a discussion.