Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ActiveMQ message grouping performance

Has anyone used the Message Grouping feature in ActiveMQ?

http://activemq.apache.org/message-groups.html

This would be a really useful feature for a project I'm working on, but I'm curious how well this feature scales and performs. In our system, we would need to group messages into groups of about 3-5 messages, so we would be continuously adding groups as the process runs. In this case, it seems like we'd eventually just run out of memory trying to store all the groups.

I'm interested in any experiences/thoughts/pros/cons.

like image 927
Andy White Avatar asked Apr 01 '09 01:04

Andy White


People also ask

What is message grouping?

Group Messaging is characterized by an SMS conversation among 3 or more recipients at the same time. This is a many-to-many exchange of messages. Group messaging is typically sent as MMS messages.

Does ActiveMQ support clustering?

By having multiple cluster connections on different addresses a single Apache ActiveMQ Artemis Server can effectively take part in multiple clusters simultaneously.

Is ActiveMQ synchronous or asynchronous?

Apache ActiveMQ Artemis is an asynchronous messaging system, an example of Message Oriented Middleware , we'll just call them messaging systems in the remainder of this book.


Video Answer


1 Answers

I've used Message Groups on many projects and it works great. Though for full disclosure I was one of the folks pushing for Message Groups and did much of the initial implementation work.

The use case of Message Groups came from partitioning large topic hierarchies; such as dealing with financial stock symbols and the like. We wanted message groups to be able to use very fine grained correlation expressions (JMSXGroupID strings) - so you could use the date, stock symbol and product type as groupID - or the customer or business transaction ID or whatever.

To avoid having to keep every group ID string in memory, the default provider uses hash buckets - so we only store the mapping of hash buckets to consumers - not the individual strings. So it scales to as many group IDs as you want to use! It also means we don't have to 'clean' the old message group IDs out etc

like image 97
James Strachan Avatar answered Sep 24 '22 00:09

James Strachan