暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Newsql中常提到的Raft协议是何神物?

原创 John2020 2020-11-23
607

答:
Raft 是一种分布式一致性算法,在Newsql代表性数据库TiDB 集群的多种组件中,PD 和TiKV 都通过Raft 实现了数据的容灾。

Raft 的灾难恢复能力通过如下机制实现:

  1. Raft 成员的本质是日志复制和状态机。Raft 成员之间通过复制日志来实现数据同步;Raft 成员在不同条件下切换自己的成员状态,其目标是选出leader 以提供对外服务。
  2. Raft 是一个表决系统,它遵循多数派协议,在一个Raft Group 中,某成员获得大多数投票,它的成员状态就会转变为leader。也就是说,当一个Raft Group 还保有大多数节点(majority) 时,它就能够选出leader以提供对外服务。

遵循Raft 可靠性的特点,放到现实场景中:

  1. 想克服任意1 台服务器(host) 的故障,应至少提供3 台服务器。
  2. 想克服任意1 个机柜(rack) 的故障,应至少提供3 个机柜。
  3. 想克服任意1 个数据中心(dc,又称机房)的故障,应至少提供3 个数据中心。
  4. 想应对任意1 个城市的灾难场景,应至少规划3 个城市用于部署。

由此可见原生Raft协议对于偶数副本的支持并不是很友好,考虑跨城网络延迟影响,或许同城三数据中心是最适合部署Raft 的高可用及容灾方案。

备注:
NewSQL 数据库TiDB 兼顾了传统关系型数据库的优良特性 + NoSQL 数据库可扩展性以及跨数据中心场景下的高可用性

详细可关注微信公众号: 数据库工作笔记 Sharing
https://mp.weixin.qq.com/s/3rxy0oeuTHM4HkxLUXeGpQ
3.jpg

最后修改时间:2020-11-23 22:00:21
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论