1

新しいシステムを構築しようとしていますが、最大限の可用性が必要です。Windowsを使わなければなりません!

クライアントがWebサービスを使用してシステムと通信するようにします。また、周囲のシステムからデータを取得します。このデータは、メッセージング、MQシリーズおよびMSMQを使用して配信されます。システムは、キューを使用して周囲のシステムに送り返されるデータを生成します。

新しいデータがシステムに到着すると、さまざまなプロセスがこのデータを使用して、印刷、データベースへの書き込みなどのさまざまなタスクを実行します。

高い可用性を実現するために、2つの異なるマシンで2つのバージョンのシステムを並行して実行することを計画しています。クライアントは、正しく応答する最初のサーバーを使用しようとします。理想的なのは、2台のサーバーのいずれかからの受信データがCOMMONキュー(3台目のマシン?)に配置されることだと思います。キュー内のデータは、両方のサーバー上のプロセスによって取得できます(生産者/消費者パターンを考えてください)。

たぶん NServiceBusが私のニーズに合うと思います。上記によると、いくつか質問があります。

  • 2台のサーバー間でキューを共有できますか?サーバーがダウンした場合にデータがサーバーにスタックしたくない。その場合、他のサーバーに処理を継続させたいと思います。
  • 異なるマシン上の2つ(またはそれ以上)の「コンシューマー」/プロセスが共通のキューからデータを選択できますか?

どんなアドバイスも大歓迎です!

4

2 に答える 2

1

NSBディストリビューターの目的は、可用性の問題に対処することではなく、スケールの問題に対処することです。ディストリビューターは、低コストでシステムをスケールアウトするのに役立ちます。

説明を見ると、システムはWebServiceエンドポイント、複数のデータベース、およびキューイングインフラストラクチャで構成されています。完全な高可用性を実現したい場合は、単一障害点がないことを確認する必要があります。それを行うには、次のものが必要になります。

  1. Webサービスエンドポイント(2つ以上のサーバー)用の負荷分散されたWebファーム
  2. キューおよびそれらのキューに依存するアプリケーション用のアプリケーションクラスター。
  3. 高可用性データベースサーバー、これもクラスター化されています。
  4. すべてに加えて、優れたSAN。

ただし、コンシューマーが利用できることについて言及している場合は、ターゲットキューとWebサービスエンドポイントが利用可能であることを確認する必要があります。そして、アーキテクチャ全体が遅延実行を促進することを確認します。

2つ以上のアプリケーションがMSMQキューをリモートで読み取ることができますが、これはDTCに基づいているため、実行したくないことです。そして、それは本当のパフォーマンスキラーです。

いくつかの参考文献

  • [http://blogs.msdn.com/b/clustering/archive/2012/05/01/10299698.aspx] [1]
  • [http://msdn.microsoft.com/en-us/library/ms190202.aspx] [2]
于 2013-01-26T08:36:12.473 に答える
-1

要するに、ディストリビューターを使用したいと思うでしょう... http://support.nservicebus.com/customer/portal/articles/859556-load-balancing-with-the-distributor

ここで重要なのは、ディストリビューターノードが単一障害点であるため、クラスター上で実行する必要があるということです。

于 2013-01-22T18:53:05.737 に答える