前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Newsql中常提到的Raft协议是何神物?

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

原创
作者头像
杨漆
修改2021-01-28 15:07:29
4010
修改2021-01-28 15:07:29
举报
文章被收录于专栏:Tidb

**导读**

> 作者:杨漆

> 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 数据库可扩展性以及跨数据中心场景下的高可用性

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档