瀚高技术全揭秘 | 聊点儿瀚高对等服务集群的「黑科技」


俄罗斯方块
俄罗斯方块 2023-05-25 18:26:25 54190
分类专栏: 资讯

声明:

本文章内容仅用于学习、交流,未经团队允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的,利用此文所提供的信息而造成的任何直接或间接的损失,均由使用者本人负责。

PART

01

对等服务集群概述

 

在集中式数据库多节点集群架构设计中,常见的有双机热备HA、高可用集群、读写分离集群、共享存储集群等,不同的集群架构有相对应的应用场景。
双机热备HA主要用于两节点主备集群,能够提供当主库出现故障时备机平滑的接替主机工作,如下所示。

图片

高可用集群提供多节点的主备集群服务,主节点负责读写而备节点可提供读服务;在正常的运行过程中主要由主节点提供服务能力,当主节点出现网络、掉电等故障引起服务中断时,自动进行主备切换选举某个备节点提升为主节点对外提供可持续化的数据服务,如下所示。

图片

 

读写分离集群主要在提供高可用集群的能力上,应用通过统一访问接口连接,集群实现应用事务的自动识别、读写分发处理能力,能够将应用绝大部分读事务均衡的分摊到集群的各备节点处理,从而降低集群主节点主机的负载压力、提升整个集群的性能瓶颈;实现对应用透明的高可用及负载均衡能力,如下所示。

图片

在传统的主备模式多节点集群只能主节点的提供读写而各备节点提供只读模式的架构中,瀚高数据库在内核层进行架构优化,提供备节点不仅具备读能力,亦可具备写能力。即备节点可读可写,实现了主备节点提供对等的读写服务,我们称之为对等服务集群,如下所示。

图片

PART

02

对等服务集群应用场景

图片

如上展示,瀚高对等服务集群在传统的高可用集群的基础上为每个节点提供了对等读写的能力,允许应用程序在备节点上通过负载均衡机制实现读写操作在对应节点执行。可以充分利用集群资源、降低主节点负载、提高数据库集群系统的处理能力。
该系统通过主备事务的可见性及语句级同步机制保证事务一致性,集群本身可通过DB_HA(之前有介绍瀚高高可用软件)搭建高可用机制,实现故障自动转移及主备切换等,保证数据服务的连续性;允许应用程序通过VIP接入集群各节点,简化应用程序接口配置。
如今市面上现存解决集中式关系型数据库的主备多节点集群性能方案主要为读写分离方案,如中间件式的读写分离组件、基于JDBC驱动的读写分发方案等。在功能上及对SQL转发处理能力上对等服务集群与上述两种解决方案有如下优势:

场景

对等服务

中间件读写分离

JDBC驱动读写分发

数据库自带的能力

数据库内核能力

额外组件

数据库驱动

额外软硬件支撑

无需额外软硬件支撑

组件部署及运行需要服务器资源

特定的数据库驱动包

用户使用习惯

不改变用户使用习惯及程序接口

需连接中间件及配置SQL白名单等

仅限于JAVA应用,不具有普适性。

SQL语句判断能力

内核级SQL解析器处理,支持复杂SQL的精准处理。

关键词判断逻辑,不精准。

关键词判断逻辑,不精准。

视图处理能力

内核解析视图,rewrite到表。

需配置视图和表的映射关系

需配置视图和表的映射关系

函数处理能力

内核及解析函数属性(v/s/i)

需配置函数白名单

需配置函数白名单

游标处理能力

支持

支持

不支持

unlogged表处理

 

内核解析unlogged表

需配置相应表白名单

需配置相应表白名单

临时表处理能力

内核解析临时表

需配置相应表白名单

需配置相应表白名单

备节点执行失败的处理

支持主备abort

不确定

不支持

主节点执行失败的处理

支持主备abort

不确定

不支持

DDL后接着查询

支持事务内和事务外,无论是同步流还是异步流均支持。

事务内:不支持且易产生主备冲突。事务外:不支持。

 

 

事务内:不支持且易产生主备冲突。事务外:不支持。

物化视图

refresh后接着查询

支持(同DDL后接着查询一样)

同上

同上

begin的处理能力

支持begin带参数的处理;支持重复begin的处理;支持serializable mode处理。

不确定

不支持

 

PART

03

对等服务集群演示

前置条件

(1)部署瀚高数据库;

(2)搭建好同步或异步流复制集群(流复制集群、高可用集群均可)。

安装瀚高数据库及搭建好高可用集群后(这里不在赘述,感兴趣的小伙伴可以联系我们获得试用版),要使用对等服务功能则需要修改备库的数据库参数enable_standby_dispatch,将该参数值设为true以开启对等服务模式。修改后重启备节点数据库服务即可。

如下,搭建了一主一备;

角色

主机IP

服务端口

主库(PRIMARY)

192.168.70.141

5866

备库(STANDBY)

192.168.70.142

5866

图片

对等服务集群配置

备库配置:

在备库上打开对等服务功能开关;

enable_standby_dispatch设置为true;

执行语句:

  •  
alter system set enable_standby_dispatch = 'true';
如图所示:

图片

重启备库使配置生效。

对等服务功能展示

 

DDL操作演示

 

在备库上执行DDL语句,如下:

  •  
  •  
  •  
  •  
psql -h 192.168.70.142 -p 5866 -U highgocreate database db_test;\c db_testcreate table t_test(id int,name varchar,age int);
如图所示:

图片

到主库上进行查看表t_test结构,如下:

  •  
  •  
psql -h 192.168.70.141 -p 5866 -U highgo -d db_test\d t_test
如图所示:

图片

 

DML、DQL操作演示

在备库上对表t_test进行DML、DQL操作,如下:

  •  
  •  
  •  
insert into t_test values(1,'highgo',15),(2,'瀚高',15);update t_test set name='highgo123' where id = 1;select * from t_test;
如图所示:

图片

到主库上进行查看,如下:

  •  
select * from t_test ;
如图所示:

图片

 

DCL操作演示

 

在备库上对表t_test进行DCL操作;

创建新用户,在未授权之前select表t_test(用户未经授权无法访问表),如下:

  •  
  •  
  •  
create user u_test with password 'Qwer!234';\c - u_testselect * from t_test ;
如图所示:

图片

在备库上给用户u_test赋予表t_test的权限(赋予select权限后可查询该表),如下:

  •  
  •  
  •  
  •  
\c - highgogrant select on t_test to u_test;\c - u_testselect * from t_test ;
如图所示:

图片

到主库上验证一下,如图所示。

图片

篇幅有限,在此就不做过多的举例了,感兴趣的小伙伴可以获取测试版自己动手尝试哦。

 

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=21448
赞同 0
评论 0 条
俄罗斯方块L2
粉丝 1 发表 86 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2969
【软件正版化】软件正版化工作要点  2888
统信UOS试玩黑神话:悟空  2860
信刻光盘安全隔离与信息交换系统  2746
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1280
grub引导程序无法找到指定设备和分区  1249
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  169
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  168
点击报名 | 京东2025校招进校行程预告  165
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  161
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!