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

导读

作者:杨漆
16年关系型数据库管理,从oracle 9i 、10g、11g、12c到Mysql5.5、5.6、5.7、8.0 到TiDB获得3个OCP、2个OCM;运维路上不平坦,跌过不少坑、熬过许多夜。把工作笔记整理出来分享给大伙儿,希望帮到大家少走弯路、少熬夜。

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

答:
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 数据库可扩展性以及跨数据中心场景下的高可用性在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值