Я работаю с кем-то, кто пытается добиться балансировки нагрузки, используя очереди JMS с IBM Websphere MQ. Таким образом, у них есть несколько потребителей Camel JMS, настроенных на чтение из одной и той же очереди. Несмотря на то, что это поведение не определено в соответствии со спецификацией JMS (во всяком случае, в прошлый раз, когда я смотрел), они ожидают своего рода поведение циклического перебора/балансировки нагрузки. И хотя спецификация оставляет это неопределенным, я пришел к выводу, что нормальное поведение Websphere MQ заключается в доставке сообщения только одному из потребителей, и что он может выполнять некоторую нагрузку -балансировка. См. здесь, например: MessageConsumer подключается к той же очереди (Websphere MQ), как сбалансировать нагрузку между потребителем сообщений?
Но в данном конкретном случае оказывается, что оба получателя получают одно и то же сообщение.
Может ли кто-нибудь, кто больше разбирается в Websphere MQ, пролить свет на это? Есть ли ситуации, когда такое поведение ожидается? Есть ли какие-либо изменения конфигурации, которые могут облегчить это?
Я склоняюсь к тому, чтобы посоветовать всем присутствующим использовать нативное средство кластеризации Websphere MQ и отказаться от того, чтобы несколько потребителей указывали на одну и ту же очередь, но для них это будет большим изменением, поэтому я хотел бы найти способ сделать так, чтобы эта работа.
Не то чтобы я был сторонником полагаться на что-то неопределенное, но если они готовы полагаться на конкретное поведение IBM, я оставлю это на их усмотрение.