System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及信息,提供一种负载均衡方法、装置、设备及介质。
技术介绍
1、众所周知,目前主流的负载均衡方式主要分为两种:硬件负载均衡方式和软件负载均衡方式。其中,硬件负载均衡方式常采用数据库外接一个硬件负载均衡器,来实现访问的负载均衡。由于硬件负载均衡器主要工作原理是在接受客户端访问请求之后,按照一定的调度算法选择负载较轻的服务器,并与之建立一条连接将请求发送到数据库。因此,硬件负载均衡器虽然具有高性能、高可靠性和低延迟等优点,但由于其高昂的成本和复杂的配置,使得其不适用于所有规模的企业。
2、软件负载均衡方式常采用基于代理服务器、基于虚拟ip、基础操作系统和基于负载均衡中间件,来实现访问的负载均衡。因此,软负载均衡具备配置简单、使用灵活、成本较低以及稳定性好等优势,但由于其负载能力受限于软件所在服务器性能,因此,相比于硬件负载均衡方式,软件负载均衡方式的复杂性更高、功能较少更少以及性能更低。
3、然而,无论是硬件负载均衡方式还是软件负载均衡方式,对数据库管理系统而言,都是外部系统,都需要单独消耗资源进行处理。因此,如何在负载均衡中降低资源消耗成了目前亟待解决的问题。
技术实现思路
1、本申请提供一种负载均衡方法、装置、设备及介质,用于解决在负载均衡中资源消耗高的问题。
2、一方面,提供一种负载均衡方法,应用于数据库的jdbc驱动,所述方法包括:
3、确定数据库集群的不可用节点连表中是否存在不可用节点;
4、若确定数据库集群
5、若确定探活作业启动,则根据所述数据库集群的节点池中各个节点的建立连接次数和连接失败次数,确定各个节点是否为不可用节点;
6、针对所述节点池中的任一个节点,若确定所述任一个节点为不可用节点,则将所述任一个节点从所述节点池中移动至所述不可用节点连表中。
7、可选的,在确定数据库集群的不可用节点连表中是否存在不可用节点之前,所述方法还包括:
8、在所述数据库集群的url连接串中,新增ips属性;其中,所述ips属性用于配置数据库集群的所有节点的ip地址;
9、在所述数据库集群中,新增所述节点池;其中,所述节点池为全局连接控制列表ipvectors,所述节点池中的各个节点为vector对象,且所述各个节点包括ip地址、监听端口、建立连接次数、连接失败次数以及是否是新接入ip节点这五个元素。
10、可选的,在新增所述节点池之后,所述方法还包括:
11、在第一次解析所述url连接串时,以逗号为分隔符,将ips属性值拆解为多个节点;
12、将每个节点以第一预设元素形式放入所述节点池中,并启动新增节点监听作业;其中,所述第一预设元素形式包含相应节点的五个元素各自的元素值;
13、根据所述新增节点监听作业,按照预设间隔时间执行一次数据库集群节点列表的获取,并将所述数据库集群节点列表与所述节点池中的节点进行比较,确定所述数据库集群节点列表中是否存在新增节点;
14、若确定所述数据库集群节点列表中存在新增节点,则将所述新增节点以第二预设元素形式放入所述节点池中;其中,所述第二预设元素形式包含相应节点的五个元素各自的元素值。
15、可选的,在若确定数据库集群的不可用节点连表中存在不可用节点,则确定探活作业是否启动之后,所述方法还包括:
16、若确定探活作业启动,则根据预设的全局变量,确定目标节点选择方式;
17、根据所述目标节点选择方式,对所述不可用节点连表中的所有节点建立连接;
18、针对所述不可用节点连表中的任一个节点,确定与所述任一个节点是否连接成功;
19、若确定与所述任一个节点连接成功,则将所述任一个节点以第二预设元素形式从所述不可用节点连表中移动至所述节点池中;其中,所述第二预设元素形式包含相应节点的五个元素各自的元素值。
20、可选的,所述根据所述数据库集群的节点池中各个节点的建立连接次数和连接失败次数,确定各个节点是否为不可用节点的步骤,包括:
21、若所述目标节点选择方式为轮转分配模式,则从所述节点池中循环轮转获取连接节点;
22、若所述目标节点选择方式为新节点加入模式,则根据所述节点池中各个节点的连接负载,获取连接节点;
23、确定所述连接节点的第五个元素是否为false;
24、若确定所述连接节点的第五个元素为false,则将所述节点池中新增节点的第五个元素设置为false,并将所述目标节点选择方式设置为轮转分配模式。
25、可选的,所述根据所述数据库集群的节点池中各个节点的建立连接次数和连接失败次数,确定各个节点是否为不可用节点的步骤,包括:
26、针对所述连接节点,若确定所述连接节点为可用节点,则尝试与所述连接节点建立连接;
27、确定所述连接节点的连接失败次数是否大于预设次数;
28、若确定所述连接节点的连接失败次数大于预设次数,则将所述连接节点确定为不可用节点。
29、可选的,所述若确定所述连接节点的连接失败次数大于预设次数,则将所述连接节点确定为不可用节点的步骤,包括:
30、确定所述连接节点的连接失败次数是否为0;
31、若确定所述连接节点的连接失败次数为0,则将所述连接失败次数值更新为1,并继续执行从所述节点池中选择目标节点建立连接的步骤;
32、若确定所述连接节点的连接失败次数不为0,则将所述连接节点确定为不可用节点。
33、一方面,提供一种负载均衡装置,应用于数据库的jdbc驱动,所述装置包括:
34、第一确定单元,用于确定数据库集群的不可用节点连表中是否存在不可用节点;
35、第二确定单元,用于若确定数据库集群的不可用节点连表中存在不可用节点,则确定探活作业是否启动;
36、第三确定单元,用于若确定探活作业启动,则根据所述数据库集群的节点池中各个节点的建立连接次数和连接失败次数,确定各个节点是否为不可用节点;
37、节点移动单元,用于针对所述节点池中的任一个节点,若确定所述任一个节点为不可用节点,则将所述任一个节点从所述节点池中移动至所述不可用节点连表中。
38、一方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一种方法。
39、与现有技术相比,本申请的有益效果为:
40、在本申请实施例中,在对数据库进行负载均衡时,可以采用数据库的jdbc驱动来进行负载均衡,具体的,首先,可以确定数据库集群的不可用节点连表中是否存在不可用节点;然后,若确定数据库集群的不可用节点连表中存在不可用节点,则可以确定探活作业是否启动;接下来,若确定探活作业启动,则可以根据本文档来自技高网...
【技术保护点】
1.一种负载均衡方法,其特征在于,应用于数据库的JDBC驱动,所述方法包括:
2.如权利要求1所述的方法,其特征在于,在确定数据库集群的不可用节点连表中是否存在不可用节点之前,所述方法还包括:
3.如权利要求2所述的方法,其特征在于,在新增所述节点池之后,所述方法还包括:
4.如权利要求1所述的方法,其特征在于,在若确定数据库集群的不可用节点连表中存在不可用节点,则确定探活作业是否启动之后,所述方法还包括:
5.如权利要求4所述的方法,其特征在于,所述根据所述数据库集群的节点池中各个节点的建立连接次数和连接失败次数,确定各个节点是否为不可用节点的步骤,包括:
6.如权利要求5所述的方法,其特征在于,所述根据所述数据库集群的节点池中各个节点的建立连接次数和连接失败次数,确定各个节点是否为不可用节点的步骤,包括:
7.如权利要求6所述的方法,其特征在于,所述若确定所述连接节点的连接失败次数大于预设次数,则将所述连接节点确定为不可用节点的步骤,包括:
8.一种负载均衡装置,其特征在于,应用于数据库的JD
9.一种电子设备,其特征在于,所述设备包括:
10.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1-7中任一所述的方法。
...【技术特征摘要】
1.一种负载均衡方法,其特征在于,应用于数据库的jdbc驱动,所述方法包括:
2.如权利要求1所述的方法,其特征在于,在确定数据库集群的不可用节点连表中是否存在不可用节点之前,所述方法还包括:
3.如权利要求2所述的方法,其特征在于,在新增所述节点池之后,所述方法还包括:
4.如权利要求1所述的方法,其特征在于,在若确定数据库集群的不可用节点连表中存在不可用节点,则确定探活作业是否启动之后,所述方法还包括:
5.如权利要求4所述的方法,其特征在于,所述根据所述数据库集群的节点池中各个节点的建立连接次数和连接失败次数,确定各个节点是否为不可用节点的步骤,包括:<...
【专利技术属性】
技术研发人员:曹茜,王汉瑛,苏德财,吴生勇,冯治龙,李尤兵,邓隆,
申请(专利权)人:成都虚谷伟业科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。