目前 3 台机器 master(2core 4g), node1(1core 1g) node2(1core 2g)
zookeeper 的服务启动顺序为 master -> node1 -> node2
发现 node1 选举为 leader 了
不是根据机器好坏来的吗?
1
misaka19000 2018-12-12 15:15:15 +08:00 via Android
zk 用的是 zaxb 算法吧
|
2
p2p 2018-12-12 15:16:50 +08:00
选举投票 myid 大的优先 zxid 大的优先
|
3
Miiiz 2018-12-12 15:20:52 +08:00
优先检查 zxid,大的胜出,如果 zxid 一样则 myid 大的胜出
|
4
Wisho 2018-12-12 15:42:42 +08:00
zk 用的是 zab 协议吧,优先选 zxid (浅显理解成记录 id )大的,zxid 相同时优先选机器 id 大的。
|
5
bravoer 2018-12-12 16:57:55 +08:00
去看 zab 的论文 有详细的说明。
|
6
scalaer OP |
7
xiaoxinshiwo 2018-12-12 19:34:33 +08:00
raft ? paxos ?
https://raft.github.io/ |
8
TheCure 2018-12-12 22:10:19 +08:00
原理一致 https://zhuanlan.zhihu.com/p/40395929
简单来说就是所有机器维护一个 Term, 并且保证在一个相同的 Term 内只投一次票 |