System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及金融,尤其涉及一种数据库节点处理方法及相关装置。
技术介绍
1、随着互联网技术的高速发展,用户数据呈现大爆发的现象,大规模数据的产生促进了各种mpp(massively parallel processing,大规模并行处理)分布式数据库的问世,而负载均衡是保障分布式数据库的高效运作和保持系统提供高性能服务的重要技术。
2、目前针对数据库的负载均衡在实现时,若有大量请求涌入服务器集群,请求进行哈希处理后由哈希环上对应的服务器处理,由一致性哈希的规则,请求寻找服务器节点时总是顺时针顺序处理,此时会发生数据倾斜问题。
3、为了解决数据倾斜的问题,可以为数据库节点配置虚拟节点,将虚拟节点和数据库节点放置在哈希hash环上,以解决数据倾斜的问题,那么在数据库节点增加或删除时,如何对hash环上的节点进行重映射,是本领域技术人员亟需解决的技术问题。
技术实现思路
1、鉴于上述问题,本申请提供了一种数据库节点处理方法及相关装置,以实现在数据库节点增加或删除时,亟需对hash环上的节点进行重映射的目的。具体方案如下:
2、本申请第一方面提供一种数据库节点处理方法,包括:
3、获取预先配置的哈希hash环;所述hash环上设置有多个数据库节点以及每一所述数据库节点对应的虚拟节点;
4、接收数据库节点的操作指令;
5、在所述操作指令为节点增加指令、且所述多个数据库节点的总数量不为第一预设阈值的情况下,将新增节点添加到所
6、将所述hash环上的部分虚拟节点分配给所述新增节点,直至所述新增节点的虚拟节点的数量达到指定数量时停止;所述指定数量基于参考数值确定,所述参考数值为所述hash环中所有节点的总数量与所述hash环中的数据库节点的总数量的比值;
7、在所述操作指令为节点删除指令、且所述多个数据库节点的总数量不为第二预设阈值的情况下,将所述节点删除指令中的待删除节点从所述hash环中删除;所述第二预设阈值与所述第一预设阈值具有关联关系;
8、将所述hash环上所述待删除节点的虚拟节点分配给所述hash环中剩余的数据库节点,直至所述待删除节点的虚拟节点的数量为零时停止。
9、在一种可能的实现中,获取预先配置的hash环,包括:
10、获取数据库集群中的数据库节点;
11、计算所述数据库集群的性能参数,以及计算所述数据库集群对应的虚拟节点最大数量值;
12、利用所述数据库集群的性能参数和虚拟节点最大数量值,计算所述数据库集群对应的虚拟节点数量;
13、生成所述虚拟节点数量对应的虚拟节点,将所述虚拟节点分配给所述数据库节点,得到所述数据库节点对应的虚拟节点;
14、将所述数据库节点以及所述数据库节点对应的虚拟节点映射到hash环上,形成hash环。
15、在一种可能的实现中,计算数据库集群的性能参数,以及计算所述数据库集群对应的虚拟节点最大数量值,包括:
16、获取数据库节点的利用率参数,所述利用率参数包括处理器利用率、内存利用率和网络带宽利用率中的至少一个;
17、对所述利用率参数进行加权求和计算,得到所述数据库节点的利用率加权值;
18、对所述利用率加权值进行线性归一化处理,得到所述数据库节点的性能参数;
19、将所述数据库节点的性能参数的平均值作为数据库集群的性能参数;
20、获取预设线性值计算公式,所述预设线性值计算公式包括所述数据库节点的数量小于第二预设阈值时的第一线性值计算公式以及所述数据库节点的数量不小于第二预设阈值时的第二线性值计算公式;所述第一线性值计算公式和所述第二线性值计算公式中配置有线性冗余值;
21、利用所述预设线性值计算公式,计算得到所述数据库集群对应的虚拟节点最大数量值。
22、在一种可能的实现中,利用所述数据库集群的性能参数和虚拟节点最大数量值,计算所述数据库集群对应的虚拟节点数量,包括:
23、计算所述数据库集群的性能参数与虚拟节点最大数量值的乘积;
24、将所述乘积作为所述数据库集群对应的虚拟节点数量。
25、在一种可能的实现中,将所述hash环上的部分虚拟节点分配给所述新增节点,直至所述新增节点的虚拟节点的数量达到指定数量时停止,包括:
26、重复执行将所述hash环上虚拟节点最多的数据库节点的一个虚拟节点分配给所述新增节点的操作,直至所述新增节点的虚拟节点的数量达到指定数量时停止;
27、将所述hash环上所述待删除节点的虚拟节点分配给所述hash环中剩余的数据库节点,直至所述待删除节点的虚拟节点的数量为零时停止,包括:
28、重复执行将所述待删除节点的一个虚拟节点分配给所述hash环上虚拟节点数量最少的数据库节点的操作,直至所述待删除节点的虚拟节点的数量为零时停止。
29、在一种可能的实现中,在所述操作指令为节点增加指令且所述多个数据库节点的总数量为第一预设阈值,或,所述操作指令为节点删除指令且所述多个数据库节点的总数量为第二预设阈值的情况下,还包括:
30、重新确定数据库集群对应的虚拟节点数量;
31、重新生成所述虚拟节点数量对应的虚拟节点;
32、重新将所述虚拟节点分配给当前的数据库节点,得到当前的数据库节点对应的虚拟节点;
33、重新将当前的数据库节点以及当前的数据库节点对应的虚拟节点映射到hash环上,形成hash环,将重新生成的hash环替换已有的hash环。
34、本申请第二方面提供一种数据库节点处理装置,包括:
35、hash环获取模块,用于获取预先配置的哈希hash环;所述hash环上设置有多个数据库节点以及每一所述数据库节点对应的虚拟节点;
36、指令接收模块,用于接收数据库节点的操作指令;
37、节点增加模块,用于在所述操作指令为节点增加指令、且所述多个数据库节点的总数量不为第一预设阈值的情况下,将新增节点添加到所述hash环中;
38、第一节点转移模块,用于将所述hash环上的部分虚拟节点分配给所述新增节点,直至所述新增节点的虚拟节点的数量达到指定数量时停止;所述指定数量基于参考数值确定,所述参考数值为所述hash环中所有节点的总数量与所述hash环中的数据库节点的总数量的比值;
39、节点删除模块,用于在所述操作指令为节点删除指令、且所述多个数据库节点的总数量不为第二预设阈值的情况下,将所述节点删除指令中的待删除节点从所述hash环中删除;所述第二预设阈值与所述第一预设阈值具有关联关系;
40、第二节点转移模块,用于将所述hash环上所述待删除节点的虚拟节点分配给所述hash环中剩余的数据库节点,直至所述待删除节点的虚拟节点的数量为零时停止。
41本文档来自技高网...
【技术保护点】
1.一种数据库节点处理方法,其特征在于,包括:
2.根据权利要求1所述的数据库节点处理方法,其特征在于,获取预先配置的Hash环,包括:
3.根据权利要求2所述的数据库节点处理方法,其特征在于,计算数据库集群的性能参数,以及计算所述数据库集群对应的虚拟节点最大数量值,包括:
4.根据权利要求2所述的数据库节点处理方法,其特征在于,利用所述数据库集群的性能参数和虚拟节点最大数量值,计算所述数据库集群对应的虚拟节点数量,包括:
5.根据权利要求1所述的数据库节点处理方法,其特征在于,将所述Hash环上的部分虚拟节点分配给所述新增节点,直至所述新增节点的虚拟节点的数量达到指定数量时停止,包括:
6.根据权利要求1所述的数据库节点处理方法,其特征在于,在所述操作指令为节点增加指令且所述多个数据库节点的总数量为第一预设阈值,或,所述操作指令为节点删除指令且所述多个数据库节点的总数量为第二预设阈值的情况下,还包括:
7.一种数据库节点处理装置,其特征在于,包括:
8.一种计算机程序产品,其特征在于,包括计算机
9.一种电子设备,其特征在于,包括至少一个处理器和与所述处理器连接的存储器,其中:
10.一种计算机存储介质,其特征在于,所述存储介质承载有一个或多个计算机程序,当所述一个或多个计算机程序被电子设备执行时,能够使所述电子设备实现如权利要求1至6中任意一项所述的数据库节点处理方法。
...【技术特征摘要】
1.一种数据库节点处理方法,其特征在于,包括:
2.根据权利要求1所述的数据库节点处理方法,其特征在于,获取预先配置的hash环,包括:
3.根据权利要求2所述的数据库节点处理方法,其特征在于,计算数据库集群的性能参数,以及计算所述数据库集群对应的虚拟节点最大数量值,包括:
4.根据权利要求2所述的数据库节点处理方法,其特征在于,利用所述数据库集群的性能参数和虚拟节点最大数量值,计算所述数据库集群对应的虚拟节点数量,包括:
5.根据权利要求1所述的数据库节点处理方法,其特征在于,将所述hash环上的部分虚拟节点分配给所述新增节点,直至所述新增节点的虚拟节点的数量达到指定数量时停止,包括:
6.根据权利要求1所述的数据库节点处理方法,其特征在于,...
【专利技术属性】
技术研发人员:林杰,
申请(专利权)人:中国银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。