掌桥专利:专业的专利平台
掌桥专利
首页

一种基于HTTP请求的数据库负载均衡方法、装置及介质

文献发布时间:2023-06-19 12:02:28


一种基于HTTP请求的数据库负载均衡方法、装置及介质

技术领域

本发明涉及负载均衡技术领域,尤其是涉及一种基于HTTP请求的数据库负载均衡方法、装置及介质。

背景技术

负载均衡集群是由一组相互独立的计算节点构成的,通过常规网络或专用网络进行连接,各节点之间相互协作、共同负载、均衡压力。对客户端来说,整个集群可以视为一台具有超高性能的独立服务器。在数据库负载均衡技术领域,为了实现数据库的负载均衡,首先要有一个控制程序,来控制数据库的连接。这个控制程序截断了应用程序和数据库的直接连接,所有的应用程序先访问这个控制程序,然后再由控制程序来决定访问哪个数据库。常用的控制程序有数据库连接前置中间件和数据库连接代理中间件。

前置中间件截断了应用程序和数据库的直接连接,所有的数据库连接访问要先连接前置中间件,然后由前置中间件根据负载均衡策略访问数据库。该方式的优点是对应用程序而言,访问是透明的,访问前置中间件就像访问数据库一样,该方式的缺点是受限于专用数据库,不支持异构数据库。

代理中间件是一个旁路控制,应用程序在访问数据库之前先访问代理中间件,代理中间件根据负载均衡策略选择一个数据库返回给应用程序,应用程序再和数据库建立真正的连接。该方式的优点是代理中间件是旁路的,只是数据库负载均衡策略的管理者,不参与数据库操作,不会成为数据库访问的瓶颈,该方式的缺点是对应用程序有侵入性,应用程序和数据库想和建立连接需要两次请求。

发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于HTTP请求的数据库负载均衡方法、装置及介质,基于HTTP请求得到连接请求,实现数据库访问负载均衡,对客户端比较友好,尤其是WEB程序和手机端APP应用,采用AUTH时效和用过即废的策略,结合用户口令验证和IP验证,能更好地保障数据库访问安全。

本发明的目的可以通过以下技术方案来实现:

一种基于HTTP请求的数据库负载均衡方法,包括以下步骤:

S1、获取HTTP请求形式的连接请求,对连接请求进行安全校验,如果安全校验通过,则执行步骤S2,否则,给出安全校验失败提示;

S2、获取数据库集群中每个数据库的权重,获取数据库集群的当前连接请求次数;

S3、基于各个数据库的权重和当前连接请求次数,为连接请求分配数据库;

S4、建立数据库连接,执行连接请求中的SQL语句,返回执行结果。

进一步的,步骤S1中,安全校验通过后还包括:将HTTP请求的AUTH写入缓存。

进一步的,步骤S1中的安全校验包括AUTH有效性校验:获取HTTP请求授权AUTH,检查缓存,如果缓存中存在该AUTH,则给出安全校验失败提示。

进一步的,步骤S1中的安全校验包括用户口令时间戳校验:解密AUTH,获取其中的用户、口令和时间戳信息,如果用户和口令校验失败或时间戳超出有效期,则给出安全校验失败提示。

进一步的,步骤S1中的安全校验包括IP校验:获取HTTP请求的IP地址,校验IP地址是否正确,如果IP地址不正确,则给出安全校验失败提示。

进一步的,步骤S3中还包括:基于连接请求中的SQL语句的读写属性,筛选得到数据库集群中所有支持该连接请求的数据库,并按照这些数据库的权重和这些数据库的当前连接请求次数,为连接请求分配数据库。

进一步的,步骤S4中,在数据库连接失败时还提供了支持自定义熔断时间的连接熔断控制。

一种基于HTTP请求的数据库负载均衡装置,包括配置模块、客户端和数据库集群,所述配置模块用于进行连接请求和安全校验和数据库集群的负载均衡控制,执行以下步骤:

S1、获取客户端发送的HTTP请求形式的连接请求,对连接请求进行安全校验,如果安全校验通过,则执行步骤S2,否则,给出安全校验失败提示;

S2、获取数据库集群中每个数据库的权重,获取数据库集群的当前连接请求次数;

S3、基于各个数据库的权重和当前连接请求次数,为连接请求分配数据库;

S4、建立客户端与数据库之间的连接,在数据库中执行连接请求中的SQL语句,返回执行结果至客户端。

一种存储介质,其上存储有可执行的计算机程序,所述计算机程序被执行时实现数据库负载均衡方法。

与现有技术相比,本发明基于HTTP请求得到连接请求,实现数据库访问负载均衡,对客户端比较友好,尤其是WEB程序和手机端APP应用,采用AUTH时效和用过即废的策略,结合用户口令验证和IP验证,能更好地保障数据库访问安全。

附图说明

图1为数据库负载均衡方法的流程图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

实施例1:

一种基于HTTP请求的数据库负载均衡方法,如图1所示,包括以下步骤:

S1、获取HTTP请求形式的连接请求,对连接请求进行安全校验,如果安全校验通过,则执行步骤S2,否则,给出安全校验失败提示;

S2、获取数据库集群中每个数据库的权重,获取数据库集群的当前连接请求次数;

S3、基于各个数据库的权重和当前连接请求次数,为连接请求分配数据库;

S4、建立数据库连接,执行连接请求中的SQL语句,返回执行结果。

一种基于HTTP请求的数据库负载均衡装置,包括配置模块、客户端和数据库集群,配置模块用于进行连接请求和安全校验和数据库集群的负载均衡控制,执行以下步骤:

S1、获取客户端发送的HTTP请求形式的连接请求,对连接请求进行安全校验,如果安全校验通过,则执行步骤S2,否则,给出安全校验失败提示;

S2、获取数据库集群中每个数据库的权重,获取数据库集群的当前连接请求次数;

S3、基于各个数据库的权重和当前连接请求次数,为连接请求分配数据库;

S4、建立客户端与数据库之间的连接,在数据库中执行连接请求中的SQL语句,返回执行结果至客户端。

一种存储介质,其上存储有可执行的计算机程序,计算机程序被执行时实现数据库负载均衡方法。

本实施例中,定义conf_nodes[node]为配置节点,用于进行安全验证以及数据库负载均衡控制,以下是C++语言实现示例:

采用基于HTTP请求形式的连接请求实现数据库访问负载均衡,对客户端比较友好,尤其是WEB程序和手机端APP应用。

使用HTTP请求作为连接请求的最大挑战就是安全性,本申请进行了安全验证,包括AUTH有效性验证、用户口令验证、时间戳有效性验证以及IP验证,AUTH只有第一次使用时是有效的,用后即废,结合AUTH的时效性,更好地保障了数据库的访问安全。

为了实现数据库集群的负载均衡,在面对多个连接请求时,往往根据数据库的权重,将连接请求分配给数据库,权重是根据数据库的性能参数等设定的。

本申请在建立数据库连接时,基于当前连接请求次数和权重,为连接请求分配数据库,实现了数据库访问负载均衡,同时,考虑连接请求的读写属性,实现了数据库集群中数据库的读写分离。利用类的多态实现了数据库类,可支持异构数据库间访问的负载均衡。

本申请在数据库连接失败时,提供了支持自定义熔断时间的连接熔断技术。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

相关技术
  • 一种基于HTTP请求的数据库负载均衡方法、装置及介质
  • 一种基于分布式数据库的负载均衡调整方法及装置
技术分类

06120113148550