Replies: 8 comments 22 replies
-
Would something akin to the single active consumer feature found in other
RabbitMQ queue types work for you if it was available for streams?
On Fri, 13 Aug 2021 at 09:50, WeirdBob ***@***.***> wrote:
Hi team,
First of all, congrats for this new version, streams looks very promising
and we look forward to tear down our kafka cluster and use only rabbitmq
for all our messaging needs.
One key feature which will prevent us from going to production with this
version is the lack of a minimal implementation of consumer groups, ie
being able to declare multiple consumers as a group and having rabbitmq
decide which one should consume (active/passive election) for high
availability purposes. I would guess your raft implemetation would be a
great way to solve this!
The sister feature would then be partitioning to allow multiple consumers
to share the work on a stream while keeping the natural ordering of
messages. This can be worked around by creating multiple streams and their
associated consumers, even if it's not as transparent as having it natively
supported by the cluster.
Again, thanks for everything, Rabbitmq has been my go-to message broker
for the last decade, and streams are a very nice addition to its already
rich list of features.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#3306>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJAHFDYOT23SAHJWWGOWSLT4TME7ANCNFSM5CDE7CLQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email>
.
--
*Karl Nilsson*
|
Beta Was this translation helpful? Give feedback.
-
Both classic and quorum queues support single active consumers and we are
considering the same for streams.
https://www.rabbitmq.com/consumers.html#single-active-consumer
On Fri, 13 Aug 2021 at 10:16, WeirdBob ***@***.***> wrote:
Hi Karl,
If by "single active consumer" you mean one consumer is active and if it
dies another one takes its place, yes, it would be sufficient for me. I
don't recall having this feature in the classic queues, it's not the same
as priority consumers where it's hard to ensure the messages are processed
in the right order.
I assume some other would appreciate the higher throughput of partitioning
but I don't think I'll need it soon (we only process a few million messages
a day, so we don't stress the clusters)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#3306 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJAHFHRZNWIUKKE4X4F6QTT4TPFPANCNFSM5CDE7CLQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email>
.
--
*Karl Nilsson*
|
Beta Was this translation helpful? Give feedback.
-
We could consider multiple single active consumers over a single stream
yes. We don’t have a fixed design yet.
On Fri, 13 Aug 2021 at 15:18, WeirdBob ***@***.***> wrote:
For streams, the single active consumer would still be "single in a given
group" but multiple active consumers from different groups?
The use case is a classic event sourcing one, where we have multiple type
of consumers doing different things at the same time on a given stream, but
for a specific type of consumer only one instance would be active.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#3306 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJAHFG5EE537PTWCM5VNYTT4USUHANCNFSM5CDE7CLQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email>
.
--
*Karl Nilsson*
|
Beta Was this translation helpful? Give feedback.
-
We are excited about Streams as well, but currently the lack of partitions and consumer groups is a blocker for us.
|
Beta Was this translation helpful? Give feedback.
-
One more note. Practically, I find Stream useful:
I am not expecting a commitment on the roadmap, but are there any current concrete plans to improve this scenario? |
Beta Was this translation helpful? Give feedback.
-
In the use case where messaging ordering does not matter, the single active + superstream features pose some limitations to the ability to scale up processing. What are the options here? any guidance would be of help :) Suppose your consumers are k8s containers and they all do the same annoying processing and that ordering of messages is not important. Ideally, by auto-scaling consumers with the same id, you would increase the parallel throughput in case of processing that requires long times. Achieving this with single active + superstream features somehow imposes to predefine the maximum number of parallel processors as the number of partitions of the super stream. Thx! |
Beta Was this translation helpful? Give feedback.
-
"it is important to understand that, in AMQP 0-9-1, messages are load balanced between consumers." |
Beta Was this translation helpful? Give feedback.
-
https://pulsar.apache.org/docs/3.2.x/concepts-messaging/#subscriptions, |
Beta Was this translation helpful? Give feedback.
-
Hi team,
First of all, congrats for this new version, streams looks very promising and we look forward to tear down our kafka cluster and use only rabbitmq for all our messaging needs.
One key feature which will prevent us from going to production with this version is the lack of a minimal implementation of consumer groups, ie being able to declare multiple consumers as a group and having rabbitmq decide which one should consume (active/passive election) for high availability purposes. I would guess your raft implemetation would be a great way to solve this!
The sister feature would then be partitioning to allow multiple consumers to share the work on a stream while keeping the natural ordering of messages. This can be worked around by creating multiple streams and their associated consumers, even if it's not as transparent as having it natively supported by the cluster.
Again, thanks for everything, Rabbitmq has been my go-to message broker for the last decade, and streams are a very nice addition to its already rich list of features.
Beta Was this translation helpful? Give feedback.
All reactions