2011-10-30 13 views
26

Webアプリケーションでハイアベイラビリティ(HA)がどのように機能するかを説明する人がいますか?HAとは、単一障害点が存在しないことを意味するためです。Webアプリケーション:高可用性/単一障害点を防ぐ方法

しかし、ロードバランサを使用しても、単一障害点ではありませんか?

+0

ないフェールオーバーするように設定された2つのロードバランサを持つ上

enter image description here

もっと読みます。 –

+2

@Dave Newton、しかし、2人のロードバランサは、入ってくる1回のリクエストにどのように答えますか?想像してみましょう。http://example.comにアクセスして、ブラウザがIPアドレスを解決してからexample.comのIPに単一のリクエストを送信します。複数のサーバがバランサ)は、ブラウザからのWebリクエストに「回答」できますか?ある時点では、障害のポイントとなるハードウェアが1つあります。 – nickb

+0

彼らはしません。 1つです。一方が失敗し始めると、もう一方が引き継ぎます。これを処理するためのさまざまなメカニズムがありますが、すべてSOの質問の範囲を超えています。デズモンドはすでにほとんどすべてのことを言った。 –

答えて

12

私は、件名に、この記事を見つけましたあなたのウェブサイト

Webブラウザは、機能するものが見つかるまで、すべてのアドレスを試してみるほどスマートです。

1

HAアーキテクチャはフィールド全体であり、複数の書籍が書かれているため、簡単な段落では答えにくいです。

理想的な状況をまとめると、複数のサーバーを使用し、複数のロードバランサのレイヤーに相互接続します。ノードとLBは、いくつかの異なるデータセンターに配置され、異なるネットワークバックボーンに接続されます。理想的には、データセンターは世界中に配置されます。

要するに、すべてのコンポーネントにはロードバランサを含む冗長性があります。出発点のために

、それはあなたのハートビートとセットアップ2 HAプロキシサーバーを、そのいずれかに障害が発生した(クエリへの応答を停止)することを、次のように動作しますHigh Availability Cluster

+1

しかし、ある時点では、ユーザーのWebブラウザからの単一の要求を複数のロードバランサに分割する必要があります。この時点で、それは単一の障害点ではないでしょうか?つまり、1つのリクエストが複数のロードバランサに入る可能性はありますか? – nickb

+1

はい、ユーザーの要求は、オンラインのロードバランサの1つで終わります。要求を処理して失うのとまったく同じタイミングでLBがダウンする可能性があります。重要なことは、HAのアドレスは、ユーザーがすぐに再試行すると、オンラインで成功している別のLBで終了し、システムの他のユーザーも同様です。 HAは、特定の要求が成功するのではなく、利用可能なシステム全体(すべての障害が一時的)に関係しています。 –

+2

どうしますか? DNSラウンドロビン? – nickb

0

ために、ウィキペディアを参照してください、それがクラスタから削除されています。 HAプロキシからの要求は、ラウンドロビン方式でWebサーバーに転送できます。また、1台のWebサーバーに障害が発生した場合、HA Proxyサーバーはそのサーバーが接続されるまで接続しようとしません。 Webサーバーは、すべての動的情報をデータベースに格納しており、2つのMySQLインスタンスにわたって複製されます。 ご覧のとおり、HAプロキシとクラスタMySQL(または単にMySQLレプリケーション)と同様にIPクラスタリングが重要です。あなたがのために複数のAレコード(IPアドレス)を返すようにDNSサーバーを構成することができ長続きスティッキーセッションを必要としない場合は基本的に http://www.tenereillo.com/GSLBPageOfShame.htm

example high availabibility cluster

+7

しかし、あなたのダイアグラムでは、私が理解できないことは、HAPRoxyはどのように機能するのでしょうか?クライアントDNSが解決すると、単一のマシンにしか解決されません。だからHAProxyは何とか同じIPアドレスを共有していますか? – nickb

+0

@nickb Dave Newtonが上記のように応答した場合、DNSは1つの外部ホスト名に対して複数のIPアドレスを返すように設定できます。その後、クライアントはサービスに複数回アクセスすることができます。 DNS構成に関しては、「RECORDS」と「CNAME RECORDS」を参照してください。 –

+0

@nickbそうです、HAサービスは、HAプロキシがクライアントが接続する単一の仮想IPを共有できるようにすることができます。 UNIX用のHAサービスは、カーペットとキープアライブ、RedHat Cluster SuiteまたはPacemakerなどです。http://serverfault.com/questions/686878/how-to-make-redundant-load-balancers – Yuci

5

高可用性は、ハードウェアやソフトウェアに障害が発生した場合でも、システムを稼動させて24時間稼働することができます。他の方法では、フォールトトレランスアプリケーションです。これにより、意図されたユーザーに対してアプリケーションを中断なく使用できるようになります。 High Availability Deployment Architecture

関連する問題