Katta如何使用Zookeeper-数据更新

 
当Client发起更新数据的请求后,ZkServer会随后发起多个处理过程:
1. Propose过程,发起会签请求,即试图获取各个Follower的同意,以便进行数据更新
2. ACK过程,即Follower发出同意响应
3. Commit过程,Leader向Follower发出数据更新的通知
具体如下图:
Katta如何使用Zookeeper-数据更新_第1张图片
值得注意的地方:
1. ProposalRequestProcessor 向CommitProcessor发出的Process调用,这个调用会一直等待,直到Leader通知可以进行数据更新
2. ProposalRequestProcessor 向SyncRequestProcessor发出的Process调用,这个调用会发出Leader本身的ACK响应
3. Leader的ProcessAck方法会记录各个Follower和Leader的ACK响应,直到达到多数要求【简单多数,即ACK响应数要多于Server节点的半数】,才会发出Commit通知

你可能感兴趣的:(server)