2つのインスタンスを持つGlassfishv2u2クラスターがあり、それらの間でフェイルオーバーしたいと思います。このテーマについて読んだすべてのドキュメントには、ApachehttpdのようにGlassfishの前でロードバランサーを使用する必要があると書かれています。このシナリオではフェイルオーバーは機能しますが、ここでも単一障害点があります。Glassfishは、フロントにロードバランサーがなくてもフェイルオーバーを実行できますか?
3 に答える
これを解決したのは、両方とも URL に応答する 2 つの IP アドレスがあることです。DNS プロバイダー ( DNS Made Easy ) は、2 つの間でラウンド ロビンを行います。タイムアウトを低く設定すると、1 つのサーバーに障害が発生した場合に、他のサーバーが応答するようになります。1 つのサーバーが応答を停止すると、DNS Made Easy は、この URL に応答するサーバーとして他のホストのみを送信します。DNS プロバイダーを信頼する必要がありますが、DNS ルックアップの可用性が非常に高いサービスを購入できます
高可用性に関しては、セッションのレプリケーションを可能にするクラスター設定を行うことができるため、ユーザーは失敗する可能性のある複数の要求を失うことはありません。
うーん.. JBoss は、ドキュメント ( http://docs.jboss.org/jbossas/jboss4guide/r4/html/cluster.chapt.html ) の第 16.1.2.1 章に従って、ロード バランサーなしでフェイルオーバーを行うことができます。クライアント側のインターセプター。
私が知っている限り、glassfish クラスターはノード間のインメモリ セッション レプリケーションを提供します。Suns Glassfish Enterprise Application Server を使用すると、99.999% の可用性を約束する HADB を使用できます。
いいえ、アプリケーションレベルでそれを行うことはできません。
オプションは次のとおりです。
- ラウンドロビンDNS-両方のサーバーをインターネットに公開し、クライアントに負荷分散を行わせる-これは、フェイルオーバーを確実に有効にするため、非常に魅力的です。
- 別のレイヤー3負荷分散システムを使用します-「Windowsネットワーク負荷分散」、「Linuxネットワーク負荷分散」、または「ふわふわLinuxクラスター」と呼ばれる私が書いたものなど
- フェイルオーバーホットスペアを備えた別のロードバランサーを使用する
これらのいずれの場合でも、データベースやセッションデータなどが利用可能であり、クラスターのメンバー間で同期していることを確認する必要がありますが、これは実際にははるかに困難です。