GBase 8a MPP数据库如何通过JDBC实现连接级的负载均衡?

GBase 8a MPP数据库如何通过JDBC实现连接级的负载均衡?,第1张

在使用JDBC实现连接GBase8aMPP数据库时,由于GBase8aMPP数据库是分布式数据库,那么在通过JDBC实现连接高可用的情况下,还希望能够实现连接级别的负载均衡,需要如何实现呢?这就需要使用到GBase8aMPP数据库JDBC驱动自带的负载均衡功能。

如果我们希望把数据库连接请求平均分布到各个节点的上话,我们可以使用JDBC 高可用负载均衡功能。

假设有如下场景,部署有一个GBase 集群,三个节点IP如下:

192.168.1.1;192.168.1.2;192.168.1.3;

String dbUrl =

“jdbc:gbase://192.168.1.1:5258/test?user=gbase&password=gbase20110531&failoverEnable=true&hostList=192.168.1.2,192.168.1.3&gclusterId=gcl1”

failoverEnable:是否开启高可用。

hostList:集群节点的IP列表,以逗号分隔,hostList中不需要包含url中的主IP。

gclusterId:不同的gclusterId会创建不同的列表,用于区分被连接的集群,要求必须以a-z任意字符开头的可以包含a-z、0-9所有字符长度为最大为20的字符串。

高可用负载均衡功能是将url中的IP和hostList中的IP放入一个列表中,当应用获取连接的时候,JDBC会从列表表中顺序获取IP创建连接,每个IP获取一个连接,从而实现连接的负载均衡,同时,当列表中的IP不可连接时,JDBC会顺序获取列表中的下一个IP,获取连接,如果无可用连接时,将抛出异常。也就是说高可用负载均衡功能既实现了连接负载均衡功能,也实现了高可用功能。

负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器。

市面上存在两种数据库负载均衡的思路:

1、基于数据库连接的负载均衡:例如总共有100个数据库连接,50个连接登录到数据库机器A,另外50个连接登录到数据库机器B,这样每个连接中接下来的所有请求全都是发往同一台数据库机器的。这种数据库负载均衡的思路模拟了WEB上的负载均衡方法,但是由于WEB连接是短时间连接(连接建立后,获取需要的HTML等资源后,连接马上被关闭),而数据库连接是长时间连接( 连接建立后,可长时间保持,客户可不停向数据库发送SQL请求,数据库做出回答,如此不断循环直到连接被人为或因错而断开为止),因此这种数据库负载均衡思路存在着明显的缺点:有可能会发生绝大部分的请求压力都集中到某台数据库机器上去,从而使得负载均衡效果失效。

2、基于批处理请求的负载均衡:在建立数据库连接的时候,会同时与每台数据库服务器建立连接,之后针对客户端的每次请求,都会根据负载均衡算法,独立地选出某个数据库节点来执行这个请求。此种思路符合数据库长时间连接的特征,不存在上面所述的基于连接的负载均衡方法的缺点。

mysql数据库负载均衡 一般多用于读负载,  lvs 负载均衡,keepalived 高可用性。

LVS软件负载均衡器

LVS(LinuxVirtual Server)是由章文嵩博士主导开发的一款开源软件,可以实现Linux平台下的基于网络层的负载均衡软件。典型的基本架构图如图所示:

LVS集群采用IP负载均衡技术和基于内容请求分发技术。

LVS集群采用基于IP负载均衡技术和基于内容请求分发技术。当客户端有请求时,首先将请求包传送到Load Balance,然后Load Balance从后面的Real Servers中按照一定的算法策略选取一台Real Server,比如Real Server1,然后把请求包发送给Real Server1进行处理。对所有用户而言,面向用户的服务器端IP地址,只有一台,称之为VirtualIP Address。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9530854.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存