[Zookeeper読み取りメモ-5]サーバーの起動プロセス

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サーバーのスタンドアロンバージョンが起動しています。

 

公開された61元の記事 ウォンの賞賛2 ビュー7302

おすすめ

転載: blog.csdn.net/hebaojing/article/details/105455208