勉強前イメージ
なんか掃除するやつ?
クリーニングする的なやつかと思うけど・・・
調査
ZooKeeper とは
分散プロセスとアプリケーションを調和させるソフトウェアで
簡単に言うと分散のアプリケーションを構築する上で必要な機能を提供するサービスです。
アパッチソフトウェア財団からオープンソースとして公開されています。
また、このようなサービスのことを コンビネーションサービス
と呼びます。
主な機能
- 共有設定
複数のインスタンスで使用する設定の共有ファイルをZookeeperに保存し、
各インスタンスはZookeeperから設定ファイルを取得することで同一の設定を行うことが出来ます。
- 分散ロック
分散環境で同時にリソースを書き換えると整合性が取れなくなってしまうので、
そのためのロック機能があります。
- メンバー取得
インスタンスがエフェメラルノード(データの読み書きは出来るがプロセスが切れると自動消失)を設定しておくことで、
インスタンスの一覧が取得でき、アクティブ状態のインスタンスに接続できます。
- ウォッチ
ノードをウォッチの対象とすると、そのノードに変更があった際はプロセスに変更が通知され
設定ファイルのリロードなどのトリガーに使用されます。
- マスター選出
マスターのインスタンスがデータの管理を行うが、マスターがダウンすると残りのインスタンスからマスターが選ばれ、
更新を行うことが出来る。
特徴
- 高スループット/低レイテンシー
各データはメモリ内に保存されるので、高スループット 低レイテンシーが実現できます。
- 冗長化
複数のインスタンスにインストールし利用できます。
可用性を高め、性能向上も出来ます。
- 階層的名前空間
Zookeeperはデータをな前空間で保存します。
複数のインスタンスに分散しているプロセスを名前空間で共有することで分散処理を進めます。
勉強後イメージ
聞いたことあったけど全然知らなかった
分散処理のめんどくさいことを引き受けてくれるものなのね。
どうやって導入するとかはまだイメージついてないけど、そういうものって覚えておく。