技术干货总结:分布式系统常见同步机制
发布时间:2019-08-22 21:20:53 所属栏目:优化 来源:IT技术分享
导读:布式系统为保证数据高可用,需要为数据保存多个副本,随之而来的问题是如何在不同副本间同步数据?不同的同步机制有不同的效果和代价,本文尝试对常见分布式组件的同步机制做一个小结。 常见机制 有一些常用的同步机制,对它们也有许多评价的维度,先看看大
TiKV 使用的是 Raft 协议来实现写入数据时的一致性。参考 三篇文章了解 TiDB 技术内幕——说存储
Zookeeper Zookeeper 使用的是 Zookeeper 自己的 Zab 算法(Paxos 的变种?),参考 Zookeeper Internals
小结 如果系统对性能要求高以至于能容忍数据的丢失(Redis),则显然异步的同步方式是一种好的选择。 而当系统要保证不丢数据,则几乎只能使用同步复制的机制,看到 Kafka 和 Elasticsearch 不约而同地使用了 PacificA 算法(个人认为可以看成是 2PC 的变种),当然这种方法的响应制约于最慢的副本,因此 Kafka 和 Elasticsearch 都有相关的机制将慢的副本移除。 当然看起来 Paxos, Raft, Zab 等新的算法比起 2PC 还是要好的:一致性保证更强,只要半数节点写入成功就可以返回,Paxos 还支持多点写入。只不过这些算法也很难正确实现和优化。
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |