TiDB学习笔记(九)-数据库高可用设计-创新互联
TiDB Server的高可用
创新互联服务项目包括云冈网站建设、云冈网站制作、云冈网页制作以及云冈网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,云冈网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到云冈省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!- 无状态
- 数据由TiKV存储
- TiDB之间不通信(通过TiKV和PD)
- 随时增加或删除
- 本身不支持Failover,需业务配合
TiKV的高可用
- 故障恢复
- 少数follower故障或隔离不影响Leader服务
- Leader故障或隔离后,follower心跳超时会自动开始选举流程
- 只有有一般以上节点存活,一定能选出新的Leader,从而恢复服务
- 数据一致性
- 写入数据时,Leader会保证日志被复制到大多数节点
- 当一部分节点故障或隔离后,只要有一半以上节点存活,其中至少有一个节点包含最新的日志
- Raft协议选择包含最新日志的节点当做Leader
- 综上所述,符合约束,则不会发生数据丢失
PD的高可用
- Leader节点提供所有服务,Follower为standby
- 依赖内嵌etcd实现leader选举
- 一致性要求
- 分配严格单调递增的timestatmp
- 同一时刻只能有一个leader
TiDB数据库的高可用
- TiDB数据库提供强一致性
- 如不能保证一致性,则拒绝服务
- 在PD和TiKV至少存活半数以上副本情况下,容忍一定限度内的节点宕机或隔离
- PD和TiKV可以自动故障转移至存活的大多数副本处
- TiDB server不保证所有节点同时提供服务
- 故障解决会伴随所有服务的降级
高可用架构设计中考虑的问题
- 网络延迟
- raft协议要求写入复制到最少两个节点(三副本)
- Leader有可能与发起读取的tidb server不在一个区域
- 读取要访问PD获取一次TSO,事务要获取两次
- Raft协议本身
- Raft协议要求写入复制到最少两个节点(三副本)
- 副本数最好为奇数
- 副本的分布最好与TiKV节点的分布相结合
- 其他
- 多活要求
同城三中心架构
- 特点
- 数据副本分布在三个数据中心或可用区
- 同城网络延迟较小
- 多活特性
- RTO较小,RPO为0
- 问题
- 写入与读取延迟高
同城两中心架构
两地三中心架构
- 特点
- 可以保证任一数据中心失效后,服务可用不发生数据丢失
- 问题
- 当两中心失效后,异地灾备不存在大多数副本,服务不可用
- 异地灾备为异步复制,无法保证一致性恢复
- 网络专心成本高
异步复制
- 使用TiDB binlog或者TiCDC组件进行异步复制
- 会丢失数据(RPO不为0)
- 有损恢复后,保证一致性
- 主机群或者从集群内部具有高可用功能
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章名称:TiDB学习笔记(九)-数据库高可用设计-创新互联
URL分享:http://pwwzsj.com/article/dciisd.html