2009-04-01 7 views
5

Кто-нибудь использовал функцию группировки сообщений в ActiveMQ?Производительность группировки сообщений ActiveMQ

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

Это будет действительно полезная функция для проекта, я работаю, но мне интересно, насколько хорошо эта функция весы и выполняет. В нашей системе нам нужно было бы группировать сообщения в группы из 3-5 сообщений, поэтому мы будем постоянно добавлять группы в процессе. В этом случае кажется, что в конечном итоге у нас просто закончилась память, пытаясь сохранить все группы.

Меня интересуют любые впечатления/мысли/плюсы/минусы.

ответ

7

Я использовал группы сообщений во многих проектах, и он отлично работает. Хотя для полного раскрытия я был одним из людей, которые нажимали на группы сообщений и выполняли большую часть первоначальной работы по внедрению.

Вариант использования групп сообщений получен из раздела больших иерархий тем; таких как работа с финансовыми символами акций и т. п. Мы хотели, чтобы группы сообщений могли использовать очень мелкозернистые корреляционные выражения (строки JMSXGroupID), чтобы вы могли использовать дату, символ запаса и тип продукта в качестве идентификатора группы - или идентификатор клиента или бизнес-транзакции или что-то еще.

Чтобы избежать необходимости хранить каждую строку идентификатора группы в памяти, поставщик по умолчанию использует хэш-ведра - поэтому мы сохраняем только отображение хэш-кодов для потребителей, а не отдельных строк. Таким образом, он масштабируется до количества идентификаторов групп, которые вы хотите использовать! Это также означает, что нам не нужно «очищать» старые идентификаторы групп сообщений и т. Д.

+2

Предположим, что 'JMSXGroupID' равен некоторому нету, т.е. 3345. Тогда все сообщения с' JMSXGroupID' = 3345 перейдут к тому же потребитель. Но предположим, что я динамически добавляю нового потребителя, чем то, как activeMq обеспечивает отправку сообщения 3345 одному и тому же старому пользователю (поскольку вы говорите ему, хранит хэш идентификатора). Благодарю. – Trying

+0

Я не совсем понимаю, почему использование хэша для замены каждой строки GroupID было бы эффективным? Значение хэша очень мало? Но что, если у меня есть миллион новых GroupIDs каждый день? – flycee

Смежные вопросы