开发者学堂课程【PolarDB-X 开源系列课程:第七节:X-Paxos 三副本与高可用(二)】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/1032/detail/15168
第七节:X-Paxos 三副本与高可用(二)
四、DN 部署和优化
1.场景优化
前面这一部分是关于 MySQL 集的一些介绍,接下来先来看一下常用的部署模式。
这里主要说 logger 节点,从协议层面来看,logger 节点不是新的角色。
从协议层面来看,就是一个正常的节点,在大部分情况下是 follow 的,它是只从 leader 节点接收 Binlog 日志,但是不应用,也就是其没有状态机。其只保留一份日志,没有 MySQL实际的整个数据,这个为了节省成本,因为在这种模式下,只有 leader、follow 这两个节点真正有数据,logger 是没有数据的。
logger 节点的引入是为了使用两份数据拷贝的情况下,达到整个集群的数据强一致这种特殊的场景优化的,这就是 logger 节点。
然后还有一个是 learner 节点,Learner 节点就是只读节点,learner 节点会从集群同步 Binlog,它有自己的状态机,它需要应用 Binlog,它其实是一份正常的数据拷贝,但是它是可以对外提供只读服务,这是为了进行计算能力的扩展。
原来只有一个 leader 提供读写服务,这个可以提供计算服务,是一种场景优化。
2.部署模式
下面学习同城三副本,同城三副本在三个可用区各有一个节点,其中包括两个实体节点,一个 logger 节点,那么在这种简化的模式中,相比主备模式,基本上不增加存储成本,但是可以达到强一致性的这种状态,这个在例如公共云上的很多场景,能够达到使用要求。
再更强一点,就是下图中跨城五副本。跨城无副本在协议层面没有什么特殊的地方,就是把这几个副本在多个可用区如何部署,如何配置权重的问题,可以达到中心容灾的效果。这个部署模式先说到这里。其实关于 x-paxos 上的协议,以及 DN 集群如何使用 x-paxos 上协议构建高可用系统的内容,简要的先说这么多。
接下来演示在 x-paxos 的 PolarDB-X 画上整个 PolarDB-X 集群构建之后,它的高可用的情况是怎么样的。