加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

技术干货总结:分布式系统常见同步机制

发布时间:2019-08-23 01:53:12 所属栏目:建站 来源:IT技术分享
导读:布式体系为担保数据高可用,必要为数据生涯多个副本,随之而来的题目是如安在差异副本间同步数据?差异的同步机制有差异的结果和价钱,本文实行对常见漫衍式组件的同步机制做一个小结。 常识趣制 有一些常用的同步机制,对它们也有很多评价的维度,先看看大

TiKV 行使的是 Raft 协议来实现写入数据时的同等性。参考 三篇文章相识 TiDB 技能黑幕——说存储

  • 行使 Raft,写入时必要半数以上的节点写入乐成才返回,宕机节点不高出半数则数据不丢失。
  • TiKV 将数据的 key 按 range 分成 region,写入时以 region 为粒度举办同步。
  • 写入和读取都通过 leader 举办。每个 region 形本钱身的 raft group,有本身的 leader。

Zookeeper

Zookeeper 行使的是 Zookeeper 本身的 Zab 算法(Paxos 的变种?),参考 Zookeeper Internals

  • 数据只可以通过主节点写入(哀求会被转发到主节点举办),可以通过恣意节点读取
  • 主节点写入数据后会广播给全部节点,高出半数节点写入后返回客户端
  • Zookeeper 不担保数据读取为最新,但通过“单一视图”担保读取的数据版本不“回退”

小结

假如体系对机能要求高以至于能容忍数据的丢失(Redis),则显然异步的同步方法是一种好的选择。

而当体系要担保不丢数据,则险些只能行使同步复制的机制,看到 Kafka 和 Elasticsearch 不谋而合地行使了 PacificA 算法(小我私人以为可以当作是 2PC 的变种),虽然这种要领的相应制约于最慢的副本,因此 Kafka 和 Elasticsearch 都有相干的机制将慢的副本移除。

虽然看起来 Paxos, Raft, Zab 等新的算法比起 2PC 照旧要好的:同等性担保更强,只要半数节点写入乐成绩可以返回,Paxos 还支持多点写入。只不外这些算法也很难正确实现和优化。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读