如何对 PolarDB-X 集群做动态扩缩容|学习笔记(一)

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 快速学习如何对 PolarDB-X 集群做动态扩缩容

开发者学堂课程【如何对 PolarDB-X集群做动态扩缩容如何对 PolarDB-X 集群做动态扩缩容】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/985/detail/14935


如何对 PolarDB-X 集群做动态扩缩容

 

内容介绍:

一、动手实践系列介绍

二、环境准备

三、演示内容

 

一、动手实践系列介绍

首先是 PolarDB-X 的社区版也就是开源的版本使用过程中按照场景化的方式进行介绍,社区版对应的是阿里云上商业2.0版本,它所面向的群体站在使用的视角是应用开发者、架构师、 DBA 或者是 DevOps 、SRE、学生等等。主要内容围绕PolarDB-X使用的全过程场景化介绍。

图片3.png

按照使用 PolarDB-X 的整个过程当中,一开始会有一个安装部署,安装部署完之后开始去连接它,比如连接池怎么配置,然后会有一个数据的导入,导入之后就可能进行一个业务来测试,业务使用一段时间之后,可能会有扩缩容,这就是本节课要讲的扩缩容的 topic 后续还会讲如何做用 online 方式做 DDL ,还有可能会有些慢查询怎么定位它们怎么解决它们以及后续的一些比如数据不小心被误删了,通过什么样的方式来把它们找回等等。后续的 topic 会根据具体的情况来做一个增加或者调整。

 

二、环境准备

1、系统

CentOS 7、8

macOS

Ubuntu 18、20、21、22

Windows 10+

2、配置

>= 4C8G

3、环境

Docker&K8S

PolarDB-X Release-20220127

PolarDB-X 于1月27日发布新版,新增读写能力、集群扩缩容能力,同时支持 debezium 和 maxwell 增量订阅。

首先得有一个系统,系统是Linux也行是 mac 也可以,Windows测试的比较少理论上也可以。配置的话最好是稍微高一点,留给 PolarDB-X 测试的配置要大于 4C8G ,本次实践需要系统当中已经有 Docker&K8S 它是基于 PolarDB-X  刚发出的最新的版本,就是说这里会插播一个广告,PolarDB-X 于年前发了一个新的版本,新的版本里面新增加了两个比较重要的能力,第一个是读写分离,第二个是集群的扩缩容,原来的版本是没有扩缩容能力的,现在最新的版本里面已经支持扩缩容,同时也支持了 debezium 和 maxwell 的增量订阅的工具。

PolarDB-X 逻辑的架构图:

图片4.png

有四个重要的组成部分,第一个是跟应用端直接交互的称之为计算节点,也叫做 CN,它会负责处理发过来的 SQL 解析、分布式的计算等等。第二个节点是DN,如果出去 mysql 可以简单粗暴地把这个 DN 看成是 mysql 只不过是经过深度定制的 mysql 。第三个是GMS ,GMS 是源数据中心或者存储 information schema信息,同时也会部署全局时间的一个颁发,还有其他的一些功能等等,这是一个全局的中心的一个点,它其实也是一个 DN 也就是 mysql 也可以理解成扮演了特殊角色的 mysql 。最后一个是 CDC 组件,也是全局的增量日志生成的组件,这个组件会把系统当中所有产生的增加日志也就是物理电路进行一个汇聚以及处理,最终生成一个全局的有序的与 mysql 完全兼容的这样一个增长日志,下游的一些系统就可以跟它进行无缝的对接,比如刚才提到的 debezium、Maxwell 、dts、canal 等等可以进行无缝的对接。这是 PolarDB-X 系统的架构,因为在架构里面 CN、DN 都具备了水平扩展能力,所以当系统的容量说不足的时候,可以通过简单的来增加 CN 和 DN 这样的资源来对信息系统达到扩容的一个目的。

 

三、演示内容

1、PolarDB-X 水平扩展 Demo

在转账测试场景下进行动态扩容(CN+DN) 

第一个是 PolarDB-X 的水平扩展会做一个演示,这里写的是转账测试场景后来稍微调整一下,改成就是用 Sysbench 来做压测,比如对 PolarDB-X 集群上面的业务流量就是压测的流量,在有压测流量的场景下面对它进行一个动态的添加了计算键存储键 CN 和 DN 。来观察整个资源从一开始添加到千亿添加的过程以及添加的完成之后压测流量的变化过程,一个好的预期是整个压测不受影响,并且增加新的资源之后压测的数据变得更好,所以这是期望的结果。

Demo 用的是阿里云上面购买的 ECS 里面装了一个one two 20的系统。

(1)首先登陆上去

free6om@free6om ~> ssh polardb-x-demo

Welcome to Ubuntu 20.04.3 LTS(GNU/Linux 5.4.0-91-generic x86_64)

*Documentation: https://help.ubuntu.com

*Management: https:///landscape.canonical.com

*Support: https://ubuntu.com/advantage

Welcome to Alibaba Cloud Elastic Compute Service!

Last login: Fri Feb 11 15:13:18 2022 from 42120.75.252 Welcome to fish the friendly interactive shell

Type help`for instructions on how to use fish

adminepolardb-x-demo ~>alias kubecti_~minikube kubectl --”

adminepolardb-x-demo ~>

PolarDB-X 的 K8S 集群搭建在 github 的仓库里面有一些文档的说明,首先仓库地址是 galaxyku 的一个仓库,其实是 PolarDB-X 的一个kuberest operator。

图片5.png

RWADME.md 有一个文档,用中文的文档来进行一个展示。

图片6.png

中文文档里面点开之后会有一个快速部署。这个文章首先教大家怎么样在本机或者在远程的一台机器上面快速的用 K8S 拉起一个 PolarDB-X 集群。展示一下集群如何进行扩容,所以依然是 follow 文档,这个文档推荐大家用 minikube 来建一个 Kubernetes 集群,下面去启动 PolarDB-X 集群也就是部署一个 PolarDB-X 集群。

快速上手

本文介绍了如何创建一个简单的Kubernetes集群,部署 PolarDB-XOperator,并使用operator部署一个完整的 PolarDB-X集群。

注:本文中的部署说明仅用于测试目的。不要直接用于生产环境。本文主要包含以下内容:

1.创建 Kubernetes 测试集群

2.部署 PolarDB-X Operator

3. 部署 PolarDB-X 集群

4.连接 PolarDB-X 集群

5.销毁 PolarDB-X 集群

6.知载 PolarDB-X Operator

创建 Kubernetes测试集群

本节主要介绍如何使用 minikube 创建 Kubernetes 测试集群,您也可以使用阿里云的容器服务 ACK 来创建一个 Kubernetes 集群。并遵循教程部署 PolarDB-X Operator 和 PolarDB-X 集群。

使用 minikube 创建 Kubernetes 集群

minikube 是由社区维护的用于快速创建 Kubernetes 测试集群的工具,适合测试和学习 Kubernetes。使用minikube 创建的 Kubernetes 集群可以运行在容器或是虚拟机中,本节中以 CentOS 8.2 上创建 Kubernetes 为例。

注:如在其他操作系统例如 macOS 或 Windows 上部署 minikube,部分步强可能略有不同。

部署前,请确保已经安装 minikube 和 Docker,并符合以下要求:

·机器规格不小于 4c8g· minikube >= 1.18.0·docker >= 1.19.3

minikube 要求使用非root 账号进行部署,如果你试用root 账号访问机器,需要新建一个账号。

$ useradd -as /bin/bash galaxykube$ usernod -aG docker galaxykube

如果你使用其他账号,请和上面一样将它加入 docker 组中,以确保它能够直接访问 docker。

使用su 切换到账号 galaxykube,

$ su galaxykube

执行下面的命令启动一个minikube,

minikube start--cpus4 -nemory 7960 --inage-mirror-country cn --registry-mirrorshttps://docker,mirrors.ustc.edu.cn

注:这里我们使用了阿里云的minikube 镜像源以及USTC提供的 docker 镜像源来加速镜像的拉取。

如果一切运行正常,你将会看到类似下面的输出。

minikube v1.23.2 on Centos 8.2.2004 (and64)

Using the docker driver based on existing profile

Your cgroup does not allow setting memary.

*More information :https://docs.docker.com /engine/install/ Linux-postinstall/#your-kernel-does-nat Your Fgroup does not allow setting memory.

*More information :https://docs.docker.com/engine/install /linux-postinstall/*your-kernel- Starting control plane node minikube in cluster minikube Pulling base inage ...

docker "minikube" container is missing, will recreate. Creating docker container (CPUs=4, Memary=796eMB) ...

>kubeadm.sha256:64 8/648[-- -】100.0e%2p/s es

>kubelet.sha256:648/6481- 】1ee.eex7p/ses

>kubectl.sha256:64 B/64B[-- ]100.00x7 p/s es

>kubeadm:43.71 MiB / 43.71 MiB [-____】100.0041.01 MiB p/s 44s>kubectl:44.73 MiB / 44.73 MiB [-______ ---】 10e.00% 910.41 KiB p/s 51s>kubelet:146.25 M1B /146.25 M18[-__]100.00\2.71 Mi8 p/s 54s

. Generating certificates and keys .... Booting up control plane ....Configuring RBAC rules...

Verifying Kubernetes components...

*Using image reaistry.cn-hangzhou.aliyuncs.com/googlecon tainers/storace-provisioner:v5 (alobal inage repository)

Enabled addons:storage-provisioner.default-storaceclass

kubectl not found. If you need it, try: "minikube kubectl - get pods -A"

Done! kubectl is now configured to use "minikube" cluster and “default” namespace by default

此时 minikube 已经正常运行。minikube 将自动设置 kubectl 的配置文件,如果之前已经安装过 kubectl,现在可以使用 kubectl 来访问集群:

$ kubectl cluster-info kubectl cluster-info

Kubernetes control plane is running athttps://192.1 68.49.2:8443

CareDNS is running at https://192.168.49.2:8443/api/v1 /namespaces/kube-system/services/kube-dns:dns/proxy

To furthzr debug and diagnose cluster problens, use "kubectl cluster-infe dump".

如果没有安装kubectl 的,minikube也提供了子命令来使用kubectl:

$ minikube kubectl - cluster-info

Kubernetes control plane is running athttps://192.168.49.2:8443

CareDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use "kubectl cluster-info dump'.

注意:miniloube kubectl 子命令需要在 kubectl 的参数前加"--”,如使用 bash shell 可以用 alias kubectl="minikube kubectl -*来设置快捷指令,下文都将使用 kubect 命令进行操作。

现在我们可以开始部署PolarDB-X Operator了!测试完成后,执行 minikube delete 来销毁集群。

部署PolarDB-XOperator

开始之前,请确保满足以下前置要求:

。已经准备了一个运行中的 Kubenetes 集群,并确保

。集群版本>= 1.18.0

。至少有2个可分配的CPU。至少有 4GB 的可分配内存至少有30GB 以上的磁盘空间

。已经安装了 kubectl 可以访问 Kubernetes集群。已经安装了Helm 3

首先创建一个叫 polardbx-operator-systen的命名空间。

$ kubectl create nanespace polardbx-operator-systen

执行以下命令安装PolarDB-X Operator

$ helm install --nanespace polardbx-operator-systen polardbx-operater https://github.com/Apsara0B/galaxykube/releases/de 

期望看到如下输出:

NAME:polardbx-operator

LAST DEPLOYED: Sun 0ct 17 15:17:29 2021 NAMESPACEpolardbx-operator-systen STATUS:deployed REVISTON:1

TEST SUITE: None NOTES:

polardbx-operator is installed. Please check the status of components:

kubectl get pods --namespace polardbx-operater-systen

Now have fun with your first PolarDe-X cluster.

Here's the manifest for quick start:

.**yant

apiversion:polardbx.aliyun.con/v1

kind:PolarDBXCluster netadata:

name: quick-start annotations:

polardbx/topology-mode-guide: quick-start

查看PolarDB-XOperator组件的运行情况,等待它们都进入Running 状态:

$ kubecti get pods -namespace polardbx-operator-systen

NAME READY STATUS RESTARTS AGE

polardbx-hpfs-d44zd polardbx-controller-nanager-6c858fc5b9-zrhx91/11/1 Running Running66s

66g

polardbx-tools-updater-459lc 1/1 Running 66s

恭喜!PolarDB-XOperator已经安装完成,现在可以开始部署PolarDB-X集群了!

部署 PolarDB-X集群

是把 yarm 的配置文件发给了 kubectl ,kubectl 会创建出一个叫做 quick-start 的集群。

现在我们来快速部署一个PolarDB-X集群。它包含1个GMS 节点、1个CN节点、1个DN节点和1个CDC节点。执行以下命令创建一个这样的集群:

echo "apiVersion:polardbx.aliyun.com/v1 kind:PolarDBXClus ter metadata:

name:quick-start annotations:

polardbx/topology-node-quide: quick-start”i kubectl apply -f -

你将看到以下输出:

polardbxcluster.polardbx.aliyun.com/quick-start created

使用如下命令查看创建状态:

$ kubectl get polardbxcluster-

NAME GHS ON ON CDC PHASE DISK AGE

quick-start 0/1 0/1 0/1 0/1 Creating 35s 93s

quick-start 1/1 8/1 1/1 1/1 e/1 Creating

quick-start 1/1 8/1 1/1 Creating 4n43s

quick-start 1/1 1/1 1/1 1/1 Running 2.4 G1B 4m44s

当 PHASE 显示为Running 时,PolarDB-X 集育已经规要完成!热喜化,现在可以开始连接并体验 PolarDB-X分布式数据库了!

(2)操作

admin@polardb-x-demo ~> kubectl get pods

NAME READY STATUS RESTARTS AGE

sysbench-prepare-data-test--1-zzl4z 0/1 Completed 128m

admin@polardb-x-demo ~> kubectl delete job sysbench-point -select-test

Error from server (NotFound):jobs.batch"sysbench-point -select-test" not found

admin@polardb-x-demo ~ [1]> ubectt delete job sysbench- prepare-data-test

job.batch “sysbench-prepare-data-test" deleted

admin@pol ardb-x-demo ~>

admin@polardb-x-demo ~> kubectl get pods

No resources found in default namespace.

admin@polardb-x-demo ~>

admin@polardb-x-demo ~> acho apiVersion: polardbx.aliyun. com/v1

kind:PolarDBXCluster

metadata:

name:quick-start

annotations:

polardbx/topology-mode-guide: quick-start” I kubectl apply -f -

//这个命令就是文档里面写的命令,执行之后会在本地创建出一个CN,一个 DN,一个 CDC 的状态,看一下 PolarDB-X 集群的创建过程,过程大概需要两分钟稍微等待一下。

//可以看到集群叫做 quick start 里面会有一个 GMS,一个 CN,一个 DN一个 CDC,当前的状态还是处于一个创建的状态。现在可以看到 GMS 和 DN 已经创建好了,接下来会创建 CDC 和 CN。这次比较顺利, PolarDB-X  quick start 集群已经创建好了。polardbxcluster.polardbx.aliyun.com/quick-start created

admin@polardb-x-demo ~> kubectl get polardbxCluster qui ck-start -w

NAME     GMS CN  DN CDC  PHASE  DISK AGE

quick-start 0/1  0/1 0/1 0/1 Creating       11s

quick-start 0/1  0/1 1/1 0/1 Creating       33s

quick-start 1/1  0/1 1/1 0/1 Creating       35s

quick-start 1/1  1/1 1/1 0/1 Creating       50s

quick-start 1/1  1/1 1/1 1/1 Running 2.4 GiB 55s

//创建好了之后,连上去来简单的看一下,断后转发将获得里面的3306转到本地,在本地可以用 mysql client 连上 PolarDB-X 集群。

^C

admin@polardb-x-demo ~ [SIGINT]>kubectl part-forward svc/quick-start 3306

Forwarding from 127.0.0.1:3306 -> 3306

Forwarding from [::1]:3306 -> 3306

开第二个 Shell 来远程登录 ECS的机器,同时连到刚刚创建的 PolarDB-X 的集群里面。首先来获取。 PolarDB-X root账号的密码。“kubectl get secret quick-start -o jsonpath="{.data ['polardbx_root']}”I base64 -d - 1 xargs echo "Password:"”

是比较长的一个指令,不用去记,文档里面有,课后可以去看一下。

free6om@free6om ~> ssh polardb-x-demo

Welcome to Ubuntu 20.04.3 LTS(GNU/Linux5.4.0-91-gen eric*86_64)

*Documentation: https://help.ubuntu.com

*Management: https://landscape.canonical.com

*Support: https://ubuntu.com/advantage

Welcome to Alibaba Cloud Elastic Compute Service!

Last login: Fri Feb 11 16:10:13 2022 from 42.120.75.252 Welcome to fish, the friendly interactive shell

Type `help` for instructions on how to use fish adminepolardb-x-demo ~> cd class-4

admin@polardb-x-demo ~/class-4> alias kubectl-"minikube kubectl …- "

admin@polardb-x-demo~/class-4> kubectl get secret quick-start -o jsonpath="{.data['polardbx_root']}”I base64 -d - 1 xargs echo "Password:"

Password: 29rdjd4l

admin@polardb-x-demo ~/class-4> admin@polardb-x-demo ~/class-4>

admin@polardb-x-demo ~/class-4> mysql -h127.0.0.1 -P3306 -upolardbx_root - 29rdjd4l

//获取某密码之后登录,成功连接到 quick start  PolarDB-X 的集群

mysql:[Warning] Using a password on the command line interface can be insecure

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 25

Server version: 5.6.29 Tddl Server(ALIBABA)

Copyright (c) 2000, 2021, 0racle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type 'help;'or '\h’ for help. Type '\c’to clear the current input statement.

//首先看一下 PolarDB-X 的版本

mysql> select version();

+----------------------------------+

| VERSION()                  |

+----------------------------------+

| 5.6.29-PXC-5.4.12-20220127   |

+----------------------------------+

1 row in set (0.00 sec)

//版本信息为20220127

//接下来做 sysbench 的压测,第一步要准备一些数据,先建出来 sysbench_test

mysql> create database sysbench_test;

Query OK, 1 row affected (0.15 sec)

mysql>

建好之后开启里另外一个 Shell

free6om@free6om ~> ssh polardb-x-demo

Welcome to Ubuntu 20.04.3 LTS(GNU/Linux5.4.0-91-gen eric*86_64)

*Documentation: https://help.ubuntu.com

*Management: https://landscape.canonical.com

*Support: https://ubuntu.com/advantage

Welcome to Alibaba Cloud Elastic Compute Service!

Last login: Fri Feb 11 16:14:25 2022 from 42.120.75.252 Welcome to fish, the friendly interactive shell

Type `help` for instructions on how to use fish adminepolardb-x-demo ~> alias kubectl-"minikube kubectl

admin@polardb-x-demo ~> cd class-4

admin@polardb-x-demo ~/class-4> ls

sysbench-prepare.yaml  sysbench-run.yaml

admin@polardb-x-demo ~/class-4>view sysbench-prepar e.yaml

Shell 里面会先把 sysbench 压测所需要的数据灌到PolarDB-X 的集群里面,要注意一下当前PolarDB-X 集群,还是一个 CN,一个 DN 的状态。可以简单来看一下 sysbench 做了什么。用了第三方打包的镜像,连上PolarDB-X  quick start 集群之后呢,会往里面创建一个压测的表,往表里面写入16万行数据。这就是prepare配置所干的事情。

spec:

restartPolicy: Never

containers:

-name: sysbench-prepare

image:severalnines/sysbench

env:

-name:QUICK_START_USER

value: polardbx_root

-name:QUICK_START_PASSWD

valueFrom:

secretKeyRef:

name:quick-start

key: polardbx_root

command:['sysbench']

args:

- --db-driver=mysql

- --mysql-host=$(QUICK_START_SERVICE_HOST)

- --mysql-port=$(QUICK_START_SERVICE_PORT)

- --mysql-user=$(QUICK_START_USER)

- --mysql_password=$(QUICK_START_PASSWD)

- --mysql-db=sysbench_test

- --mysql-table-engine=innodb

- --rand-init=on ---max-requests

- --oltp-tables-count=1

- --report-interval=5

- --oltp-table-size=160000

- --oltp_skip_trx=on

- --oltp_auto_inc=off

- --oltp_secondary

- --oltp_range_size=5

- --mysql_table_options=dbpartition by hash(`id`) tbpartition by hash(id) tbpartitions 2

- --num-threads=1

- --time=3600

-/usr/share/sysbench/tests/include/oltp_legacy/parallel_prepare.lua

-run

接下来我们将配置应用到 PolarDB-X 集群里面

admin@polardb-x-demo ~/class-4>kubectl apply -f sysbench -prepare.yaml

job.batch/sysbench-prepare-data-test created

admin@polardb-x-demo ~/class-4> kubectl get pods

//灌数据运行的状态,可以看见已经跑起来了

NAME READY STATUS RESTARTS AGE

quick-start-965c-cdc-default-dcfffd454-642fb 2/2 Running 0 3m49s

quick-start-965c-cn-default-6d5c7b46d8-lpkwg 3/3  Runnin g 0 3m49s

quick-start-965c-gms-single-0  3/3  Running  0  4m24s

Sysbench-prepare-data-test--1-txllr 1/1 Running 0 9s

admin@polardb-x-demo ~/class-4>tail-f^C

admin@polardb-x-demo ~/class-4>kubectl logs -f sysbench -prepare -data-test--1-txllr

//灌数据的过程

thread prepare0

Creating table 'sbtestl'...

Inserting 160000 records into 'sbtestl'

[5s]thds:1tps:0.00 qps:1.00(r/w/o:0.00/0.80/0.20)lat (ms95%: 0.00 err/s:0.00 reconn/s:0.00

[10s]thds:1tps:0.00 qps:1.60(r/w/o:0.00/1.60/0.00) lat (ms, 95%): 0.00 err/s:0.00 reconn/s:0.00

[15s]thds:1tps:0.00qps:1.80(r/w/o:0.00/1.80/0.00)lat(ms,95%):0.00 err/s: 0.00 reconn/s:0.00

[20s]thds:1tps:0.00qps:2.40(r/w/o:0.00/2.40/0.00)lat(ms.95%):0.00 err/s:0.00 reconn/s: 0.00

//创建了一张表叫 sbtest1 插入了16万行的数据,现在是正在插入。

[25s] thds:1 tps:0.00qps:2.40(r/w/o:0.00/2.40/0.00)lat(ms,95%):0.00 err/s: 0.00 reconn/s:0.00

[30s]thds:1tps:0.00qpsy2.80(r/w/o:0.00/2.80/0.00)lat(ms95%):0.00 err/s:0.00 reconn/s:0.00

Creating secondary indexes on 'sbtest1'...

SQL statistics:

queries performed:

read: 0

write:62

other: 2

total: 64

transactions: I 64 (0.03 per sec.)

queries:64(1.98 per sec.)

ignored errors: (0.00 per sec.)

General statistics:

total time: 32.2587s

total number of events: 1

Latency (ms):

min: 32258.33

avg: 32258.33

max: 32258.33

95th percentile: 32161.14

sum: 32258.33

Threads fairness:

events(avg/stddev): 1.0000/0.00

execution time (avg/stddey): 32.2583/0.00

admin@polardb-x-demo ~/class-4>

创建完成。


相关实践学习
跟我学:如何一键安装部署 PolarDB-X
《PolarDB-X 动手实践》系列第一期,体验如何一键安装部署 PolarDB-X。
相关文章
|
7月前
|
存储 关系型数据库 数据库
用Patroni配置PostgreSQL高可用集群
Patroni是Zalando开发的数据库高可用管理软件,用于编排和自动化PostgreSQL集群的管理过程。Patroni 需要一系列其他组件的支持,通过利用第三方分布式一致性软件,组建并实现数据库高可用方案。
591 4
用Patroni配置PostgreSQL高可用集群
|
4天前
|
存储 负载均衡 监控
关系型数据库搭建高可用存储集群
关系型数据库搭建高可用存储集群
21 4
|
2天前
|
存储 监控 关系型数据库
关系型数据库设计集群架构节点规划
在实际项目中,可能还需要考虑其他因素,如安全性、合规性、成本等。因此,在进行关系型数据库设计集群架构节点规划时,建议与经验丰富的数据库管理员和架构师合作,以确保项目的成功实施和稳定运行。
9 4
|
2天前
|
存储 负载均衡 关系型数据库
关系型数据库设计集群架构架构选择
还可以考虑使用现有的数据库管理系统(DBMS)提供的集群解决方案,如MySQL的InnoDB Cluster、PostgreSQL的Streaming Replication和Patroni等。这些解决方案已经经过了广泛测试和验证,可以大大降低集群架构设计和实现的难度。
7 1
|
2天前
|
分布式计算 负载均衡 关系型数据库
关系型数据库设计集群架构需求分析
关系型数据库设计集群架构的需求分析是一个综合考虑业务需求、性能、可用性、可扩展性、数据一致性、安全性、成本效益和技术选型等多个方面的过程。通过深入分析和评估,可以设计出满足业务需求且高效可靠的数据库集群架构。
10 3
|
3天前
|
缓存 监控 负载均衡
关系型数据库设计集群架构
关系型数据库设计集群架构
11 3
|
15天前
|
关系型数据库 分布式数据库 数据库
VLDB顶会论文解读 | PolarDB MySQL高性能强一致集群核心技术详解
在VLDB2023会议上,阿里云瑶池数据库团队的论文介绍了PolarDB-SCC,这是一个创新的云原生数据库系统,确保了低延迟的全局强一致读取。PolarDB-SCC解决了传统主从架构中只读节点可能返回过期数据的问题,实现了在不影响性能的情况下提供强一致性。通过重新设计的主从信息同步机制、线性Lamport时间戳和细粒度修改跟踪,以及利用RDMA优化的日志传输,PolarDB-SCC已经在PolarDB中成功应用超过一年,成为业界首个无感知全局一致性读的云原生数据库解决方案。
66722 0
|
2月前
|
存储 Kubernetes 分布式数据库
利用Helm在K8S上部署 PolarDB-X 集群(详细步骤--亲测!!!)
利用Helm在K8S上部署 PolarDB-X 集群(详细步骤--亲测!!!)
131 0
|
8月前
|
存储 关系型数据库 网络安全
如何开通PostgreSQL的专属集群
本案例旨在展示如何开通PostgreSQL的专属集群。
72 1
|
4月前
|
安全 关系型数据库 分布式数据库
在PolarDB中能否申请集群的公网地址?
在PolarDB中能否申请集群的公网地址?
43 2