1.首先建立一個ServerConnectionFactory(這裡先分析基于direct NIO,3.4引入了netty),用來監聽zkClient的消息并建立ServerConnection處理讀寫請求
2.ZookeeperServer進行資料恢複:建立ZKDatabase并将PlaybackListener傳入,然後ZKDB首先從snapshot中加載有效的鏡像建構datatree,加載完成後由Playbacklistener對已經送出但還沒有apply的log進行reapply,并将最後的zkXid傳回
3.ServerConnectionFactory進行session清理并執行一次checkpoint
4.啟動ZookeeperServer,同時SessionTracker等線程,将啟動請求發送到RequestProcess chain處理後,最後将ServerConnectionFactory傳入.
<a href="http://blog.51cto.com/attachment/201310/020341628.png" target="_blank"></a>
本文轉自MIKE老畢 51CTO部落格,原文連結:http://blog.51cto.com/boylook/1314167,如需轉載請自行聯系原作者