人大金仓数据库KingbaseES一种JDBC读写分离权重负载均衡的实现方法

关键字:

KingbaseES、JDBC、读写分离、负载均衡、人大金仓

背景描述

读写分离是高性能数据库集群的一种模式,其基本原理是将数据库读写操作分散到不同的节点上。但是,单个数据库的能力是有限的,合理的分发业务请求才能使数据库集群更加稳定的运作。因此,良好的权重负载均衡方法是高性能数据库集群的关键之一。

功能设计

KES-JDBC提出一种读写分离权重负载均衡的实现方法,该方法不需要从服务端采集数据,也不需要在代理处统计各服务器的负载率,而是依靠随机数来实现集群的负载均衡。图1展示了读写分离模式负载均衡的示意图,代理模块根据均衡算法,直接确定负载节点并发送请求。

如图2 所示,用户需先设置各个数据源权重的初始值,内部函数对权重初始值进行优化,将无穷大的权重设置为10000,将空值的权重设置为1。随后进行权重验证,判断所有权重是否不为空,并且不大于Double.MAX_VALUE,若不是,则抛出异常,流程结束;若是,则进一步对权重进行归一化处理,即用每一个权重,分别除以所有权重的总和。接着构建集群数据源节点对应的数值区间,每个区间的大小等于归一化处理后的权重值,其结构说明如图3所示,每个区间分别对应一个数据源。最后,使用随机数生成方法,获取0到1之间的随机数(不包含0),判断该随机数所归属的数值区间,该数值区间所对应的数据源节点即是当前请求所需分发的目标节点。

技术效果

Kingbase-JDBC的读写分离负载均衡方法,可避免从服务器端采集数据,计算效率较高。利用随机性原理来确定请求分发节点,可有效依据数据源权重比例分发请求,实现负载均衡,适用于较广泛的应用场景。

参考文档:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值