ZooKeeperは、Apacheソフトウェア財団のソフトウェアプロジェクトであり、オープンソースの分散構成サービス、同期サービス、および大規模分散コンピューティングの命名登録を提供しています。
ZooKeeperのアーキテクチャは、冗長サービスによって高可用性を実現します。
Zookeeperの設計目標は、これらの複雑でエラーが発生しやすい分散整合性サービスをカプセル化して、効率的で信頼性の高いプリミティブセットを構成し、ユーザーに一連のシンプルで使いやすいインターフェイスを提供することです。
典型的な分散データの整合性対策で、分散アプリケーションは、データの公開/購読、負荷分散、命名サービス、分散調整/通知、クラスター管理、マスターの選挙、分散ロック、および分散キューなどの機能を実装できます。
目次
この記事を読むべき方
この記事は、プロのプログラム開発者を対象としています。この記事を通じて、 zookeeperの使用を段階的に理解できます。
zookeeper データ構造
zookkeeperによって提供される名前空間は、key-valueの形式で格納される標準のファイルシステムとよく似ています。名前keyは、スラッシュ/で一連のパス要素を区切ります。zookeeper の名前空間の各ノードは、パスで識別されます。
関連するCAP理論
CAP理論は、分散コンピューティングシステムに対して、次の3つのポイントを同時に満たすことは不可能です。
- 一貫性:分散環境では、一貫性とは、データが複数の副本の間に一貫性を維持できるかどうかを指します。これは、すべてのノードが最新データの同じ副本にアクセスすることに相当します。 一貫性ので、システムがデータの一貫性のある状態で更新操作を実行するとき、システムのデータが依然として一貫性のある状態にあることを維持する必要があります。
- 可用性:要求に対して正しい応答を取得できますが、取得したデータが最新のデータであるとは限りません。
- 分断耐性:分散システムでネットワークパーティションの障害が発生した場合でも、ネットワーク環境全体に障害が発生しない限り、一貫性と可用性を満たす外部サービスを提供できる必要があります。
- 分散システムには、一貫性(Consistency)、可用性(Availability)、および分断耐性(Partition tolerance)の3つの項目のうち2つだけを同時に満たすことができます。
これら3つの基本要件のうち、同時に満たすことができるのは2つだけです。Pは必須であるため、CPとAPのどちらかのみを選択できます。spring cloud システムでの登録センターerukaがAPを実装することと比較して、ZookeeperはCPを保証します。
BASE理論
BASEは、Basicly Available(利用可能な基本的な)、Soft-state(ソフト状態)、およびEventallyConsistentの3つのフレーズの略語です。
- 利用可能な基本的な:分散システムに障害が発生した場合、可用性の一部(サービスの低下、ページの低下)が喪失される可能性があります。
- ソフト状態:分散システムで中間状態を許可します。また、中間状態はシステムの可用性に影響を与えません。 ここでの中間状態とは、data replication(レプリケーション・ノード)間のデータ更新を遅らせることができる結果整合性を指します。
- 結果整合性:data replicationsは、一定期間にわたって一貫性に達します。
BASE理論は、CAPの一貫性と可用性を統合した結果です。理論の中心的な考え方は、強い一貫性を実現することはできませんが、各アプリケーションは、システムを結果整合性に到達させるための適切な方法を採用できます。
関連リソース
Zookeeperの公式サイト:https://zookeeper.apache.org/
コメントを残す