分散共有メーカーが質問に直面:ZooKeeperのクラスタは、高可用性の展開を達成するためにどのように?

飼育係私は誰もがその名を聞くために多くの場面で、精通していると思います。これは、分散アプリケーションのための一貫した高性能コーディネーションサービスを提供し、トップレベルのApacheプロジェクトです。設定、保守、ドメインネームサービス、分散ロックを:行うために使用することができます。オープンソースコンポーネントの多くは、物流センターやレジストリなどの飼育係の使用は、特にミドルウェアのエリアにあります。それはカフカの管理とサービスの連携、レジストリサービスダボフレームとのようで、HadoopのとHBaseの重要な構成要素です。

原則

高可用性の展開を導入する前に、まずその高可用性の展開を完全に理解することが非常に重要である飼育係、下の基本を理解しています。

アーキテクチャ

図は、飼育係アーキテクチャ図で、ZooKeeperのクラスタはリーダー、フォロワーとオブザーバーの3つの役割が含まれています。

  • リーダー:投票や解像度の責任は、システムステータスを更新し、リーダーはによって選出されます。
  • フォロワー:クライアント要求の結果は、予備選挙の過程で投票するために、クライアントに返さ受付けます。
  • オブザーバー:クライアント接続を受け入れることができますが、読んで受け入れ、書き込み要求、リーダーへの書き込み要求が、オブザーバーは、投票プロセスに参加しませんが、唯一の同期リーダーの状態は、目的オブザーバーは、システムを拡張し、読み出し速度を向上させることです。

飼育係クライアントは、クライアント、リクエスト開始剤です。

分散共有メーカーが質問に直面:ZooKeeperのクラスタは、高可用性の展開を達成するためにどのように?

ハイアベイラビリティ

限りあり(ここで、非投票オブザーバノードであるノードを指す)クラスタ内の複数のノードの半分よりも正しく動作する飼育係システムとして、クラスタ全体は、通常、外部サービスにできるようになります

あなたは、N個のクラスタを可能にできるマシンを構築したい場合はこれに基づいて、ダウンし、それはのZooKeeperクラスタを展開します2 * N + 1つの構成のサーバで構成されています。

あなたは3つのノード飼育係(非オブザーバー)を展開する場合したがって、2つのノードが存在し、クラスタ全体は、少なくとも使用することができた場合に利用可能な、ノード障害がサービスを提供するために、飼育係のクラスタには影響しないことを意味し、5つのノードを展開した場合、手段に2つのノードが同時に故障し、飼育係のクラスタは、まだ通常の外部のサービスを提供することができます。

飼育係ノードクラスタ展開(非オブザーバー)は、一般に奇数

一般的に配備ノードの数が偶数存在しないことを言わない、奇数です。例えば、通常の4/2 + 1 = 3のノード、外部ノードの障害を許容することができるサービスが、3つのノードの配置に対して垂直クラスタを意味する4つのノードを、展開されている場合、実際には、効果は同じであり、高可用性の側面から展開の偶数は、1台のマシンだけの無駄であること。

展開

あなたがしたい場合は仕事に半分以上飼育係のクラスタノードが正しくあり限りとして、クラスタは通常のサービスのことができるようになり、それは飼育係飼育係の可用性は単純には、いくつかのマルチノード展開ではないではないことをので好きではないのですか?

高可用性のマルチノード展開?

マルチノード展開は、本当に使いやすさを向上させることが可能になりますが、また、以下の二つの質問を検討する必要性があります。

  • マルチノードは、ノードの数は、高可用性が高く、より異音を許容できることを意味し、書き込みパフォーマンスおよび可用性の影響を増加させるためにノードを追加します。しかし、より多くのノード手段は、リーダーの必要性によって発行された提案は、より多くのノードは、必然的に提案を増加させる提案を、受け入れること(半分以上は)時間がかかり、パフォーマンスと比較的大きな書き込み要求の可用性に影響を意味コミットしていること。そのため、通常の業務システムのためのノード数を調整するために、完璧なバランスを必要とします。
  • 災害復旧のニーズが災害復旧の要件の導入と併せて考慮しなければならない、でき飼育係クラスタ全体もする必要はエンジンルーム、障害領域に正断層外部のサービスを提供することができます。

災害復旧の部屋

あなたが部屋全体の障害が発生した場合にそれを行うには、高可用性クラスタ飼育係、飼育係を確保するためにことを確実にしたい場合は部屋を横切って展開することです。

シングルルーム

私たちは、シングルルームの展開は、図で、室内単一の展開で、次を見てください。5節。スタンドアロン展開の場合、部屋の問題と、飼育係クラスタ全体が外で働くことができない、災害復旧の部屋を行うための部屋ではありません。

シングルルームの必要性は、複数のノードでの問題を回避するために、同一ホスト、別のキャビネットにはない試してみてください選択したノードの展開を検討します。

分散共有メーカーが質問に直面:ZooKeeperのクラスタは、高可用性の展開を達成するためにどのように?

市ダブルルーム

シングルルームには、災害復旧の部屋、部屋のペアにそれを行うので?

「部屋1」に示すように、3つのノードを展開する、2つのノード惨事復旧の部屋を行うことができます5つの飼育係のクラスタノードの合計を、配備「ルーム2」?いずれの部屋には、クラスタが外部の正常な仕事を提供することができ、失敗しましたか?

実際には、まだ動作しません。しかし、生き残った「部屋1」の障害であれば、ノードと、正常に動作することが可能であるので「部屋1」は、3つのノード、半分よりも大きいが、ありますので、「ルーム2」の障害、「部屋1」の場合、この場合には、正常です数2つだけ、クラスタ全体が正常に動作していません。

そのため、飼育係は、ダブルルームを展開、部屋には、ディザスタリカバリを行うことができません。

分散共有メーカーが質問に直面:ZooKeeperのクラスタは、高可用性の展開を達成するためにどのように?

市3つの部屋

私たちは3つの部屋の展開を見てみましょう、3つの部屋の展開は、部屋には、ディザスタリカバリを行うことができます。あるいは、一例として5つのノードのクラスタで:

以下、「部屋1」、「エンジンルーム2」つのノードの同時展開、およびノー​​ドの配備「部屋3」です。部屋のいずれかの障害が発生した場合には、より大きなノードの通常の半分の数を満たすことができますし、上記の、部屋の災害復旧ことを確実にすることが可能です。

分散共有メーカーが質問に直面:ZooKeeperのクラスタは、高可用性の展開を達成するためにどのように?

災害復旧

ただ、部屋レベルでの災害復旧を行う平均的なビジネスのための十分なはずですが、多くの企業でも3つの5拠点を行い、アリゴールドのドレスを2つのパターンで3つのセンターを使用しています。この場合、我々は、飼育係、それのクラスタを展開する方法をすべきですか?

2で3つのセンター

「3つのセンターへの2つの」プログラムの構築本番データ・センター、災害復旧センター街、オフサイト災害復旧センターという。このモードでは、2つの都市の3つのデータセンターの相互接続、データセンターの障害や災害、その他のデータセンターの稼働時間とは、重要なビジネスを実現するか、全体の事業を引き継ぐ場合。

分散共有メーカーが質問に直面:ZooKeeperのクラスタは、高可用性の展開を達成するためにどのように?

2つのモードの3つのセンターでは、クラスタの展開飼育係は何の考慮事項はありますか?

以下は、一般的に2〜3センターは、この展開の下に使用されています。「エリア1」都市が2つのデータセンターを持って、遠隔の「中心」と「中央2」、「領域2」が遠隔中心を有しているの「中心」。ここでは、二つの質問を持っているかもしれません。

分散共有メーカーが質問に直面:ZooKeeperのクラスタは、高可用性の展開を達成するためにどのように?

  • 投票ノード(フォロワーとリーダー)は「中央1」でなく、同様のプログラムに配置されているのはなぜ3つの部屋には3つのセンター、それに配備されていますか?
  • 遠隔長い間の物理的距離に、ネットワークの伝送遅延は、これにより書き込み性能に影響を与える、長いのクラスタの決定時間投票ノードにつながる、比較的大きいためです。データを書き込むときに、2つの選択肢は、北京や上海などの都市である場合には約30ミリ秒の緑のネットワーク遅延を行く想像して、ノードの半分が提案、成功するために書かれた要求に同意する必要があります。したがって、成功した時間を書く時間が長くなります。また、リモートクラスタの再選挙との間のより複雑なネットワークを簡単に、クラスタ全体につながることは利用できない、そして選挙の時間が長くなります。そのため、一般的にのみ、センターに展開3つの部屋を行う他のセンターはオブザーバーのノードを使用している、それは飼育係がオフサイトディザスタリカバリを行うことができないクラスタにデプロイ見ることができます。
  • なぜオブザーバーノードを導入しましたか?
  • オブザーバーは、飼育係のクラスター展開のために非常に良いことができ、オブザーバーはなく、投票に、読み書きするためにクライアントを提供することができます。そのため、オブザーバーノードクラスタは、投票時間がかかるには影響しません、それはクラスタの選挙に影響を与えません。また、オブザーバーを追加すると、大幅に改善された性能を読み取ります。

三センターの最適化

クラスタを保護するために、3つのセンターにオブザーバーノードに配備されているが、唯一の相互作用オブザーバークライアントマシンのポイントと、このようにすることにより、クラスタ全体を高め、リーダーとフォロワー不安定性を減らすこと、投票ノードの作業負荷を軽減することができます安定性と可用性。

分散共有メーカーが質問に直面:ZooKeeperのクラスタは、高可用性の展開を達成するためにどのように?

概要

高可用性の展開に飼育係にも配慮がたくさんあり、災害復旧の部屋の展開上のZooKeeperクラスタを行うことができますが、オフサイトのディザスタリカバリを行うことはできません。さらに、拡張性と安定性のクラスタノードのオブザーバーを高めるために、読み取りパフォーマンス、保護、フォロワーリーダーノードを改善するために導入することができます。

一般的な進歩、共有に学びます

私は、みんなの注目[公共の数歓迎コードとして冷静に ]、大量のJava関連の記事、材料は材料が内側になります仕上げ、内側に更新されます学習します。

私は賞賛のポイントに書き込みに良い感じ、プラス信者が聖歌!注目点は、継続的に更新され、迷子にしないでください!

分散共有メーカーが質問に直面:ZooKeeperのクラスタは、高可用性の展開を達成するためにどのように?

おすすめ

転載: blog.51cto.com/14570694/2485824