2013-05-28 2 views
1

У меня есть подписчик темы Tibco EMS, который мне нужен для загрузки баланса между разными экземплярами. Каждое опубликованное сообщение в теме должно быть получено одним (и только одним) экземпляром каждой группы баланса нагрузки абонента.Балансировка нагрузки Tibco Пользователи темы темы EMS

Простое использование глобальных тем и сбалансированных соединений EMS (tcp://localhost:7222|tcp://localhost:7224) приводит к тому же сообщению, полученному всеми экземплярами каждой группы баланса нагрузки абонента, создавая дубликаты.

Вы знаете какую-либо альтернативу для подписчиков темы балансировки нагрузки?

+1

вы можете использовать эксклюзивную недвижимость –

ответ

1

Вы можете:

А) Мост тему в очередь и перенастроить абонентов читать из очереди. Очереди ведут себя по-разному к тем, поскольку сообщение получается только одним абонентом, а не всем.

B) Создайте несколько прочных подписчиков по теме с селекторами, которые делят сообщения между товарами длительного пользования. Например. Если сообщение имеет свойство «идентификатор», который последовательно увеличивается:

create durable topic DURABLENAME1 selector="(id - 2 * (id/2)) = 0" 
create durable topic DURABLENAME2 selector="(id - 2 * (id/2)) = 1" 

Селектор только по модулю, так половина сообщения будут проходить на одном долговечной, а половина на другой.

+0

Просто хотел убедиться, что я правильно понимаю для варианта А. Издатель (Queue) -> (Queue) Абонент (Тема) Издатель -> Подписчики (тема) это правильно ? – user1357019

1

С общей подпиской на EMS 8.0 добавлена ​​общая подписка, при этом только одна подписка получает сообщения с одинаковым названием подписки, которые проходят через руководство пользователя EMS, которое может вам помочь.

1

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

Использование очередей вместо pf-тем делает всю работу (балансировка по кругу).

+0

Существует несколько подписчиков (каждый с конфигурацией lb), которые должны получать одно и то же опубликованное сообщение – fglez

+0

Хорошо, если вы находитесь под TIBCO EMS 8, переведите тему в очередь для каждой группы абонентов и позвольте группе «round robin» on очередь. Если вы уже используете TIBCO EMS 8 (как указано ramyasree), вы можете рассмотреть возможность использования функций JMS 2.0 (общая подписка) – Seb

+0

Можем ли мы загрузить баланс издателя темы? – user1357019

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