背景知识
本场景主要涉及以下云产品和服务:
云服务器ECS
云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。一台云服务器ECS实例等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的组件。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。
PolarDB-X
PolarDB-X是一款面向超高并发、海量存储、复杂查询场景设计的云原生分布式数据库系统。其采用Shared-nothing与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,具备企业级、云原生、高可用、高度兼容MySQL系统及生态等特点。
PolarDB-X最初为解决阿里巴巴天猫“双十一”核心交易系统数据库扩展性瓶颈而生,之后伴随阿里云一路成长,是一款经过多种核心业务场景验证的、成熟稳定的数据库系统。PolarDB-X的核心特性如下:
水平扩展
PolarDB-X采用Shared-nothing架构进行设计,支持多种Hash和Range数据拆分算法,通过隐式主键拆分和数据分片动态调度,实现系统的透明水平扩展。
分布式事务
PolarDB-X采用MVCC+TSO方案及2PC协议实现分布式事务。事务满足ACID特性,支持RC/RR隔离级别,并通过一阶段提交、只读事务、异步提交等优化实现事务的高性能。
混合负载
PolarDB-X通过原生MPP能力实现对分析型查询的支持,通过CPU quota约束、内存池化、存储资源分离等实现了OLTP与OLAP流量的强隔离。
企业级
PolarDB-X为企业场景设计了诸多内核能力,例如SQL限流、SQL Advisor、TDE、三权分立、Flashback Query等
云原生
PolarDB-X在阿里云上有多年的云原生实践,支持通过K8s Operator管理集群资源,支持公有云、混合云、专有云等多种形态进行部署,并支持国产化操作系统和芯片。
高可用
通过多数派Paxos协议实现数据强一致,支持两地三中心、三地五副本等多种容灾方式,同时通过Table Group、Geo-locality等提高系统可用性。
兼容MySQL系统及生态
PolarDB-X的目标是完全兼容 MySQL,目前兼容的内容包括MySQL协议、MySQL大部分语法、Collation、事务隔离级别、Binlog等。
PolarDB-X架构:
如上图所示,PolarDB-X采用Shared-nothing与存储计算分离架构进行设计,系统由计算节点、存储节点、元数据服务和日志节点四个核心组件组成。在本次实验部署中,您可以把四个核心组件想象成四个docker容器或者是四个进程,相互之间协作,组合构建完整的PolarDB-X。
计算节点(CN, Compute Node)
计算节点是系统的入口,采用无状态设计,包括 SQL 解析器、优化器、执行器等模块。负责数据分布式路由、计算及动态调度,负责分布式事务 2PC 协调、全局二级索引维护等,同时提供 SQL 限流、三权分立等企业级特性。
存储节点(DN, Data Node)
存储节点负责数据的持久化,基于多数派 Paxos 协议提供数据高可靠、强一致保障,同时通过 MVCC 维护分布式事务可见性。
元数据服务(GMS, Global Meta Service)
元数据服务负责维护全局强一致的 Table/Schema, Statistics 等系统 Meta 信息,维护账号、权限等安全信息,同时提供全局授时服务(即 TSO)。
日志节点(CDC, Change Data Capture)
日志节点提供完全兼容 MySQL Binlog 格式和协议的增量订阅能力,提供兼容 MySQL Replication 协议的主从复制能力。