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,获取连接,如果无可用连接时,将抛出异常。也就是说高可用负载均衡功能既实现了连接负载均衡功能,也实现了高可用功能。

一、例子

    connectDirect参数值:false是负载均衡,true是直连

二、负载均衡与直连

直连: 配置这两个节点之后,每次下发sql,这俩节点一直是入口节点

负载均衡: 每次下发sql,会轮询所有的行云节点,每次会有不同的节点作为入口节点,是session级别


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

原文地址: http://outofmemory.cn/sjk/10034228.html

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

发表评论

登录后才能评论

评论列表(0条)

保存