after playing around more with the JMSXGroupID values, and noticed that various 
values seem to send requests to various members of the cluster. as mentioned in 
my previous post, i was looking for some random approach where AMQ would 
distribute the processing of message groups among all cluster members the same 
way it does with non-sequential message. while this does not accomplish that, 
it is definitely better than having the master handling the full load of all 
message groups while the slave instances are just twiddling their thumbs.

what i would like to know now is whether there is a doc that explains this 
cluster-based behavior further. the only ones i have come across talk about the 
relationship between message groups and consumers. any help would be greatly 
appreciated. thanks!
________________________________
From: brock samson <brock.sams...@hotmail.com>
Sent: Friday, September 23, 2022 11:47 PM
To: users@activemq.apache.org <users@activemq.apache.org>
Subject: Re: sequential requests in a cluster

thank you for the reply, Matt!

interesting that you mentioned the sorting of the messages by queues, because 
that is exactly what i am doing. sorry, i should have been more clear in my 
initial post. each message sequence is grouped and then posted to its own 
single queue, and no sequence spans more than one queue at any time.

GroupSeq1 --> Queue1
GroupSeq2 --> Queue2
...
GroupSeqN --> QueueN

when i send async (non-sequential) messages to a queue with multiple consumers, 
all members of the cluster get in on the action, not just the master. so i 
hoped for the same behavior when sending in several message groups, yet only 
the master ends up processing all the groups.

thanks!
________________________________
From: Matt Pavlovich <mattr...@gmail.com>
Sent: Friday, September 23, 2022 5:12 PM
To: users@activemq.apache.org <users@activemq.apache.org>
Subject: Re: sequential requests in a cluster

Hello Brock,

A ’slave’ broker in the technical sense does not have active transport 
connectors, so clients are not able to process messages. The slave is used as a 
standby instance during a failure scenario for the master broker.

Perhaps you have a different setup? Keep in mind— maintaining message order 
across multiple brokers to end clients is virtual impossible to guarantee.

If you need strict message ordering AND distribution across multiple brokers 
(aka partitioning) you may want to considert performing some sort of filtering 
or sorting of the message groups into separate queues.

Thanks,
Matt Pavlovich

> On Sep 23, 2022, at 2:48 PM, brock samson <brock.sams...@hotmail.com> wrote:
>
> I am running AMQ 5.15.x in a master/slave cluster setup with several queues. 
> while some queues have multiple consumers, others have only a single consumer 
> since their messages must be processed in the exact order they arrived. using 
> the "exclusive consumer" feature works fine with respect to maintaining the 
> order. the problem with that approach is all sequential messages always being 
> processed by the master, while the slaves are sitting around doing nothing. 
> grouping messages into groups does not seem solve this for me, as all group 
> are also being sent to the master. so is there a way to spread the load among 
> all cluster members while maintaining the processing sequence. perhaps 
> "assigning" each message group to a different cluster member? thank you for 
> your time!

Reply via email to