Raft ReadIndex 有什么神奇之处?

idea at 
Raft ReadIndex 有什么神奇之处?的配图
其实, 工程上的一致性读, 本质是操作的先后顺序. 只要让读操作在某一个节点上发生的顺序, 在我们预想的那个写操作之后, 这时只依赖该节点, 就能保证一次正确的一致性读. 例如, 假设我们知道某次写操作的序号是 idx, 对应某条编号为 idx 的日志, 只要我们等某个节点 apply 了这条日志, 然后直接读状态机就可以了, 就能满足强一致性的定义.但是, 虽然可以要求客户端请求读操作时带上它所依赖的那次写操作的编号, 但工程上并不合理, 所以, 只能由集群节点自己找到那次写操作的编号.收到读请求的节点, 向其它节点发送一个请求, 询问最新的日志编号是多少, 如果收到全部节点的回应, 那么自……