Biztalk – как настроить балансировку нагрузки и высокую доступность MSMQ?

StackOverflow https://stackoverflow.com/questions/2725041

Вопрос

Насколько я понимаю, чтобы добиться балансировки нагрузки MSMQ, необходимо использовать такую ​​технологию, как NLB.

А чтобы добиться высокой доступности MSMQ, необходимо кластеризовать связанный хост Biztalk (и, следовательно, базовые серверы сами должны находиться в кластере).

Однако, согласно документации Microsoft, технологии NLB и FailOver Clustering несовместимы.См. эту ссылку для справки: http://support.microsoft.com/kb/235305

Может ли кто-нибудь объяснить мне, ПОЖАЛУЙСТА, как можно достичь балансировки нагрузки и высокой доступности MSMQ?

заранее спасибо,

М

Это было полезно?

Решение

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

Я не верю, что в BizTalk возможно добиться одновременно балансировки нагрузки и высокой доступности. транзакционный сценарий.Ознакомьтесь с разделом «Рекомендации по переходу с MSMQ/T на адаптер MSMQ в BizTalk 2006» на следующем сайте. http://blogs.msdn.com/eldarm/

Подводя итог этому посту, можно выделить несколько сценариев:

Высокая доступность (нетранзакционная)

У вас просто есть MSMQ на нескольких серверах BizTalk за NLB.

Высокая доступность (транзакционная)

Для этого вам необходим кластеризованный хост MSMQ, а это означает, что вы не можете выполнять какую-либо балансировку нагрузки в одной очереди.

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

Ключевым моментом является понимание причин, по которым вам нужно транзакционное кластерное поведение — это необходимо для упорядоченной доставки и предотвращения дублирования.


В общем, я бы не стал беспокоиться о балансировке нагрузки MSMQ — BizTalk сам балансирует нагрузку, как только сообщения достигают базы данных MessageBox.Хотя это правда, что вы увидите асимметричную нагрузку из-за обработки очереди, происходящей на одном компьютере, в общем контексте вашей среды BizTalk это не должно иметь существенного значения.

Опять же, стоит помнить, что вы кластеризуете MSMQ по причинам, выходящим за рамки простой обеспечения высокой доступности:

Обработчик приема адаптера MSMQ - MSMQ не поддерживает удаленный транзакционные считывания;только местные транзакционные чтения поддерживаются.В Адаптер MSMQ получает обработчик должен быть запущен в экземпляре хоста, который является локальным для кластеризованный сервис MSMQ для полное локальное чтение транзакций с адаптером MSMQ.

Это было из следующего MSDN страница.

Я надеюсь, что этот отредактированный ответ поможет - я не думаю, что это было то, что вам нужно, возможно, я ошибаюсь, и вы найдете работоспособное решение для NLB и транзакционного MSMQ, но чем больше я об этом думаю, тем больше кажется, что эти два сценария несовместимы.

Последняя мысль заключается в том, что вы могли бы попробовать опубликовать аналогичный вопрос на сервере Server Fault — вы получите несколько разработчиков BizTalk на Stack Overflow, включая как минимум двух MVP, но, по крайней мере, там, где я работаю, я бы передал именно такой вопрос. моей сетевой команде.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top