Мы используем ActiveMQ в нашем проекте, у нас есть требование, чтобы группа сообщений, принадлежащая одной группе, использовалась одним потоком потребителя.
Например, у нас есть 3 (M1, M2, M3) сообщения, которые принадлежат человеку A, и 3 (M4, M5, M6) сообщения, которые принадлежат человеку B.
Наше требование: все сообщения, принадлежащие человеку A, должны потребляться потоком-потребителем 1, а все сообщения, принадлежащие человеку B, должны потребляться потоком-потребителем 2.
Основываясь на документации ActiveMQ и насколько мы понимаем, мы использовали концепцию JMXGroupId в ActiveMQ. Например, мы установили JMSXGroupId
как 123
для всех сообщений (M1, M2, M3), принадлежащих лицу A, и 234
для всех сообщений (M4, M5, M6), принадлежащих лицу B.
С JMXGroupId
в некоторых случаях все сообщения, принадлежащие лицам A и B (M1, M2, M3, M4, M5 и M6), отправляются в один и тот же поток потребителя 1. Но в нашем требовании они должны отправляться в два разных потока.