一、前言
在前面學習了Zookeeper中服務(wù)器的三種角色及其之間的通信,接著學習對于客戶端的一次請求,Zookeeper是如何進行處理的。
二、請求處理
2.1 會話創(chuàng)建請求
Zookeeper服務(wù)端對于會話創(chuàng)建的處理,大體可以分為請求接收、會話創(chuàng)建、預(yù)處理、事務(wù)處理、事務(wù)應(yīng)用和會話響應(yīng)六大環(huán)節(jié),其大體流程如
1. 請求接收
(1) I/O層接收來自客戶端的請求。NIOServerCnxn維護每一個客戶端連接,客戶端與服務(wù)器端的所有通信都是由NIOServerCnxn負責,其負責統(tǒng)一接收來自客戶端的所有請求,并將請求內(nèi)容從底層網(wǎng)絡(luò)I/O中完整地讀取出來。
(2) 判斷是否是客戶端會話創(chuàng)建請求。每個會話對應(yīng)一個NIOServerCnxn實體,對于每個請求,Zookeeper都會檢查當前NIOServerCnx