Экземпляры Biztalk балансировки сетевой нагрузки - PullRequest
4 голосов
/ 23 декабря 2009

Какие есть хорошие статьи / ресурсы, чтобы понять, как балансировка нагрузки сконфигурирована с Biztalk - как с точки зрения присущих продукту возможностей, так и с помощью NLB (балансировка сетевой нагрузки в Windows 2003 или более поздних выпусках)?

РЕДАКТИРОВАТЬ: меня особенно интересует влияние протокола приложения на балансировку нагрузки? Например, как два экземпляра сервера Biztalk обрабатывают соединения TCP / IP, когда другая сторона (к которой Biztalk делает запрос соединения) не разрешает более одного соединения и т. Д.

1 Ответ

20 голосов
/ 24 декабря 2009

Очевидным ресурсом является MSDN. Существует раздел, озаглавленный Планирование высокой активности , который охватывает большинство концепций и даст вам правильную терминологию для поиска других ресурсов в Интернете. Как и во многих серверных продуктах Microsoft, в MSDN также есть множество технических документов, посвященных конкретным сценариям BizTalk.

В большинстве хороших книг по BizTalk также есть раздел, посвященный принципам балансировки нагрузки (например, в Professional BizTalk Server 2006).

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

Балансировка нагрузки

BizTalk Server по своей архитектуре является балансировкой нагрузки. Это означает, что если к базе данных MessageBox подключено более одного хоста BizTalk, сообщения в базе данных будут равномерно распределены по хостам, участвующим в группе BizTalk. (с оговорками относительно того, какие процессы BizTalk были настроены для запуска на каждом хосте).

Существует также концепция балансировки сетевой нагрузки, которая называется Microsoft Network Load Balancing Services или любой другой эквивалентной службой. В BizTalk это применяется на веб-уровне для адаптеров приема, использующих протокол HTTP (например, адаптер HTTP, адаптер SOAP и адаптеры WCF HTTP). Эта балансировка нагрузки на самом деле не является службой BizTalk, а представляет собой уровень балансировки нагрузки, предоставляемый поверх изолированных хост-адаптеров BizTalk для обеспечения высокой доступности веб-ресурсов. Он настроен так же, как и любая другая служба NLB.

Кластеризация

Когда кластеризация упоминается в BizTalk, она используется для ссылки на одну из двух вещей: кластеризацию на уровне SQL для обеспечения высокой доступности и отработки отказа и BizTalk Host Clustering.

SQL Clustering - это просто (хотя это и непросто, просто сказать) вопрос обеспечения кластера SQL-сервера, на котором выполняются базы данных сервера BizTalk, что позволяет осуществлять отработку отказа базы данных. Это не специфическая технология BizTalk.

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


Это изменение является ответом на комментарий ОП с просьбой предоставить дополнительную информацию. Надеюсь, это прояснит ситуацию. Если у вас есть дополнительные вопросы о специфике, я могу ответить на них, но это в значительной степени исчерпывает мои теорию знаний о конфигурации среды высокой доступности. Я в первую очередь разработчик и разработчик решений BizTalk, когда дело касается сетевых сложностей, есть люди, где я работаю, которые заполняют мельчайшие подробности и реализацию этих проектов.

Балансировка сетевой нагрузки для адаптеров на основе HTTP

Ключевым моментом, который я пытался здесь выразить, было то, что Балансировка сетевой нагрузки в контексте BizTalk ничем не отличается для любого другого сценария Балансировки сетевой нагрузки.

BizTalk имеет два типа хостов: В процессе и Изолированные . Хосты Process - это отдельные службы BizTalk, работающие на серверах (с одним экземпляром хоста на сервер). Изолированные хосты фактически являются делегатами веб-сервера (IIS), который обрабатывает все адаптеры на основе HTTP (адаптер HTTP и адаптер SOAP, а также определенные конфигурации для адаптера WCF)

Когда вы вводите балансировку сетевой нагрузки в среде BizTalk, вы делаете это на уровне веб-сервера для адаптеров, размещенных на изолированном хосте.

Вот страница MSDN для введения в NLB . Один из ключевых моментов о NLB выражен на странице в следующей цитате:

Балансировка сетевой нагрузки позволяет все компьютеры в кластере будут адресован тем же набором кластера IP-адреса (но также поддерживает их существующий уникальный выделенный IP адреса).

Установив NLB, вы разрешаете нескольким изолированным хост-серверам обрабатывать интернет-трафик, направленный на один выделенный IP-адрес. Конфигурация NLB завершает работу.

Кластеризация обработчиков адаптеров BizTalk

В своем ответе выше я заявил, что некоторые адаптеры BizTalk ведут себя неправильно, когда им разрешено работать в нескольких экземплярах хоста BizTalk. Это очень специфично для адаптера с точки зрения «почему», поэтому наилучшим дополнением к этому ответу, которое я могу дать, является следующая цитата из документации MSDN , касающаяся конкретно адаптера FTP.

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

Как говорится, адаптер FTP использует протокол FTP, который не блокирует файлы. Поскольку BizTalk изначально является высокопараллельной системой, если вы разрешите нескольким хостам BizTalk размещать экземпляр FTP-адаптера, вы получите несколько копий одного и того же FTP-сообщения, полученного в вашей системе BizTalk. Кластеризация BizTalk гарантирует, что все кластерные хосты BizTalk будут работать на 1 и только 1 экземпляре хоста. Поместив обработчик получения FTP в хост кластера, вы гарантируете, что:

  • у вас всегда будет работать FTP-адаптер, если работает хост BizTalk
  • у вас никогда не будет работать более одного адаптера FTP.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...