论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
虚拟化.超融合.云计算
›
公有云
›
实践教程之用 PolarDB-X 搭建一个高可用体系 ...
实践教程之用 PolarDB-X 搭建一个高可用体系
宁睿
金牌会员
|
2024-8-4 14:50:01
|
显示全部楼层
|
阅读模式
楼主
主题
943
|
帖子
943
|
积分
2839
PolarDB-X 为了方便用户体验,提供了免费的实行环境,您可以在实行环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实行,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。
本期实行将引导您用PolarDB-X搭建一个高可用体系
本期免费实行地址
本期讲授视频地址
前置准备
假设已经根据前一讲内容完成了PolarDB-X的搭建部署,可以乐成链接上PolarDB-X数据库。
启动业务
本步调将引导您怎样使用Sysbench OLTP场景模仿业务流量。
1.准备压测数据。
a.执行如下SQL语句,创建压测数据库sysbench_test。
create database sysbench_test;
复制代码
b.输入exit退出数据库。
c.执行如下命令,切换到账号galaxykube。
su galaxykube
复制代码
d.执行如下命令,进入到/home/galaxykube目录。
cd
复制代码
e.执行如下命令,创建准备压测数据的sysbench-prepare.yaml文件。
vim sysbench-prepare.yaml
复制代码
f.按i键进入编辑模式,将如下代码复制到文件中,然后按ECS退出编辑模式,输入:wq后按下Enter键生存并退出。
kind: Job
metadata:
name: sysbench-prepare-data-test
namespace: default
spec:
backoffLimit: 0
template:
spec:
restartPolicy: Never
containers:
- name: sysbench-prepare
image: severalnines/sysbench
env:
- name: POLARDB_X_USER
value: polardbx_root
- name: POLARDB_X_PASSWD
valueFrom:
secretKeyRef:
name: polardb-x
key: polardbx_root
command: [ 'sysbench' ]
args:
- --db-driver=mysql
- --mysql-host=$(POLARDB_X_SERVICE_HOST)
- --mysql-port=$(POLARDB_X_SERVICE_PORT)
- --mysql-user=$(POLARDB_X_USER)
- --mysql_password=$(POLARDB_X_PASSWD)
- --mysql-db=sysbench_test
- --mysql-table-engine=innodb
- --rand-init=on
- --max-requests=1
- --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`)
- --num-threads=1
- --time=3600
- /usr/share/sysbench/tests/include/oltp_legacy/parallel_prepare.lua
- run
复制代码
g.执行如下命令,运行准备压测数据的sysbench-prepare.yaml文件,初始化测试数据。
kubectl apply -f sysbench-prepare.yaml
复制代码
h.执行如下命令,获取使命举行状态。
kubectl get jobs
复制代码
返回结果如下,请您耐烦期待大约1分钟,当使命状态COMPLETIONS为1/1时,体现数据已经初始化完成。
2.启动压测流量。
a.执行如下命令,创建启动压测的sysbench-oltp.yaml文件。
vim sysbench-oltp.yaml
复制代码
b.按i键进入编辑模式,将如下代码复制到文件中,然后按ECS退出编辑模式,输入:wq后按下Enter键生存并退出。
kind: Job
metadata:
name: sysbench-oltp-test
namespace: default
spec:
backoffLimit: 0
template:
spec:
restartPolicy: Never
containers:
- name: sysbench-oltp
image: severalnines/sysbench
env:
- name: POLARDB_X_USER
value: polardbx_root
- name: POLARDB_X_PASSWD
valueFrom:
secretKeyRef:
name: polardb-x
key: polardbx_root
command: [ 'sysbench' ]
args:
- --db-driver=mysql
- --mysql-host=$(POLARDB_X_SERVICE_HOST)
- --mysql-port=$(POLARDB_X_SERVICE_PORT)
- --mysql-user=$(POLARDB_X_USER)
- --mysql_password=$(POLARDB_X_PASSWD)
- --mysql-db=sysbench_test
- --mysql-table-engine=innodb
- --rand-init=on
- --max-requests=0
- --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-ignore-errors=all
- --num-threads=8
- --time=3600
- /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua
- run
复制代码
c.执行如下命令,运行启动压测的sysbench-oltp.yaml文件,开始压测。
kubectl apply -f sysbench-oltp.yaml
复制代码
d.执行如下命令,查找压测脚本运行的POD。
kubectl get pods
复制代码
返回结果如下, 以‘sysbench-oltp-test-’开头的POD即为目的POD。
e.执行如下命令,查看QPS等流量数据。
说明:您需要将命令中的目的POD更换为以‘sysbench-oltp-test-’开头的POD。
kubectl logs -f 目标POD
复制代码
体验PolarDB-X高可用能力
颠末前面的准备工作,我们已经用PolarDB-X+Sysbench OLTP搭建了一个正在运行的业务体系。本步调将引导您通过使用kill POD的方式,模仿物理机宕机、断网等导致的节点不可用场景,并观察业务QPS的变革环境。
1.在实行页面,单击右上角的图标+,创建新的终端三。
2.kill CN。
a.执行如下命令,切换到账号galaxykube。
su galaxykube
复制代码
b.执行如下命令,获取CN POD的名字。
kubectl get pods
复制代码
返回结果如下,以‘polardb-x-xxxx-cn-default’开头的是CN POD的名字。
c.执行如下命令,删除任意一个CN POD。
说明:您需要将命令中的更换为任意一个以‘polardb-x-xxxx-cn-default’开头的CN POD的名字。
kubectl delete pod <CN POD>
复制代码
d.执行如下命令,查看CN POD主动创建环境。
kubectl get pods
复制代码
返回结果如下,您可查看到CN POD已经处于主动创建中。
颠末几十秒后,被kill的CN POD主动恢复正常。
e.切换至终端二,您可查看kill CN之后业务QPS的环境。
3.kill DN。
a.切换至终端三,执行如下命令,获取DN POD的名字。
kubectl get pods
复制代码
返回结果如下,以‘polardb-x-xxxx-dn’开头的是DN POD的名字。
b.执行如下命令,删除任意一个DN POD。
说明:
您需要将命令中的更换为任意一个以‘polardb-x-xxxx-dn’开头的DN POD的名字。
DN每个逻辑节点为三副本架构,也就是说一个DN节点对应3个POD,可任意选择一个举行删除操作。别的,GMS节点是一个特殊脚色的DN,同样具备高可用能力,可选择任一POD举行删除。
kubectl delete pod <DN POD>
复制代码
c.执行如下命令,查看DN POD主动创建环境。
kubectl get pods
复制代码
返回结果如下,您可查看到DN POD已经处于主动创建中。
颠末几十秒后,被kill的DN POD主动恢复正常。
d.切换至终端二,您可查看kill DN之后业务QPS的环境。
4.kill CDC。
a.切换至终端三,执行如下命令,获取CDC POD的名字。
kubectl get pods
复制代码
返回结果如下,以‘polardb-x-xxxx-cdc-defaul’开头的是CDC POD的名字。
b.执行如下命令,删除任意一个CDC POD。
说明:您需要将命令中的更换为任意一个以‘polardb-x-xxxx-cdc-defaul’开头的CDC POD的名字。
kubectl delete pod <CDC POD>
复制代码
c.执行如下命令,查看CDC POD主动创建环境。
kubectl get pods
复制代码
返回结果如下,您可查看到CDC POD已经处于主动创建中。
颠末几十秒后,被kill的CDC POD主动恢复正常。
d.切换至终端二,您可查看kill CDC之后业务QPS的环境。
原文链接
本文为阿里云原创内容,未经允许不得转载。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
宁睿
金牌会员
这个人很懒什么都没写!
楼主热帖
java前置学习
简单的用Python对手机号进行加密 ...
【RocketMQ】消息的存储
net core 3.1使用identityServer登录时 ...
k8s v-1.20版本部署详细过程[实测可用 ...
Unity 将是驱动 C# 增长的引擎吗 ? ...
【PostgreSQL】PostgreSQL重建与主库不 ...
离线数仓建设,企业大数据的业务驱动与 ...
iOS Widget
基于单片机的压力测控仿真设计(#0024) ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表