1

いくつかの入力ソースに接続し、読み取ったメッセージを処理するアプリケーションを開発したいと考えています (原則として BizTalk を考えますが、それほど重くはありません)。パフォーマンスと信頼性のために、共有ストレージ (DB など) をメッセージ キューイング メカニズムとして利用することで、サービスの水平方向のスケーリングを可能にしたいと考えています。

ただし、電子メールやディスク フォルダーなどのリソースにアクセスするスレッドは、水平方向にスケーリングできません。その入力ソースから読み取るインスタンスは、一度に 1 つだけ実行する必要があります。(さらにメッセージ処理ビジネス ロジックは、もちろん複数のノードに存在できます)。

これは、アクティブ/パッシブ クラスタリングの最適な候補です。1 つのノードは「アクティブ」と見なされ、「単一インスタンス」リソース (電子メールの受信トレイなど) にアクティブに接続しますが、他のノードは「パッシブ」です。「アクティブ」ノードが停止すると、他の「パッシブ」ノードが新しい「アクティブ」ノードを選択します。

ここで質問です。通常のフェールオーバー クラスタリング ロジックを実装するのに役立つ .NET ライブラリはどこかにありますか? (つまり、必要なハートビートの送信/検出、および「アクティブな」ノード選択プロセスの実装)。車輪を再発明したくないので。

すでに行われた調査からわかること:

  • BizTalk Server はこの機能をネイティブでサポートしていますが、BizTalk は重くて高価なので使用していません (ただし、この機能をエミュレートしたい)。
  • Windows Server は (Windows Server 2008 Enterprise や Datacenter などの特定のハイエンド バージョンで) フェールオーバー クラスタリングをサポートしていますが、これも高価なソリューションです (各ノードに高価なライセンスが必要になるため)。
  • フェイルオーバーアルゴリズムがどのように機能するかについては多くの情報がありますが、オープンソースの実装はどこにも見当たりません... (プレミアムで販売されている商用製品のみ)

それが高度で望ましい機能と見なされる可能性があること、およびそのための商用ソリューションが高価である理由を理解しています. これで問題ありません。オープンソースの実装やライブラリが存在しない場合は、自分で開発します。すでに存在するものに労力を費やしたくないだけです。

UPDATE 12/02/2011: SAForum ( http://www.saforum.org/link/linkshow.asp?link_id=214720 ) を見つけました。これは、サービス可用性の概念を開発するためのオープン仕様を公開する Web サイトです。OpenSAF ( http://www.opensaf.org/Welcome-to-OpenSAF%E2%84%A2~151213~14944.htm ) と、SAForum の仕様のオープンソース C++ 実装もあります。包括的に見えますが、非常に重いです。仕様とドキュメントを読み進めるには、かなりの時間がかかります。また、フェールオーバーだけでなく、完全にスケーラブルな分散システム (通知、分散イベント、ロック、クラスター管理など) の仕様を提供することもカバーしています。.NET 実装の兆候はまだどこにもありません。

4

1 に答える 1

2

確かに、この種の高度な機能を独自に開発することは、商業的に購入するよりも費用がかかります。あなたの時間がプロジェクトに寄付されていて、締め切りがない場合を除き、私はこれを自分で書くことを除外します.

高可用性と水平スケーリングを実現するには、多くのコードを記述する必要があります。高可用性の実稼働環境で必要とされるレベルまで機能することをテストするには、かなりの労力が必要です。そして、それをすべて行ったとしても、膨大な数の実行時間を蓄積し、すべてのソフトウェアが成熟して安定するために必要な複数のバージョンを経てきたマイクロソフトのコードよりも、独自のコードを信頼できますか.

あなたが本当にオープンソース ライブラリについて質問していたことは知っていますが、同じ議論が当てはまります。信頼できますか、十分にテストされていますか、フィールドで証明されていますか、それが死んだら誰の尻を蹴ることができますか?

更新:これは数年前のことで、この種のミッション クリティカルなインフラストラクチャにオープン ソースを使用することの実行可能性に対する私のスタンスは軟化したと思います。それを自分で。

これを読んでいる他の人のために、 Rabbit MQを高可用性でスケーラブルなメッセージ バスとしてここにプラグインします。商用サポートが利用可能で、オープン スタンダード (AMQP) に基づいています。クライアント ライブラリは、ほぼすべての主要なプラットフォームで利用できます。

于 2011-02-06T08:13:12.013 に答える