5

製品固有の機能と NLB (Windows 2003 以降のエディションでのネットワーク負荷分散) の採用の両方に関して、Biztalk で負荷分散がどのように構成されているかを理解するのに役立つ記事/リソースは何ですか?

編集: アプリケーション プロトコルが負荷分散に与える影響に特に関心がありますか? たとえば、相手側 (Biztalk が接続要求を行う相手) が複数の接続を許可しない場合に、Biztalk サーバーの 2 つのインスタンスが TCP/IP 接続を処理する方法などです。

4

1 に答える 1

21

明らかなリソースは MSDN です。ほとんどの概念をカバーし、Web で他のリソースを探すための適切な用語を提供する、高アクティビティの計画というタイトルのセクションがあります。多くの Microsoft サーバー製品と同様に、MSDN にも、特定の BizTalk シナリオを扱ったホワイト ペーパーが多数あります。

ほとんどの優れた BizTalk 書籍には、負荷分散の概念に関するセクションも含まれています (Professional BizTalk Server 2006 に例があります)。

それ以外にも、特に用語の使用に関して役立つ重要な概念がいくつかあります (BizTalk の使用法の一部は誤解を招く可能性があります)。

負荷分散

BizTalk Server は、そのアーキテクチャの性質上、負荷分散を行います。つまり、メッセージ ボックス データベースに接続している BizTalk ホストが複数ある場合、データベース内のメッセージは、BizTalk グループに参加しているホスト全体に均等に分散されます。(各ホストで実行するように構成されている BizTalk プロセスに関する注意事項があります)。

Microsoft ネットワーク負荷分散サービスまたは同等のサービスであるネットワーク負荷分散の概念もあります。BizTalk では、HTTP プロトコルを使用する受信アダプター (HTTP アダプター、SOAP アダプター、WCF HTTP アダプターなど) の Web レベルでこれが適用されます。この負荷分散は実際には BizTalk サービスではなく、Web リソースの高可用性を確保するために BizTalk 分離ホスト アダプターの上に提供される負荷分散レイヤーです。他の NLB サービスと同じように構成されます。

クラスタリング

BizTalk でクラスタリングについて言及する場合、高可用性とフェールオーバーを提供する SQL レイヤーでのクラスタリングと、BizTalk ホスト クラスタリングの 2 つのうちの 1 つを指すために使用されます。

SQL クラスタリング - これは、BizTalk サーバー データベースを実行する SQL サーバー クラスターを提供し、データベースのフェールオーバーを可能にするという単純な問題です (実行するのは簡単ではありませんが)。これは、BizTalk 固有のテクノロジではありません。

BizTalk ホスト クラスタリング - この場合、BizTalk Server ホストは、BizTalk 内で作成するときにクラスタ化されているとマークされます。これは BizTalk 固有の設定であり、一度に実行されるホストのインスタンスは 1 つだけであり、拡張により、このホスト内のすべてのリソースも 1 つのインスタンスのみを持つようになります。これは主に、FTP や MSMQ アダプターなど、同時に複数のアダプターの実行が許可されている場合に正しく動作しないアダプターで使用することを目的としています。


この編集は、詳細を求める OP のコメントに応えたものです。うまくいけば、これで物事が明確になります。詳細についてさらに質問がある場合は、おそらくそれらに答えることができますが、これは高可用性環境の構成に関する私の理論的知識をほとんど使い果たしてしまいます. 私は主に BizTalk の開発者およびソリューション デザイナーです。複雑なネットワークに関して言えば、私が働いている人々は、これらの設計の核心的な詳細と実装を記入します。

HTTP ベースのアダプタのネットワーク負荷分散

ここで強調したいのは、BizTalk のコンテキストでのネットワーク負荷分散は、他のネットワーク負荷分散シナリオでも変わらないということです。

BizTalk には、In ProcessIsolatedの 2 種類のホストがあります。In Process ホストは、サーバー上で実行されている個別の BizTalk サービスです (サーバーごとに 1 つのホスト インスタンスがあります)。分離されたホストは、実際にはすべての HTTP ベースのアダプター (HTTP アダプターと SOAP アダプター、および WCF アダプターの特定の構成) を処理する Web サーバー (IIS) への委任です。

ネットワーク負荷分散を BizTalk 環境に導入する場合、分離ホスト ホスト アダプターの Web サーバー レイヤーでネットワーク負荷分散を導入することになります。

これは、 NLBの紹介に関する MSDN ページです。NLB に関する重要なポイントの 1 つは、次の引用のページに示されています。

ネットワーク負荷分散を使用すると、クラスター内のすべてのコンピューターを同じクラスター IP アドレスのセットでアドレス指定できます (ただし、既存の一意の専用 IP アドレスも維持されます)。

NLB をセットアップすると、複数の分離されたホスト サーバーが単一の専用 IP アドレスに向けられたインターネット トラフィックを処理できるようになります。NLB 構成は、作業をファームアウトします。

BizTalk アダプター ハンドラーのクラスター化

上記の回答で、複数の BizTalk ホスト インスタンス内での実行が許可されている場合、特定の BizTalk アダプターが正しく動作しないことを述べました。これは理由の点で非常にアダプターに固有であるため、その答えの最良の拡張は、特に FTP アダプターを扱っているMSDN ドキュメントからの次の引用です。

ほとんどの BizTalk 統合アダプターでは、BizTalk グループ内の異なる BizTalk サーバー上の BizTalk ホスト インスタンスで実行する複数のアダプター ハンドラーを作成することで、高可用性を実現できます。ただし、FTP アダプター受信ハンドラーは、複数の BizTalk ホスト インスタンスで同時に実行するように構成しないでください。この推奨事項は、FTP 受信アダプターが FTP プロトコルを使用してターゲット システムからファイルを取得し、FTP 受信アダプターの複数のインスタンスを実行しているときに同じファイルの複数のコピーが同時に取得されないように、FTP プロトコルがファイルをロックしないためです。 .

彼らが言うように、FTP アダプターはファイルをロックしない FTP プロトコルを利用します。BizTalk は本来高度な並列システムであるため、複数の BizTalk ホストが FTP アダプターのインスタンスをホストできるようにすると、同じ FTP メッセージの複数のコピーが BizTalk システムに受信されることになります。BizTalk クラスタリングが行うことは、クラスタ化された BizTalk ホストが1 つだけのホスト インスタンスで実行されることを保証することです。FTP 受信ハンドラーをクラスター化されたホスト内に配置することにより、次のことが保証されます。

  • BizTalk ホストが実行されている限り、常に FTP アダプターが実行されます。
  • 複数の FTP アダプターを実行することはありません。

さらに、BizTalk クラスター化されたホストを使用して、システムの負荷を軽減できます。たとえば、ポーリングするように構成されている BizTalk SQL アダプターの受信場所は、すべてのホスト インスタンスでポーリングします。これにより必ずしも複数のメッセージ インスタンスが発生するわけではありませんが、ポーリングする SQL サーバーに過度の負荷がかかったり、呼び出されたストアド プロシージャの設計によってはデッドロック シナリオが発生したりする可能性があるため、SQL アダプターの受信ハンドラーをクラスター化することをお勧めします。

于 2009-12-23T22:31:03.470 に答える