zookeeper 关于事务提交的一点疑惑

2018-12-07 11:28:56 +08:00
 Miiiz

当一个事务请求得到过半 follower 的 ACK 响应时,leader 会下发 commit 消息给 learner,leader 自身也会 commit,然后其实就是各个角色进入 CommitProcessor-》 FinalRequestProcessor,然后去执行事务刷新到内存,这个操作的话,肯定会存在部分失败,部分失败,那 leader 失败或者 learner 失败了,就会出现数据不一致的情况,这该怎么办?希望有大佬给点提示,感激不尽

5261 次点击
所在节点    ZooKeeper
3 条回复
Miiiz
2018-12-07 13:39:24 +08:00
有没有大佬解答一下呢
pifuant
2018-12-07 17:09:52 +08:00
建议先熟悉下 共识算法 paxos

简单来说, 一个操作, 只要被 majority 接受了, 就表示成功了, 这时只要保证 majority 存活, 无论 leader 还是 follower 挂了, 都不会影响结果
JasonLaw
2022-05-27 22:58:50 +08:00
建议看一下 <amp-youtube data-videoid="4r8Mz3MMivY" layout="responsive" width="480" height="270"></amp-youtube>&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB&index=6 和 <amp-youtube data-videoid="4r8Mz3MMivY" layout="responsive" width="480" height="270"></amp-youtube>&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB&index=7 ,还有 https://raft.github.io/raft.pdf

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/515293

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX