核心特性—高可用性与容灾

简介: 在生产环境部署数据库时,往往会搭建多个副本(Replica),保证数据库集群的高可用性以及数据的持久性。传统的部署方式是一主一备,即主备间通过日志同步数据变更。但是主备复制存在先天性缺陷,以常见的MySQL半同步复制为例,一旦网络延迟超出阈值,同步就会退化到异步复制。此时如果主节点宕机,副本可能丢失已提交的数据,也就是常说的副本不一致。

为了保证副本间的强一致性,现代数据库往往采用以Paxos为代表的多数派复制协议。Paxos通常要求集群中至少存在3个节点,每次写入都要获得超过半数节点的确认,即便其中1个节点宕机,集群也仍然能正常提供服务。Paxos算法能够保证副本间的强一致性,彻底解决副本不一致问题。

PolarDB-X在副本复制方面采用了X-Paxos。X-Paxos是阿里巴巴自研的Paxos协议实现,起源于AliSQL(阿里内部的MySQL分支)。基于朴素的Paxos实现,它在功能、性能上都做了大量优化,且经历了数十载的双十一考验,稳定可靠。p326300.pngX-Paxos实现了Multi-Paxos算法,通常有一个相对稳定的Leader节点用于处理读写请求。如果Leader节点因为某些意外情况发生宕机或超时,Follower节点就会重新发起选主投票,如果得到超过半数的选票则成为新的Leader。Logger节点只负责保存日志以及参与Paxos投票。Learner节点通常在只读实例中,它仅仅接受主机群的变更日志,不参与Paxos投票。

此外,X-Paxos还支持动态添加删除节点、权重化选主、Leader主动回切等企业级特性,允许用户根据业务需求灵活定义部署方式。

多机房部署

基于Paxos复制协议,PolarDB-X可以部署到多个机房中,以实现机房级容灾。常见的部署方式有同城三机房、两地三中心等,其中后者主要应用在混合云部署中。由于Paxos协议的特性,通常三个机房中有一个主机房负责对外提供服务。

跨地域多活

如果业务有多活需求,出于性能考虑,通常建议在不同地域分别部署PolarDB-X实例,彼此之间通过DTS等数据同步工具相连接。数据要根据实际业务需求做合理的分区,以保证各个地域的数据不会相互冲突。PolarDB-X全局变更日志特性支持实例到实例的数据同步。

相关文章
|
运维 Kubernetes 安全
|
关系型数据库 MySQL Linux
Centos7 yum如何下载离线安装包?(详解)
相信大家也遇到过这种问题,在没有外网的情况下,想安装一个服务却安装不了,这期我就教大家如何如何下载离线安装包,在内网中使用;
3308 0
Centos7 yum如何下载离线安装包?(详解)
|
安全 Java Maven
关于代码混淆,看这篇就够了
关于代码混淆,看这篇就够了
2277 4
|
3月前
|
数据采集 存储 自然语言处理
向量数据库实战——零基础搭建专属RAG知识库
本文手把手教你零代码搭建向量数据库,构建个人大模型知识库:5步完成数据清洗、入库、检索配置与测试,无需编程/本地GPU,10分钟上手RAG核心环节,解决大模型“记不住专属知识”难题。(239字)
|
设计模式 存储 Java
【设计模式】【行为型模式】备忘录模式(Memento)
一、入门 什么是备忘录模式? 备忘录模式(Memento Pattern)是一种行为设计模式,用于在不破坏封装性的前提下,捕获并外部化一个对象的内部状态,以便在需要时恢复该状态。它通常用于实现撤销操作
367 8
|
Python
Python cheatsheet 速查表
【9月更文挑战第7天】这是一份Python速查表,涵盖基础语法、数据结构、函数、模块与包、面向对象编程及异常处理。包括变量定义、数据类型、运算符、控制流、列表、元组、字典、集合的操作,函数定义与调用,模块导入,类定义与对象创建,以及异常捕获与处理。适用于快速查阅Python基本用法。
611 1
|
缓存 容灾 架构师
极客时间架构实战营总结
极客时间架构实战营总结
979 0
|
存储 网络协议 大数据
一文读懂RDMA: Remote Direct Memory Access(远程直接内存访问)
该文档详细介绍了RDMA(远程直接内存访问)技术的基本原理、主要特点及其编程接口。RDMA通过硬件直接在应用程序间搬移数据,绕过操作系统协议栈,显著提升网络通信效率,尤其适用于高性能计算和大数据处理等场景。文档还提供了RDMA编程接口的概述及示例代码,帮助开发者更好地理解和应用这一技术。

热门文章

最新文章