差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
docs:internals:consensus [2016/12/13 23:18]
bossma [一致性模式]
docs:internals:consensus [2016/12/13 23:22] (当前版本)
bossma [Consul中的Raft]
行 45: 行 45:
 只有Consul Server节点参与Raft,并作为对等节点集的部分。所有的Client节点转发请求到Server节点。这样设计的部分原因是,随着更多的成员加入对等节点集,法定数目的大小也会随之增长。这会产生性能问题,因为相比少数机器,你可能需要等待上百个机器对日志记录达成一致。 只有Consul Server节点参与Raft,并作为对等节点集的部分。所有的Client节点转发请求到Server节点。这样设计的部分原因是,随着更多的成员加入对等节点集,法定数目的大小也会随之增长。这会产生性能问题,因为相比少数机器,你可能需要等待上百个机器对日志记录达成一致。
  
-在入门指南开始,一个单独的Consul Server被设置为“bootstrap”模式。这个模式允许它选择自己作为leader。一旦leader被选举出来,其它的Server可以在保持一致性和安全性的方式下添加到这个对等节点集中。最终,只要第一批Server节点被加入,bootstrap模式就可以被禁用了。看[[/​docs/​guides/​bootstrapping这里]]了解详细。+在入门指南开始,一个单独的Consul Server被设置为“bootstrap”模式。这个模式允许它选择自己作为leader。一旦leader被选举出来,其它的Server可以在保持一致性和安全性的方式下添加到这个对等节点集中。最终,只要第一批Server节点被加入,bootstrap模式就可以被禁用了。看[[/​docs/​guides/​bootstrapping|这里]]了解详细。
  
 因为所有的Server都参与并作为对等节点集的部分,他们都知道当前的leader。当一个RPC请求到达某个非leader Server,这个请求会被转发到leader。如果这个RPC是一个查询,意味着它是只读的,leader基于有限状态机的当前状态产生这个结果。如果这个RPC是个事务类型,意味着它会修改状态,leader将产生一个新的日志记录,并使用Raft应用它。一旦日志记录被提交,且应用到有限状态机,则事务完成。 因为所有的Server都参与并作为对等节点集的部分,他们都知道当前的leader。当一个RPC请求到达某个非leader Server,这个请求会被转发到leader。如果这个RPC是一个查询,意味着它是只读的,leader基于有限状态机的当前状态产生这个结果。如果这个RPC是个事务类型,意味着它会修改状态,leader将产生一个新的日志记录,并使用Raft应用它。一旦日志记录被提交,且应用到有限状态机,则事务完成。