1.発売前
1.起動クラスとしてのQuorumPeerMainを統合しました。単一のマシンまたはクラスターに関係なく、QuorumPeerMainはzkServer.cmdおよびzkServer.shのスタートアップエントリクラスとして構成されます。
2.設定ファイルzoo.cfgを解析します。zoo.cfgは、tickTime、dataDir、clientPort、その他のパラメーターなど、実行時に基本パラメーターを構成します。
3.履歴ファイルクリーナーDatadirCleanupManagerを作成して起動します。トランザクションログとスナップショットデータファイルを定期的にクリーンアップします。
4.現在クラスターモードかスタンドアロンモードかを確認します。スタンドアロンモードの場合は、ZooKeeperServerMainに起動を委託します。
5.設定ファイルzoo.cfgをもう一度分析します。
6.サーバーインスタンスZooKeeperServerを作成します。Zookeeperサーバーは、最初にサーバーインスタンスを作成してから、サーバーインスタンスを初期化します。これには、コネクタ、メモリデータベース、リクエストプロセッサなどのコンポーネントの初期化が含まれます。
2.初期化
1. ServerStatsを作成します。ServerStatsは、Zookeeperサーバーが実行されているときの統計です。
2. ZookeeperデータマネージャーFileTxnSnapLogを作成します。FileTxnSnapLogは、Zookeeperの上位サーバーと基盤となるデータストレージの間のドッキングレイヤーであり、トランザクションログファイルやスナップショットデータファイルなどのデータファイルを操作するための一連のインターフェイスを提供します。Zookeeperは、zoo.cfgファイルで解決されたスナップショットデータディレクトリdataDirおよびトランザクションログディレクトリdataLogDirに基づいてFileTxnSnapLogを作成します。
3.サーバーのtickTimeとセッションのタイムアウト時間制限を設定します。
4. ServerCnxnFactoryを作成します。システムプロパティzooperper.serverCnxnFactoryを構成して、Zookeeper独自のNIOを使用するか、NettyフレームワークをZookeeperサーバーネットワーク接続ファクトリーとして使用するかを指定します。
5. ServerCnxnFactoryを初期化します。Zookeeperは、ServerCnxnFactoryのメインスレッドとしてThreadを初期化してから、NIOサーバーを初期化します。
6. ServerCnxnFactoryのメインスレッドを開始します。スレッド実行メソッドを入力してください。この時点では、サーバーはクライアント要求を処理できません。
7.ローカルデータを復元します。起動時に、ローカルスナップショットデータファイルおよびトランザクションログファイルからのデータリカバリが必要です。
8.セッションマネージャを作成して起動します。Zookeeperは、セッション管理用のセッションマネージャーSessionTrackerを作成します。
9. Zookeeperのリクエスト処理チェーンを初期化します。Zookeeperリクエスト処理メソッドは、Response Chainモードの実装です。クライアント要求を順番に処理する複数の要求プロセッサーがあり、これらのサーバーは、サーバーの始動時に要求処理チェーンに連結されます。
10. JMXサービスに登録します。Zookeeperは、サーバーランタイムの一部の情報をJMXの形式で外部に公開します。
11. Zookeeperサーバーインスタンスを登録します。ZookeeperサーバーインスタンスをServerCnxnFactoryに登録すると、Zookeeperが外部サービスを提供できるようになります。
この時点で、Zookeeperサーバーのスタンドアロンバージョンが起動しています。