ZookeeperServer,顾名思义就是一个Zookeeper节点的的服务端,为处理请求,建立了一个如下的处理链:PrepRequestProcessor -> SyncRequestProcessor -> FinalRequestProcessor。
有如下线程为其提供服务:
1、PrepRequestProcessor: * This request processor is generally at the start of a RequestProcessor
* change. It sets up any transactions associated with requests that change the
* state of the system. It counts on ZooKeeperServer to update
* outstandingRequests, so that it can take into account transactions that are
* in the queue to be applied when generating a transaction.
接收到的请求先由该线程来处理。完成如下的一些操作:
a)OpCode.create:创建节点;
b)OpCode.delete:删除节点;
c)OpCode.setData:更新节点值;
d)OpCode.setACL:更新节点ACL;
e)OpCode.createSession:创建Session;
f)OpCode.closeSession:关闭Session;
2、SyncRequestProcessor: 该线程将请求作为日志写到磁盘中,当请求累计到一定数量时,写到磁盘,且只有当请求都写到磁盘后,请求才会传递到下一个处理环节。