6

冗長性のある小さなプロキシアプリケーションを作成しています。たとえば、プライマリプロキシは1つのサーバーで実行され、冗長プロキシは別のサーバーで実行されます。この冗長性を実装するために使用できるシンプルな高可用性フレームワークはありますか?たとえば、このHAフレームワークは、インスタンス間でpingを送信し、最初のインスタンスがダウンしたときに、他のインスタンスで何らかの例外または通知を発生させます。

4

4 に答える 4

2

このようなシステムの構築は、近年の私の日常業務です。jgroups は、このような種類のグループ化イベントを受信して​​処理するための非常に便利なツールであることがわかりました。これは、独自のHAインフラストラクチャを構築する場合に当てはまります。わかりませんが、あなたの場合は、HAProxyなどの単純なリバースプロキシで十分な場合があります。

于 2010-09-16T22:06:44.690 に答える
0

手間をかけずにHAが必要な場合は、HA機能を備えたロードバランサー( Ultramonkeykeepalivedを備えたLVSなど )を使用するだけです。

HA構成では、通常、仮想IPを使用する必要があるため、このping /通知機能をフレームワークとして使用している場合でも、やるべきことがあります(仮想IPへの要求への応答を開始すると、他のインスタンスは失敗しました)。したがって、学習の機会を探しているのでない限り、フレームワークを使用して自分でコーディングするのではなく、ミドルウェアを使用することをお勧めします。

これらのミドルウェア用に構成できるヘルスチェックは多数あります。たとえば、単純なヘルスチェックでアプリにGETリクエストを送信できます。定期的に応答で特定の文字列(「XXXrunning。」など)を探して、アプリを確認します。正常に実行されています。

于 2010-09-15T14:38:32.103 に答える
0

アプリケーションが実行する作業について多くの詳細を提供しないため、アプリケーションがステートフルであるかどうか、マイナーなデータ損失を許容できるかどうか、タイムクリティカルかどうか、マシン時間よりも開発者の時間を重視するかどうかに応じて、さまざまなスペクトルを持つことができますソリューションの。

上記にいくつかの良い提案があります、私は付け加えます:JMSと永続的なメッセージングを見てください。通常、これらはリカバリを非常に簡単にしますが、レイテンシーのヒットを犠牲にします(商用製品を手に入れてそれをよく学ぶか、ベンダーにアプリケーションを調整するためにお金を払わない限り)。JMSキューを使用すると、アクティブ-アクティブ処理を実装して、障害検出の問題を回避できます。

注目すべきもう1つの方向は、Gigaspaces、Coherence、Gemstone、Infinispan、Gridgain、Teracottaなどの分散状態管理/クラスタリングフレームワークです。これらはデータを複製し、さまざまなサービス品質レベルを保証できます。それらのほとんどには、ある種の障害検出と分散管理メカニズムが付属しています。

于 2010-09-16T15:19:03.763 に答える
-2

hadoopは開始するのに適した場所です

于 2010-09-15T14:16:12.877 に答える