Biztalk - как настроить балансировку нагрузки MSMQ и высокую доступность? - PullRequest
1 голос
/ 28 апреля 2010

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

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

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

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

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

M

1 Ответ

2 голосов
/ 28 апреля 2010

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

Я не верю, что в сценарии 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, но чем больше я об этом думаю, тем больше кажется, что эти два сценария несовместимы.

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

...