CN113190607B - 一种基于http请求的数据库负载均衡方法、装置及介质 - Google Patents

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

Info

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
Application number
CN202110555608.0A
Other languages
English (en)
Other versions
CN113190607A (zh
Inventor
杨友兰
刘绍杰
吴文波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI SHENTIE INFORMATION ENGINEERING CO LTD
Original Assignee
SHANGHAI SHENTIE INFORMATION ENGINEERING CO LTD
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHANGHAI SHENTIE INFORMATION ENGINEERING CO LTD filed Critical SHANGHAI SHENTIE INFORMATION ENGINEERING CO LTD
Priority to CN202110555608.0A priority Critical patent/CN113190607B/zh
Publication of CN113190607A publication Critical patent/CN113190607A/zh
Application granted granted Critical
Publication of CN113190607B publication Critical patent/CN113190607B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2151Time 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请求的数据库负载均衡方法、装置及介质,基于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所述的数据库负载均衡方法。
CN202110555608.0A 2021-05-21 2021-05-21 一种基于http请求的数据库负载均衡方法、装置及介质 Active CN113190607B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746918A (zh) * 2021-09-03 2021-12-03 上海幻电信息科技有限公司 超文本传输协议代理方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (10)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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