FollowerRequestProcessor是Follower的request processor链条中的第一个,它的主要作用就是把读操作发送到后面的processor来处理,并把写操作封装成为Request请求发送给Leader来处理
FollowerRequestProcessor是一个异步处理的processor,调用processRequest只是把请求发到queuedRequests队列中,真正的处理是在线程中:
- 把请求交给后面的CommitProcessor处理,这里有两类请求:
- 如果是读请求,则CommitProcessor会继续交给FinalRequestProcessor处理,把数据读取后并返回响应包
- 如果是写请求,则CommitProcessor会把request缓存到queuedRequests中,等待Leader发送commit请求之后再交给FinalRequestProcessor来修改本地内存状态
- 对于写操作,调用zks.getFollower().request(request)方法,它实际是吧request封装成一个REQUEST类型的包,发给Leader后等待Leader的响应