Go问答 raft 读数据的时候,是从 leader 里读吗?

fractal · 2020年05月21日 · 129 次阅读

想请教各位大佬三个问题

raft 读数据的时候,是从 leader 里读吗?

个人猜测是这样的,不过想确认一下。

原因有两个:

  1. 根据这篇论文 的第八章 Clients of Raft send all of their requests to the leader.
  2. 假设有 3 个节点,一个节点挂了,根据 majority,leader 这个时候可以 happy 的 append entity 和 exec entity

    那么如果是从那个挂了的节点读,是没办法读到最新的数据的。除非 raft 有其他机制让这个和 master 保持一致,看起来是没有的。

第二个问题

etcd 是基于 raft 的。换句话说,增加 etcd 的节点,只能增加可用性,但是没有办法增加读写性能?

etcd 应该用了分片技术 (sharding),所以增加机器能增加不同 key 的读写性能。

第三个问题

zookeeper 可以从非 leader 节点读数据,那么,更多的节点,可以更好的增加读的性能?

感谢各位

更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio
fractal 关闭了讨论 05月22日 10:13
fractal 重新开启了讨论 05月22日 10:13
fractal 关闭了讨论 05月24日 19:05
fractal 重新开启了讨论 05月24日 19:16
fractal 关闭了讨论 05月24日 19:29
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册