暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a MPP Cluster数据库高可用特性在应用开发中的使用

原创 飞鸿 2022-03-03
1705

GBase 8a MPP Cluster数据库是一款优秀的国产的高性能MPP数据库,是目前最好用的MPP数据库,兼容SQL99标准,丰富的数据加载策略,支持通过FTP、SFTP、HTTP等方式加载数据,加载速度取决于网络带宽和磁盘读写性能。

GBase 8a采用联邦架构,核心组件为GCluster、GCWare和GNode。其中:GCluster 负责 SQL 的解析、SQL 优化、分布式执行计划生成、执行调度。GCWare 用于各节点 GCluster 实例间共享信息(包括集群结构,节点状态, 节点资源状态等信息),以及控制多副本数据操作时,提供可操作节点,控制各 节点数据一致性状态。GNode 是 GBase 8a MPP Cluster 中最基本的存储和计算单元,负责集群数据在节点上的实际存储,并从 GCluster 接收和执行经分解的 SQL 执行计划,执行结果返回给 GCluster。数据加载时,GNode 直接从集群加载服务接收数据,写入本地存储空间。GCluster和GCWare部署在同一节点上,一般称为主节点,GNode节点一般称为数据节点。

GBase 8a基于列存储的完全并行的 MPP + Shared Nothing 的分布式架构,采用多活 Master节点、数据节点的两级部署结构,避免了单点性能瓶颈和单点故障,数据节点具有对等计算能力,所有节点无共享,节点之间数据采用交叉镜像机制,不存在单点故障。数据压缩率在75%以上,极大的节省了存储空间,降低了磁盘I/O。GBase 8a集群的这种高可用架构决定了整个集群在运行过程中无闲置节点,这是区别于主备架构的重要特点,具备弹性伸缩的巨大优势。

多主节点的GBase 8a集群提供了高可用特性,包括负载均衡(Load Balance)和故障转移(Fail-Over)。在应用开发中,只有合理配置才能启用高可用特性。否则,尽管GBase 8a集群已经具备高可用能力,应用系统将仍然不能使用高可用特性。

南大通用提供的GBase 8a的JDBC驱动提供了高可用特性的参数,主要参数如下:

  • failoverEnable:创建连接时,如果集群当前节点不可用,是否自动路由到下一个可用节点,默认为false。
  • hostList:以逗号分隔的集群节点IP地址,failoverEnable为true时可用。
  • gclusterId:当 failoverEnable=true 且 hostList 参数不为空时,设置该参数,8a 集群接口的负载均衡开启(负载策略为轮询)。 gclusterId 必须以 a-z 任意字符开头的字符串, gclusterId 组成可以包含 a-z、0-9 所有字符长 度为最大为 20。在同一应用程序中,gclusterId 可有程序开发人员自行决定,全工程唯一即可。当设置 gclusteId 时,自动路由功能自动转 换为高可用负载均衡。gclusterId一般设置为应用名称,便于运维人员管理资源使用情况。

下面举例说明以上参数的用法,当前使用的GBase 8a的jdbc驱动:

gbase-connector-java-8.3.81.51-build-54.4.4-bin.jar

数据库主节点部署在 192.168.51.7,192.168.51.8,192.168.51.9 三台机器。使用JDBC时只需要知道主节点IP地址就行,GBase 8a默认端口为5258,如果不指定端口,则使用默认端口连接。

具备负载均衡能力的完整的JDBC URL为:

jdbc:gbase://ipAddress:port/?user=username&password=pwd&gclusterId =appName&failoverEnable=true&hostList=ipAddress2, ipAddress3... ipAddressN

java代码如下:

Class.forName("com.gbase.jdbc.Driver");
String url = " jdbc:gbase://192.168.51.7/?user=username&password=pwd&gclusterId =myapp&failoverEnable=true&hostList=192.168.51.8,192.168.51.9";
Connection conn = DriverManager.getConnection(url);

应用系统在使用连接池时,会在指定频率发送“SELECT 1”语句到服务器,一旦服务器断开,连接池会尝试重连,此时,如果192.168.51.7 不可用,则自动路由到192.168.51.8,直到把hostList里配置的所有IP轮询一遍。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论