CN113190607B - 一种基于http请求的数据库负载均衡方法、装置及介质 - Google Patents
一种基于http请求的数据库负载均衡方法、装置及介质 Download PDFInfo
- Publication number
- CN113190607B CN113190607B CN202110555608.0A CN202110555608A CN113190607B CN 113190607 B CN113190607 B CN 113190607B CN 202110555608 A CN202110555608 A CN 202110555608A CN 113190607 B CN113190607 B CN 113190607B
- Authority
- CN
- China
- Prior art keywords
- database
- security check
- connection request
- auth
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000004590 computer program Methods 0.000 claims description 4
- 238000013475 authorization Methods 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 2
- 238000012795 verification Methods 0.000 abstract description 12
- 230000032683 aging Effects 0.000 abstract description 3
- 239000002699 waste material Substances 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2137—Time limited access, e.g. to a computer or data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于HTTP请求的数据库负载均衡方法、装置及介质,方法包括以下步骤:获取HTTP请求形式的连接请求,对连接请求进行安全校验,如果安全校验失败,则给出安全校验失败提示;获取数据库集群中每个数据库的权重,获取数据库集群的当前连接请求次数;基于各个数据库的权重和当前连接请求次数,为连接请求分配数据库;建立数据库连接,执行连接请求中的SQL语句,返回执行结果。与现有技术相比,本发明基于HTTP请求得到连接请求,实现数据库访问负载均衡,对客户端比较友好,尤其是WEB程序和手机端APP应用,采用AUTH时效和用过即废的策略,结合用户口令验证和IP验证,能更好地保障数据库访问安全。
Description
技术领域
本发明涉及负载均衡技术领域,尤其是涉及一种基于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的时效性,更好地保障了数据库的访问安全。
为了实现数据库集群的负载均衡,在面对多个连接请求时,往往根据数据库的权重,将连接请求分配给数据库,权重是根据数据库的性能参数等设定的。
本申请在建立数据库连接时,基于当前连接请求次数和权重,为连接请求分配数据库,实现了数据库访问负载均衡,同时,考虑连接请求的读写属性,实现了数据库集群中数据库的读写分离。利用类的多态实现了数据库类,可支持异构数据库间访问的负载均衡。
本申请在数据库连接失败时,提供了支持自定义熔断时间的连接熔断技术。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (4)
1.一种基于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中,在数据库连接失败时还提供了支持自定义熔断时间的连接熔断控制。
2.一种基于HTTP请求的数据库负载均衡装置,其特征在于,基于如权利要求1所述的数据库负载均衡方法,包括配置模块、客户端和数据库集群,所述配置模块用于进行连接请求和安全校验和数据库集群的负载均衡控制,执行以下步骤:
S1、获取客户端发送的HTTP请求形式的连接请求,对连接请求进行安全校验,如果安全校验通过,则执行步骤S2,否则,给出安全校验失败提示;
S2、获取数据库集群中每个数据库的权重,获取数据库集群的当前连接请求次数;
S3、基于各个数据库的权重和当前连接请求次数,为连接请求分配数据库;
S4、建立客户端与数据库之间的连接,在数据库中执行连接请求中的SQL语句,返回执行结果至客户端。
3.根据权利要求2所述的一种基于HTTP请求的数据库负载均衡装置,其特征在于,安全校验通过后还包括:将HTTP请求的AUTH写入缓存;步骤S1中的安全校验包括:
获取HTTP请求授权AUTH,检查缓存,如果缓存中存在该AUTH,则给出安全校验失败提示;
解密AUTH,获取其中的用户、口令和时间戳信息,如果用户和口令校验失败或时间戳超出有效期,则给出安全校验失败提示;
获取HTTP请求的IP地址,校验IP地址是否正确,如果IP地址不正确,则给出安全校验失败提示。
4.一种存储介质,其上存储有可执行的计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1所述的数据库负载均衡方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110555608.0A CN113190607B (zh) | 2021-05-21 | 2021-05-21 | 一种基于http请求的数据库负载均衡方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110555608.0A CN113190607B (zh) | 2021-05-21 | 2021-05-21 | 一种基于http请求的数据库负载均衡方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113190607A CN113190607A (zh) | 2021-07-30 |
CN113190607B true CN113190607B (zh) | 2024-04-16 |
Family
ID=76984599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110555608.0A Active CN113190607B (zh) | 2021-05-21 | 2021-05-21 | 一种基于http请求的数据库负载均衡方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113190607B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113746918A (zh) * | 2021-09-03 | 2021-12-03 | 上海幻电信息科技有限公司 | 超文本传输协议代理方法及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2222259A1 (en) * | 1997-11-25 | 1999-05-25 | Northern Telecom Limited | Http distributed remote user authentication system |
CN101098336A (zh) * | 2006-06-27 | 2008-01-02 | 中国移动通信集团公司 | Ims终端配置服务器及ims本地化入口点检测方法 |
CN103457869A (zh) * | 2013-08-28 | 2013-12-18 | 北京星网锐捷网络技术有限公司 | 会话保持方法和装置 |
CN103731482A (zh) * | 2013-12-24 | 2014-04-16 | 浪潮电子信息产业股份有限公司 | 一种集群负载均衡系统及其实现方法 |
CN105227353A (zh) * | 2015-09-06 | 2016-01-06 | 深圳市华验防伪科技有限公司 | 一种mysql集群实现方法及系统 |
US9749304B1 (en) * | 2013-07-30 | 2017-08-29 | Google Inc. | System and methods for accessing multiple resources via one identifier |
CN108737176A (zh) * | 2018-05-20 | 2018-11-02 | 湖北九州云仓科技发展有限公司 | 一种数据网关控制方法、电子设备、存储介质及架构 |
CN108733720A (zh) * | 2017-04-24 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 多数据库类型的sql查询的在线校验方法和校验系统 |
CN209525930U (zh) * | 2019-01-30 | 2019-10-22 | 郑州大学 | 一种基于云计算的智能健康监测系统 |
CN112805699A (zh) * | 2019-09-13 | 2021-05-14 | 甲骨文国际公司 | 具有内部部署的认证集成的多租户身份云服务 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10523678B2 (en) * | 2016-10-25 | 2019-12-31 | Sean Dyon | System and method for architecture initiated network access control |
-
2021
- 2021-05-21 CN CN202110555608.0A patent/CN113190607B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2222259A1 (en) * | 1997-11-25 | 1999-05-25 | Northern Telecom Limited | Http distributed remote user authentication system |
CN101098336A (zh) * | 2006-06-27 | 2008-01-02 | 中国移动通信集团公司 | Ims终端配置服务器及ims本地化入口点检测方法 |
US9749304B1 (en) * | 2013-07-30 | 2017-08-29 | Google Inc. | System and methods for accessing multiple resources via one identifier |
CN103457869A (zh) * | 2013-08-28 | 2013-12-18 | 北京星网锐捷网络技术有限公司 | 会话保持方法和装置 |
CN103731482A (zh) * | 2013-12-24 | 2014-04-16 | 浪潮电子信息产业股份有限公司 | 一种集群负载均衡系统及其实现方法 |
CN105227353A (zh) * | 2015-09-06 | 2016-01-06 | 深圳市华验防伪科技有限公司 | 一种mysql集群实现方法及系统 |
CN108733720A (zh) * | 2017-04-24 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 多数据库类型的sql查询的在线校验方法和校验系统 |
CN108737176A (zh) * | 2018-05-20 | 2018-11-02 | 湖北九州云仓科技发展有限公司 | 一种数据网关控制方法、电子设备、存储介质及架构 |
CN209525930U (zh) * | 2019-01-30 | 2019-10-22 | 郑州大学 | 一种基于云计算的智能健康监测系统 |
CN112805699A (zh) * | 2019-09-13 | 2021-05-14 | 甲骨文国际公司 | 具有内部部署的认证集成的多租户身份云服务 |
Non-Patent Citations (2)
Title |
---|
一种基于REST架构的高校移动教务数据开放平台设计方法;赵启升 等;江苏科技大学学报(自然科学版);20141015;第28卷(第05期);500-504 * |
云平台下负载均衡集群中会话保持的研究与实现;郭建金;中国优秀硕士学位论文全文数据库 信息科技辑;20180915(第09期);I139-34 * |
Also Published As
Publication number | Publication date |
---|---|
CN113190607A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10484385B2 (en) | Accessing an application through application clients and web browsers | |
US11930015B2 (en) | Systems and method for authenticating users of a data processing platform from multiple identity providers | |
CN110086822A (zh) | 面向微服务架构的统一身份认证策略的实现方法及系统 | |
US9100398B2 (en) | Enhancing directory service authentication and authorization using contextual information | |
US8032930B2 (en) | Segregating anonymous access to dynamic content on a web server, with cached logons | |
US9507927B2 (en) | Dynamic identity switching | |
US7886341B2 (en) | External authentication against a third-party directory | |
US20100071056A1 (en) | Method and system for multi-protocol single logout | |
US20130179573A1 (en) | Identity provider instance discovery | |
US11599623B2 (en) | Global identity for use in a hybrid cloud network architecture | |
WO2021068518A1 (zh) | 一种身份认证方法、系统、电子设备及存储介质 | |
WO2013049390A2 (en) | System and method for administering server configurations including gui navigation, property sheets, and auto-tab completion | |
US20150215348A1 (en) | Virtual identity of a user based on disparate identity services | |
WO2021013033A1 (zh) | 文件操作方法、装置、设备、系统及计算机可读存储介质 | |
US11163499B2 (en) | Method, apparatus and system for controlling mounting of file system | |
US10609060B2 (en) | Clustering network addresses | |
US20220360575A1 (en) | Security for diverse computing systems | |
WO2018024176A1 (zh) | 一种防止同一用户重复登录的装置和方法 | |
CN111581631A (zh) | 一种基于redis的单点登录方法 | |
CN113190607B (zh) | 一种基于http请求的数据库负载均衡方法、装置及介质 | |
US9542549B2 (en) | Toolbar for single sign-on and non-single sign-on sites, applications, systems, and sessions | |
US20110126266A1 (en) | Method and system for authenticating subaccount users | |
WO2012000455A1 (zh) | 一种客户端及负载均衡的方法 | |
US20080027944A1 (en) | Globally unique instance identification | |
CN110430211A (zh) | 一种虚拟化云桌面系统及操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |