October 2014
Beginner to intermediate
240 pages
3h 38m
Japanese
障害がなければ、人生はずっと楽だろう。もちろん、障害がなければそもそもZooKeeperが必要にもならないだろうが。ZooKeeperを効率的に使うには、どのような種類の障害が生じるのか、それらをどう取り扱ったらよいのかを理解することが重要だ。
障害が発生しうる場所は大きく3つある。ZooKeeperサービスそのもの、ネットワーク、アプリケーションのプロセスである。復旧するには、その障害がこの3つのうちのどれなのかを知らなければいけないが、残念なことにそれはいつも簡単だとは限らない。
図5-1に示す簡単な構成を考えてみよう。アプリケーションは2つのプロセスでできており、3つのサーバがZooKeeperを構成している。プロセスは3つのサーバのうちの1つをランダムに選択して接続しているが、他のサーバに再接続する場合もある。サーバは内部プロトコルを用いて、クライアントの情報を同期しており、クライアントには一貫した状態を提供している。
図5-1 簡単な分散アプリケーション
図5-2にシステム上のさまざまなコンポーネントに生じうる障害の1つを示す。さまざまな障害をアプリケーション側から区別できるかを考えてみると面白いだろう。例えば、ネットワークに障害がある場合、c1から見て、ネットワーク障害と、ZooKeeperサービスの停止の区別が付くだろうか?ZooKeeper s1だけが落ちている場合には、他のZooKeeperサーバがオンラインなので、ネットワークに問題がなければ ...
Read now
Unlock full access