首页 > 其他分享 >通过UltraSync减轻主节点负担、提升业务系统性能,AntDB如何做到?

通过UltraSync减轻主节点负担、提升业务系统性能,AntDB如何做到?

时间:2023-09-15 12:33:22浏览次数:35  
标签:主库 备库 192.168 AntDB UltraSync 节点

众所周知,数据库在多中心场景下,主中心主库不仅要承担原本业务的压力,而且还要将redo日志传输到不同的备库端,这样对主库将产生很大的性能影响。通常情况下,备中心和主中心不在同⼀机房,为了保证业务响应速度,主中心主节点和备中心各主节点之间的复制流通常是异步的,当主中心发生故障时,主备中心的数据⼀致性就无法保证。

1.png

图1:高可用集群双中心常规架构图

为了解决上面两个问题,AntDB数据库引入UltraSync,在UltraSync环境中,传输日志的压力大部分由UltraSync实例承担,而主节点只需要把wal⽇志传输到距离较近的UltraSync实例,这样将在很大程度上减轻主节点的负担,提升业务系统的性能。UltraSync是⼀个轻量级的AntDB实例,⼀个只同步WAL⽇志,⽽不做redo的轻量级“同步备库”。

2.png

图2:高可用集群双中心UltraSync架构图

今天,我们将通过AntDBUltraSync的部署使用过程,切实感受UltraSync是如何减轻主节点负担,提升业务系统性能的。

一、环境配置

本次部署单中心高可用UltraSync集群

6eeff7862a5c5174e5da66c5615be33.png

二、UltraSync部署

使用AntDB的一键部署,部署一个3节点的高可用集群

1).创建用户

11.png

2).修改用户密码

12.png 更改用户 antdb 的密码

新的密码:

重新输入新的密码:

passwd:所有的身份验证令牌已经成功更新

3). 将安装包(antdb-t-ee-release-7.2.16.generic.x86_64.tar.gz)拷贝到/home/antdb目录下,并修改该安装包的权限

13.png

4).切换到antdb用户,并解压

14.png

5).进入到软件包目录,安装软件

15.png

15.2.png

15.3.png

15.4.png

6).编辑初始化配置文件

16.png 16.2.png

16.3.png

16.4.png

7).进行初始化

17.1.png

17.2.png

17.3.png

出现[Info] AntDB init succeeds,则高可用集群部署成功。

8).停止准备部署fay sync角色节点的patroni(192.168.37.132)

18.png

9).编辑目前高可用集群配置

19.png 19.2.png

10).编辑patroni配置文件(192.168.37.132)

110.png 110.2.png

110.3.png

将数据目录清空

110.4.png

11)

111.png

12).查看集群状态

112.png

至此,UltraSync部署完成。

三、UltraSync使用验证

1.停止sync备库(将192.168.37.131的sync备库停止)

31.png

在leader测试数据,能正常执行,对外提供服务。

31.2.png

2.启动sync备库(将192.168.37.131的sync备库启动),然后将leader主库停止(将192.168.37.130的leader主库停止)

此时同步备库提升为了主库。

32.png

查看前面插入的数据,数据正常

32.2.png

插入数据,正常。

32.3.png

3.高可用切换测试

将192.168.37.130的patroni启动恢复,查看当前的集群状态

33.png

执行切换

33.2 (2).png 33.3.png

再次查看状态,此时切换成功

33.3.png

四、总结 通过AntDB UltraSync的部署使用,我们发现UltraSync的引入能够极大缓解主库的压力,同时对服务器资源的需求也少了很多(只是用作接收wal日志,有存储需求,对内存,CPU需求大大降低),在实际生产环境中,能大大节省服务器的成本支出。

关于AntDB数据库

AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。

标签:主库,备库,192.168,AntDB,UltraSync,节点
From: https://blog.51cto.com/u_15348398/7479891

相关文章

  • idb单副本时-TiKV节点损坏后有损数据恢复的方法
    Tidb单副本时-TiKV节点损坏后有损数据恢复的方法背景UAT环境下,为了减少存储.搭建了一套单副本的TiDB集群但是随着数据量的增多,UAT上面的数据可以丢失,但是表结构等信息是无法接受丢失和损坏的.因为很多不太均衡的问题,导致.部分TiKV节点不稳定.甚至会出现TiKV宕机的......
  • oracle获取xml节点数据
    1.新增获取节点函数CREATEORREPLACEFUNCTIONget_xml_nodeValue(xmlStrCLOB,nodeNameVARCHAR2)RETURNVARCHAR2ISxmlParxmlparser.Parser:=xmlparser.newParser;xDocxmldom.DOMDocument;lenItme......
  • 三节点master修改apiserver端口
    因业务需求,需要把apiserver的6443端口改成其它端口,k8s集群是二进制部署的,有三个master节点,调整方法如下1.修改apiserver启动service中的配置查看apiserver的service文件位置systemctlstatuskube-apiserver,找到/usr/lib/systemd/system/kube-apiserver.service修改--secure-p......
  • 过滤树,返回符合条件的节点以及它的上级节点,以及是否保留它的下级节点
    constfilterReceiveDeptTree=computed(()=>{if(state.filterText){letdeepclone=deepClone(state.receiveDeptTree);constfilteredTree=filterTree(deepclone,(node)=>{returnnode......
  • 在线问诊 Python、FastAPI、Neo4j — 创建症状节点
    目录参考创建药品节点。importloggingfromutils.neo4j_providerimportdriverlogging.root.setLevel(logging.INFO)#并生成CQLdefgenerate_cql()->str:cql="""CREATE(symptom1:Symptom{name:"膝盖疼"}),(symptom2......
  • MGR新节点RECOVERING状态的分析与解决:caching_sha2_password验证插件的影响
    MGR新节点RECOVERING状态的分析与解决:caching_sha2_password验证插件的影响起因在GreatSQL社区上有一位用户提出了“手工构建MGR碰到的次节点一直处于recovering状态”,经过排查后,发现了是因为新密码验证插件caching_sha2_password导致的从节点一直无法连接主节点,帖子地址:(https:/......
  • 实现类似elementui中的树节点过滤效果
    filterTree(tree,arr=[]){letthat=thisif(!tree.length)return[];for(letitemoftree){letnode={}if(item.name.indexOf(this.searchVal)>-1){constitemValue={...item};node={......
  • 3d-force-graph力导向图,如何让具有相同属性的子节点在一起
    前言3d-force-graph是一种基于力导向图的可视化工具,它可以帮助我们更直观地展示数据之间的关系。在使用3d-force-graph时,我们经常会遇到一种情况,即具有相同属性的子节点需要在一起展示,这时我们可以通过一些方法来实现这个目标。方法一:使用颜色区分我们可以通过为具有相同属性的......
  • Kubernetes 集群的优化 节点配额和内核参数调整 自动增加etcd节点 Kube APIServer 配
    一、节点配额和内核参数调整对于公有云上的Kubernetes集群,规模大了之后很容器碰到配额问题,需要提前在云平台上增大配额。这些需要增大的配额包括:虚拟机个数vCPU个数内网IP地址个数公网IP地址个数安全组条数路由表条数持久化存储大小参考gce随着node节点的增加master节点的配......
  • leetcode450删除搜索二叉树的节点
    删除的二叉树节点分4种情况:叶子节点,直接删除就行左节点不为空,右节点为空;直接将左子树返回左节点为空,右节点不为空;直接将右子树返回左节点和右节点不为空;将右子树最小的节点作为根节点,返回右子树TreeNode*deleteNode(TreeNode*root,intkey){if(!root)returnn......