PolarDB-X是阿里巴巴自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。

云原生+MySQL生态

PolarDB-X已作为标准云产品在世界范围内的13个地区提供服务。依托云资源和容器化部署能力,PolarDB-X可以在数分钟内完成集群创建和变配,整个过程中用户无需进行手工干预。同时PolarDB-X支持按量付费模式,从而帮助用户精准降本。

阿里云及开源社区的多种生态工具对PolarDB-X持续提供不断完善的支持,包括但不限于以下产品:数据传输服务DTS、数据库备份DBS、数据管理服务DMS、数据库自治服务DAS、数据集成Data Integration、云监控、性能测试PTS。

PolarDB-X积极拥抱并努力回馈MySQL生态,目前已经形成对MySQL生态从协议、语法、事务行为、账号体系、安全到命令行工具的全方位兼容。

存储计算分离架构

旨在最大限度地发挥其云数据库的弹性扩展能力,PolarDB-X采用了基于存储计算分离的Shared-Nothing系统架构,该架构使用户可以根据业务需要进行分层容量规划。

PolarDB-X的存储节点(DN)基于阿里巴巴自研的跨可用区部署的三节点强一致数据库X-DB构建。X-DB使用InnoDB引擎,提供MySQL语法全兼容能力,以及对复杂查询的处理能力。X-DB结合PolarDB-X面向HTAP的CBO查询优化器,可精确控制计算下推行为,从而获得更佳的整体性能。

透明分布式体验

让用户以使用单机MySQL数据库的体验,操作分布式数据库是PolarDB-X一贯追求的目标。为此PolarDB-X提供了简单易用的透明分布式能力:

默认主键拆分,让移植到PolarDB-X的数据和业务摆脱对设计“分区键”的依赖。

高性能强一致分布式事务,PolarDB-X采用自研X-Paxos协议,保证数据存储在故障切换过程中RPO=0的基础上,使用TSO策略和分布式的MVCC能力保证了分布式事务的隔离性和一致性。

分布式线性扩展,PolarDB-X基于一致性Hash的分区策略,有效的进行负载均衡和热点抑制,且在扩展过程中保持计算下推和数据一致性的同时实现业务零感知,并行和流控能力为扩展期间业务连续性提供了有力保障。

全局Binlog和全局一致性备份,分别解决分布式数据库各节点数据库向下游流转的难题及各节点备份时间差造成的恢复一致性问题。

多种部署形态

为满足不同行业客户对部署形态的需求,PolarDB-X提供公共云、专有云、专有云DBStack、软件版四种部署形态。我们今天就从几个方面简单部署一下Polardb-X。

在我们开始部署之前,我们放一张官网经典的架构图

Polardb训练营-本地部署 PolarDB-X_数据库

我按照个人理解,说一下相关组件的功能:

CN 链接过来的

DN 存储数据

GMS  会为整个系统提供时间戳,在分布式事务里面,提供全局时间戳。也就是TSO  库表结构,账号信息这些

CDC 全局日志的组件,全局binlog,按照时间顺序,记录着系统内队列,按增量日志的形式

本文简述如何使用Kubernetes安装PolarDB-X:

本步骤将指导您如何创建一个简单的Kubernetes集群并部署PolarDB-X Operator ,使用Operator部署一个完整的PolarDB-X集群。

1,安装kubectl

Polardb训练营-本地部署 PolarDB-X_数据库_02

对下载的文件进行赋权以及目录更换,以及minikube下载安装

Polardb训练营-本地部署 PolarDB-X_数据库_03

安装Helm3

Polardb训练营-本地部署 PolarDB-X_分布式数据库_04minikube是由社区维护的用于快速创建Kubernetes测试集群的工具,适合测试和学习Kubernetes。

新建账号galaxykube,并将galaxykube加入docker组中。minikube要求使用非root账号进行部署,所有需要新建账户

Polardb训练营-本地部署 PolarDB-X_mysql_05

minikube的启动

Polardb训练营-本地部署 PolarDB-X_数据库_06

返回以上结果表示minikube已经正常运行,minikube将自动设置kubectl的配置文件

部署 PolarDB-X Operator。执行如下命令,创建一个名为polardbx-operator-system的命名空间。 

Polardb训练营-本地部署 PolarDB-X_分布式数据库_07

查看PolarDB-X Operator组件的运行情况

Polardb训练营-本地部署 PolarDB-X_mysql_08

部署 PolarDB-X 集群。执行如下命令,部署一个PolarDB-X集群,它包含1个GMS 节点、1个 CN节点、1个DN节点和1 个CDC节点。

Polardb训练营-本地部署 PolarDB-X_分布式数据库_09

当PHASE显示为Running时,表示PolarDB-X集群已经部署完成。就可以连接并体验PolarDB-X分布式数据库了。 

我们登陆数据库,查看其状态以及创建一个auto的样本数据库

Polardb训练营-本地部署 PolarDB-X_mysql_10

创建一个临时测试表,设定分区键为主键id列,分8个分片,并插入相关数据

Polardb训练营-本地部署 PolarDB-X_数据库_11

我们观察其分片信息

Polardb训练营-本地部署 PolarDB-X_mysql_12

对分布式有了一个大概的认识,我们一起进步成长吧。