1.1。 ZABは何のプロトコルですか?
ZABの分散コーディネーションサービスのためのプロトコルは、ZooKeeperの設計された、原子ブロードキャストプロトコル・サポート・クラッシュリカバリを。
ZABのブロードキャストメッセージとクラッシュ回復:プロトコルは、2つの基本モードを含んでいます。
全ときのZooKeeper クラスタは始まったばかりか、リーダーのサーバがダウンして、再起動やネットワーク障害は、複数のサーバーの半分以上になると、何もありませんリーダー正常な通信を維持するために、サーバは、すべてのプロセス(サーバー)クラッシュリカバリモードに、最初の新しい選出されたリーダーのサーバーおよびクラスターをでフォロワーのサーバーに新しいから始まるリーダーとマシンの半分以上のクラスタと、データ・サーバの同期のためのリーダーのデータ・サーバの同期、モードを放送終了リカバリモードの着信メッセージを完了するためには、リーダーのサーバは、トランザクションのための物事の提案を生成し、クライアントのトランザクション要求の受信を開始します要求処理。
1.2。 のznode の種類は何ですか
PERSISTENT- 持続的なノード
手動で削除、またはノードが中に存在していない限り、飼育係に
ephemeral-が一時的なノード
クライアント・セッションの有効期限が切れた後、バインディングクライアントセッションとライフサイクルの一時的なノードは、(クライアントと飼育係切断セッションが必ずしも故障ではない)、クライアントは、すべての一時的なノードが削除されます作成します。
PERSISTENT_SEQUENTIAL- ノードの持続的な順序
同じ永続ノードの基本的な特性は、唯一のノード名は、親によって維持自動増分整数の後ろに付加され、注文の属性を増加させました。
EPHEMERAL_SEQUENTIAL- ノードの一時的な順序
属性の順序の一時的な増加を持つノードの基本的な特性は、ノード名は、親によって維持自動インクリメント整数の後ろに付加されます。
1.3。 ACL アクセス制御機構
UGO (ユーザ/グループ/その他)
現在でのLinux / Unixのファイルシステムが、また、最も広く使用されているアクセス制御モードを使用しました。これは、粗粒のファイルシステムアクセス制御モードです。
ACL (アクセス制御リスト)のアクセス制御リスト
これは3つの側面が含まれています。
[アクセス許可モード(スキーム)
IP :IP 権限制御アドレスサイズ
ダイジェスト:最も一般的に類似して、使用するユーザ名:パスワードコントロールにアクセスするために異なるアプリケーションを区別することは容易に設定する権限識別許可、
世界:アクセス制御最もオープンな方法は、特別なさダイジェスト、一つだけの権限識別子モードがあり、「世界:誰」
スーパー:スーパーユーザー
権限オブジェクト
権限オブジェクトは、ユーザまたは指定エンティティ、例えばに付与された権限を指すのIP アドレスまたはマシンライト。
アクセス権の許可
CREATE :における権限オブジェクト許可、許可データノードを作成するのznodeは、下の子ノードを作成します
DELETE :権限オブジェクトは、データノードの子を削除できるようにするために子ノードの権限を削除
READ :データオブジェクトへの許可されたアクセスを許可する、許可データノードを読み取り、ノードまたはサブノードリストのデータ内容を読み出す、等
WRITE :データノード更新権限認可オブジェクトは、データノードを更新することを可能にします
ADMIN :への権限のデータノードオブジェクトを可能にするデータノード管理権限ACLの設定操作
1.4。 ZKの役割ました
リーダー
スケジューリングとユニークなトランザクション要求ハンドラは、秩序あるクラスタ取引を保証します
クラスタ内の各サービスディスパッチャ
フォロワー
クライアントの要求を処理する非トランザクションにトランザクション要求を転送するリーダーサーバー
トランザクション要求に参加提案投票
参加リーダー選挙
観察者
3.3.0 バージョンでは、クラスタを強化するために非トランザクション機能のクラスタトランザクション処理能力に影響を与えずに、サーバーの役割の後に導入します
クライアントの要求を処理する非トランザクションにトランザクション要求を転送するリーダーサーバー
投票は、任意の形で参加していません。
1.5。 ZKサーバーより具体的に説明することができ、動作条件
サーバは、すなわち、4つの状態を持っている LOOKING 、FOLLOWING 、LEADING 、観測。
LOOKING :探してリーダーの状態を。サーバーがこの状態にあるとき、それは現在のクラスタとは思いませんリーダーは、入力する必要があるリーダー選挙の状態を。
FOLLOWING :フォロワー状態を。これは、現在のサーバーの役割があることを示しているフォロワー。
LEADING :リーダー状態。これは、現在のサーバーの役割があることを示しているリーダー。
観測:オブザーバー。これは、現在のサーバーの役割があることを示しているオブザーバー。
1.6。 ZK の時計のメカニズムは永久的です
NO。
1.7。 ZK 共通クライアントがどのような
Javaのクライアント:ZKが来zkclient とApacheのオープン・ソース・キュレーターを
1.8。 と分散ロック ZK どのように達成するために
2つの実装がありますが、特定のコースのコードを見て
1.9。 ZK デフォルトの通信フレームワークとは何ですか
NiOが、変更することができますネッティーを
1.10。 メッセージ放送工程
リットルリーダー要求メッセージを受信した後は、メッセージがグローバルに一意に割り当てられている64 位の自己増加IDを、呼び出されますzxid 、によってzxid サイズより整然とした原因にこの機能を実現します。
LリーダーFIFOキューによって(経由TCP この機能グローバル秩序を達成するために、プロトコルを実装する)であろうとzxid 提案としてメッセージ(提案)全てに分配フォロア。
L フォロワーが受け取る提案、最初の提案は、ハードドライブに書き込まれ、成功した後、ハードディスクへの書き込みリーダー戻ってACK 。
リットル リーダーの有効な数の受信ACKをした後、リーダーのすべてのフォロワーがお送りCOMMIT コマンドは、メッセージをローカルに実行されます。
L フォロワ受信したメッセージがCOMMIT コマンドを、メッセージが実行されます
1.11。 リーダーシップの選挙プロセス
lの 各サーバーは、票を発行します、彼らは自分自身を投票するです初めて。投票情報:( MYID 、ZXID )
lは 、各サーバからの票を集めます
リットルの 処理投票と、再び処理ロジックを投票:最初の比較、ZXIDを、その後比較MYIDを
lの 統計票限り、より多くの投票機の半分以上は、同じ情報を受け取り、あなたが決めることができリーダー
lは 、サーバのステータスを変更します