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!