GBase 8a
其他
文章

JDBC常用特性-连接高可用

发表于2024-03-01 09:51:2480次浏览0个评论

为什么要使用连接高可用:

在我们使用传统单机数据库的时候,我们经常会遇到一个问题,就是如果数据库服务停止,则整个数据库对外的服务就停止了,外部应用无法再获取有效的连接,外部应用也就无法正常使用了,而8aMPP数据库是由多节点组成的,当一个集群节点出现异常时,其他集群节点还是可以为应用提供可用的连接,保证应用可用,那么在使用新型的8aMPP集群的时候,有没有方式可以不需要修改应用,就可以实现连接节点的自动切换,以保证应用的可用呢?答案是肯定的,这时就可以使用我们的连接高可用特性来实现。

什么是连接高可用

连接高可用是驱动内部提供的一种高级特性,它可以不修改应用代码,只通过配置,实现当一个集群节点不能正常连接时,驱动自动使用另外的集群节点进行连接,从而实现应用对集群节点的高可用。

如何使用连接高可用:

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

 192.168.1.56;192.168.1.57;192.168.1.58;

String dbUrl ="jdbc:gbase://192.168.1.56:5258/test?user=root&password=root&failoverEnable=true&hostList=192.168.1.57,192.168.1.58";

failoverEnable:是否开启高可用。

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

连接高可用功能是按照hostList参数配置的IP顺序获取节点,尝试连接,如果某个IP连接成功,则直接返回这个节点的连接,如果所有节点都不能连接,则抛出异常。连接高可用功能,只保证获取可用连接,并不能保证连接的均匀分布。

如何使用连接高可用和负载均衡:

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

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

192.168.1.56;192.168.1.57;192.168.1.58;

String dbUrl ="jdbc:gbase://192.168.1.56:5258/test?user=gbase&password=gbase20110531&failoverEnable=true&hostList=192.168.1.57,192.168.1.58&gclusterId=gcl1";

failoverEnable:是否开启高可用。

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

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

评论

登录后才可以发表评论