07_请求处理链
2021-04-13 23:02:35 0 举报
zookeeper请求处理链
作者其他创作
大纲/内容
2
Leader服务器事务投票处理器1、对于非事务请求,之间交给CommitProcessor处理器,不做其他处理2、对于事务请求,除了交给CommitProcessor处理器,还会交给SyncRequestProcessor处理器做事务日志记录
committedLog保存了持久化后的快照信息,防止服务端挂掉后无法恢复后续的信息,从而保证了数据的一致性
事务提交处理器1、对于非事务,直接交给下一级处理器2、对于事务请求,等待投票结果,知道事务可以提交
RequestProcessors请求处理器
FinalRequestProcessor处理器处理完此事务之后,再将其从toBeApplied队列中删除
会有多个请求处理器,形成一条链,当接收到请求后就会通过请求处理器
CommitProcessor处理器
3
接收客户端的请求,生成txn事务以及修改节点记录,线程不断的从队列中获取请求,拿到父节点信息,ACl校验,临时节点和顺序节点的逻辑处理,最后生成父类和新增节点记录,放入outstandingChanges队列中,最后传入下一个处理器
ToBeCommitProcessor处理器
有一个toBeApplied队列,用来存储被CommitProcessor处理过的可被提交的事务
SyncRequestProcessor
从outstandingChanges队列中获取请求,更新DataTree,触发watcher机制,构造Response并通过NIOServerCnxn中的SendResponse()方法,将Response转化成ByteBuffer返回给客户端
Leader服务器的请求预处理器
将队列中的事务最终提交给下一处理器
依次往下传
ProposalRequestProcessor处理器
从队列中取
FinalReqeustProcessor
submittedRequests队列
AckRequestProcessor处理器
负责将txn同步到磁盘,并且进行快照
PrepRequestProcessor处理器
0 条评论
回复 删除
下一页