CN116011013A - 数据库访问方法和装置、计算设备和计算机程序产品 - Google Patents

数据库访问方法和装置、计算设备和计算机程序产品 Download PDF

Info

Publication number
CN116011013A
CN116011013A CN202310003437.XA CN202310003437A CN116011013A CN 116011013 A CN116011013 A CN 116011013A CN 202310003437 A CN202310003437 A CN 202310003437A CN 116011013 A CN116011013 A CN 116011013A
Authority
CN
China
Prior art keywords
database
database access
service engine
access
scheduling module
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.)
Pending
Application number
CN202310003437.XA
Other languages
English (en)
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies 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 Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to CN202310003437.XA priority Critical patent/CN116011013A/zh
Publication of CN116011013A publication Critical patent/CN116011013A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/44Program or device 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/602Providing cryptographic facilities or services
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • 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/2129Authenticate client device independently of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据库访问方法、数据库访问调度模块、计算设备和计算机程序产品。在该方法中,数据库访问调度模块使用数据库访问服务引擎的标识(例如数据库访问服务引擎的IP地址)与该数据库访问服务引擎建立通信连接。该数据库访问调度模块接收该数据库访问服务引擎发送的访问请求,该访问请求携带有数据库实例的标识。该数据库访问调度模块向所述数据库实例发送所述访问请求。这样,基于数据库访问调度模块主动与数据库访问服务引擎建立的通信连接,该数据库访问服务引擎接收到应用的访问请求时,可以通过该数据库访问调度模块向所述数据库实例发送所述访问请求。

Description

数据库访问方法和装置、计算设备和计算机程序产品
技术领域
本申请涉及数据库领域,尤其涉及数据库访问方法、数据库访问发起模块、数据库访问服务引擎、数据库访问调度模块、计算设备和计算机程序产品。
背景技术
现有技术中,数据库连接池部署在应用内部。一个数据库连接池只为一个应用提供访问数据库实例的服务。
另外,单个应用可以分布式地部署在多个服务器上。每个服务器上部署该应用的数据库连接池,每个数据库连接池中的所有连接用于连接同一个数据库实例。换句话说,如果该个应用需要通过每个服务器连接多个数据库实例,则在每个服务器上均需要针对每个数据库实例部署一个连接池。但是,单个应用在不同服务器上用于访问同一数据库实例的数据库连接池,也不能在不同服务器之间共享。
另外,现有技术中,在建立连接池中的连接来访问数据库实例时,是使用数据库实例的网络之间互连的协议(Internet Protocol,IP)地址和端口(port)号)来建立该连接。
发明内容
有鉴于此,本申请提供了一种数据库访问方法、数据库访问发起模块、数据库访问服务引擎、计算设备和计算机程序产品,避免暴漏数据库实例的IP地址和端口来建立用于访问该数据库实例的连接。
第一方面,在本申请提供的数据库访问方法中,数据库访问调度模块使用数据库访问服务引擎的标识(例如数据库访问服务引擎的IP地址)与该数据库访问服务引擎建立通信连接。后续,该数据库访问调度模块接收该数据库访问服务引擎发送的访问请求,该访问请求携带有数据库实例的标识。该数据库访问调度模块向所述数据库实例发送所述访问请求。
这样,基于数据库访问调度模块主动与数据库访问服务引擎建立的通信连接,该数据库访问服务引擎接收到应用的访问请求时,可以通过该数据库访问调度模块向所述数据库实例发送所述访问请求。
第一方面的一种可能设计,在数据库访问调度模块向所述数据库访问服务引擎发送建立所述通信连接的请求时,在该请求中携带所述数据库访问服务引擎的标识和所述数据库访问服务引擎的公钥。这样,所述数据库访问引擎可以基于该数据库访问服务引擎的公钥对是否同意与该数据库访问调度模块建立通信连接进行鉴权。
第一方面的一种可能设计,在所述数据库访问调度模块从所述数据库访问服务引擎接收的所述访问请求为基于所述数据库访问调度模块的公钥加密的访问请求时,所述数据库访问调度模块使用所述数据库访问调度模块的私钥从加密的访问请求中解密出访问请求,以便向所述数据库实例发送解密的访问请求。
第一方面的一种可能设计,数据库实例处理该访问请求并得到处理结果,并将该处理结果发送数据库访问调度模块。该数据库访问调度模块接收该数据库实例发送的该处理结果。然后,该数据库访问调度模块向该数据库访问服务引擎发送所述处理结果。这样,数据库访问服务引擎通过该访问请求实现了对该数据库实例的访问。
可选地,数据库访问调度模块使用所述数据库访问服务引擎的公钥对所述处理结果加密,以便所述数据库访问调度模块向所述数据库访问服务引擎发送加密的所述处理结果。
第二方面,在本申请提供的数据库访问方法中,如果应用需要访问数据库实例,则该应用向数据库访问发起模块发送应用的访问请求,该访问请求携带数据库实例的标识。
该数据库访问发起模块在接收到该访问请求时,确定用于访问该数据库实例的数据库访问服务引擎,向确定的数据库访问服务引擎发送所述访问请求。该数据库访问服务引擎是独立于该应用部署的。
该数据库访问服务引擎可以与数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)建立连接。
如果该连接是建立在数据库访问服务引擎与数据库实例之间的,则该数据库访问服务引擎可以通过该连接向该数据库实例发送该访问请求,该数据库实例处理该访问请求。
如果该连接是建立在数据库访问服务引擎与数据库访问调度模块之间的,则该数据库访问服务引擎可以通过该连接向该数据库访问调度模块发送该访问请求。这样,该数据库访问调度模块可以将该访问请求发送至该数据库实例,从而该数据库实例可以处理该访问请求。
相比于现有技术是使用应用内部的连接池提供的连接来访问数据库实例,本申请是通过独立于应用的数据库访问服务引擎来实现对数据库实例的访问。另外,用于访问数据库实例的连接是访问服务引擎建立的,并非应用维护的,从而减少了应用的负载。
第二方面的一种可能设计,该数据库访问发起模块在接收到该访问请求时,数据库访问发起模块从多个数据库访问服务引擎中选择一个数据库访问服务引擎,向选择的数据库访问服务引擎发送该访问请求。这样,多个数据库访问服务引擎可以分担转发多个访问请求的压力。
第二方面的一种可能设计,该数据库访问发起模块在接收到该访问请求时,数据库访问发起模块根据多个数据库访问服务引擎的负载,从所述多个数据库访问服务引擎中选择一个数据库访问服务引擎。这样,可以在多个数据库访问服务引擎实现负载分担。
可选地,每个数据库访问服务引擎的负载,是指该个数据库访问服务引擎与数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)建立的连接的条数。条数越多,则该个数据库访问服务引擎的负载越大;反之,条数越少,则该个数据库访问服务引擎的负载越小。
第二方面的一种可能设计,该数据库访问发起模块在接收到该访问请求时,数据库访问发起模块从多个数据库访问服务引擎中选择负载最小的数据库访问服务引擎。可选地,每个数据库访问服务引擎的负载,是指该个数据库访问服务引擎与数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)建立的连接的条数。
第二方面的一种可能设计,该数据库访问发起模块在接收到该访问请求时,如果该访问请求携带所述数据库实例的标识,并且已存在与该数据库实例建立了连接的数据库访问服务引擎,则确定与所述数据库实例的标识绑定的数据库访问服务引擎。
第二方面的一种可能设计,该数据库访问发起模块在接收到该访问请求时,如果所述访问请求携带的数据库访问调度模块的标识,并且已存在与该数据库访问调度模块建立了连接的数据库访问服务引擎,确定与所述数据库访问调度模块绑定的数据库访问服务引擎。这样,该数据库访问发起模块向该数据库访问服务引擎发送该访问请求,从而所述数据库访问调度模块才会从所述数据库访问服务引擎接收到所述访问请求。由于该访问请求指定的数据库实例是与该数据库访问调度模块关联的,待该数据库访问调度模块接收到该访问请求,该数据库访问调度模块才能够转发该访问请求至该访问请求指定的数据库实例。
第二方面的一种可能设计,所述数据库访问服务引擎在接收到该访问请求时,该数据库访问服务引擎根据所述数据库实例的标识建立所述数据库访问服务引擎与所述数据库实例的连接。这样,基于该连接,在所述数据库访问服务引擎与所述数据库实例之间可以传输数据,例如数据库访问服务引擎向数据库实例发送该访问请求,例如该数据库实例向该数据库访问服务引擎发送该访问请求对应的处理结果。
第二方面的一种可能设计,所述数据库访问服务引擎在接收到该访问请求时,如果所述访问请求携带了标识连接的关键字,使用所述关键字标识的在所述数据库访问服务引擎与所述数据库实例之间已建立的连接,向所述数据库实例发送所述访问请求。这样,如果该关键字是应用指定的,该应用可以基于该关键字来实现使用同一连接访问同一数据库实例。
第二方面的一种可能设计,所述数据库访问服务引擎在接收到该访问请求时,如果所述访问请求没有携带用于标识连接的关键字,该数据库访问服务引擎根据所述数据库实例的标识建立所述数据库访问服务引擎与所述数据库实例的连接。由于该访问请求没有携带用于标识连接的关键字,即使存在所述数据库访问服务引擎与所述数据库实例之间的已有连接,该数据库访问服务引擎仍需要新建一条连接,使用新建的连接来在所述数据库访问服务引擎与所述数据库实例之间传输该访问请求相关的数据(例如该访问请求或者该访问请求对应的处理结果)。
第二方面的一种可能设计,所述数据库访问服务引擎在接收到该访问请求时,如果所述访问请求携带有数据库访问调度模块的标识,数据库访问服务引擎向所述数据库访问调度模块发送所述访问请求。
举例说明,在该数据库访问服务引擎与该数据库访问调度模块之间已经建立了通信连接的情况下,应用可以在访问请求中指定数据库访问调度模块的标识。这样,数据库访问服务引擎可以基于数据库访问调度模块的标识,确定该通信连接;从而,数据库访问服务引擎可以继续使用该通信连接,来实现向该数据库访问调度模块发送访问请求。
如果是多个应用分别在自己的访问请求中指定了相同的数据库访问调度模块的标识,则可以共用数据库访问服务引擎、在该数据库访问服务引擎与该数据库访问调度模块之间的通信连接和该数据库访问调度模块来实现这些访问请求的相关数据的传输。
第二方面的一种可能设计,在数据库实例处理访问请求并生成该访问请求对应的处理结果之后,如果该数据库实例是直接与数据库访问服务引擎连接的,则该数据库实例向数据库访问服务引擎发送该处理结果;如果该数据库实例是与数据库访问调度模块连接的,则该数据库实例向该数据库访问调度模块发送该处理结果,以便,该数据库访问调度模块将该处理结果转发至数据库访问服务引擎。
该数据库访问服务引擎向该数据库访问发起模块发送该处理结果。相应地,该数据库访问发起模块向该应用发送该处理结果。
这样,应用可以通过访问请求实现对该数据库实例的访问,并得到该访问请求的处理结果。
第三方面,本申请提供一种数据库访问装置。该装置包括的功能模块,用于实现第一方面或第一方面的任意可能设计提供的方中由数据库访问发起模块执行的步骤,或者用于实现第二方面或第二方面的任意可能设计提供的方中由数据库访问发起模块执行的步骤。
本申请提供另一种数据库访问装置。该装置包括的功能模块,用于实现第一方面或第一方面的任意可能设计提供的方中由数据库访问服务引擎执行的步骤,或者用于实现第二方面或第二方面的任意可能设计提供的方法中由该数据库访问服务引擎执行的步骤。
本申请提供另一种数据库访问装置。该装置包括的功能模块,用于实现第一方面或第一方面的任意可能设计提供的方中由数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤,或者用于实现第二方面或第二方面的任意可能设计提供的方法中由该数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤。
第三方面,本申请提供一种计算设备,该计算设备包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令,使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由数据库访问发起模块执行的步骤,或者使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由该数据库访问服务引擎执行的步骤,或者使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由该数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤,或者使得该计算设备执行上述第二方面或者第二方面的各种可能设计提供的方法中由数据库访问发起模块执行的步骤,或者使得该计算设备执行上述第二方面或者第二方面的各种可能设计提供的方法中由该数据库访问服务引擎执行的步骤,或者使得该计算设备执行上述第二方面或者第二方面的各种可能设计提供的方法中由该数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当计算设备的处理器执行该计算机指令时,该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由数据库访问发起模块执行的步骤,或者该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由该数据库访问服务引擎执行的步骤,或者该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由该数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤,或者该计算设备执行上述第二方面或者第二方面的各种可能设计提供的方法中由数据库访问发起模块执行的步骤,或者该计算设备执行上述第二方面或者第二方面的各种可能设计提供的方法中由该数据库访问服务引擎执行的步骤,或者该计算设备执行上述第二方面或者第二方面的各种可能设计提供的方法中由该数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤。
第五方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由数据库访问发起模块执行的步骤,或者使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由该数据库访问服务引擎执行的步骤,或者使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由该数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤,或者使得该计算设备执行上述第二方面或者第二方面的各种可能设计提供的方法中由数据库访问发起模块执行的步骤,或者使得该计算设备执行上述第二方面或者第二方面的各种可能设计提供的方法中由该数据库访问服务引擎执行的步骤,或者使得该计算设备执行上述第二方面或者第二方面的各种可能设计提供的方法中由该数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤。
附图说明
图1为本申请适用的应用场景中的一种示意图;
图2为本申请适用的应用场景中的一种示意图;
图3为本申请适用的应用场景中的一种示意图;
图4为本申请提供的数据库访问方法的一种流程示意图;
图5为本申请提供的数据库访问方法的一种流程示意图;
图6为本申请提供的数据库访问发起模块600的一种逻辑结构示意图;
图7为本申请提供的数据库访问服务引擎700的一种逻辑结构示意图;
图8为本申请提供的数据库访问调度模块800的一种逻辑结构示意图;
图9为本申请提供的计算设备900的一种结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请提供的技术方案进行描述。
图1提供了本申请适用的一种可能场景。数据库访问发起模块(例如数据库访问发起模块111、数据库访问发起模块112、数据库访问发起模块113),用于接收访问请求,和将该访问请求转发至数据库访问服务引擎。该数据库访问服务引擎(例如数据库访问服务引擎121、数据库访问服务引擎122、数据库访问服务引擎123),用于将该访问请求转发至数据库访问实现模块。该数据库访问实现模块(例如数据库访问实现模块131、数据库访问实现模块132、数据库访问实现模块133),用于调度或者处理该访问请求。
本申请中,该数据库访问服务引擎独立于应用部署。例如,该数据库访问服务引擎没有集成到该应用中。例如,该数据库访问服务引擎与该应用部署在不同服务器上。这样,该数据库访问服务引擎可以为不同数据库访问发起模块服务。
可选地,该数据库访问发起模块可以集成到应用中;可选地,该数据库访问发起模块可以独立于该应用部署,例如该应用和该数据库访问发起模块同时部署在该应用所在的服务器上。
该数据库访问发起模块,可以接收来自该应用的访问请求。一种可能的实现方式,该访问请求可以包括SQL格式的语句,下文可以简称“SQL格式的语句”为“SQL语句”。例如,用户可以操作该应用来录入SQL语句,以触发该应用生成包括该SQL语句的访问请求。
可选地,该数据库访问发起模块可以是软件开发工具包(software developmentkit,SDK)的方式实现。
一种可能的实现方式,每个数据库访问发起模块为单个应用提供服务。具体地,每个数据库访问发起模块接收各自负责的应用所产生的访问请求。举例说明,数据库访问发起模块111可以负责接收一个应用的访问请求;数据库访问发起模块112和数据库访问发起模块113可以同时负责接收另一个应用的访问请求。例如,该另一个应用可以向数据库访问发起模块112或者数据库访问发起模块113发送访问请求,这样可以通过数据库访问发起模块112和数据库访问发起模块113实现接收该另一个应用的访问请求的负载均衡。
数据库访问发起模块,可以向数据库访问服务引擎发送访问请求。
举例说明,以图1为例,数据库访问发起模块111可以查询元数据库14,通过元数据库14确定出当前负载最小的数据库访问服务引擎为数据库访问服务引擎121。从而,数据库访问发起模块111向数据库访问服务引擎121发送应用的访问请求。数据库访问服务引擎之间可以做负载均衡。
举例说明,结合图1和图2,在数据库访问实现模块131是该数据库实例231的场景下,如果该应用通过访问请求指定了要访问的数据库实例231的标识(例如该数据库实例231的网络之间互连的协议(Internet Protocol,IP)地址和端口(port)号),数据库访问发起模块111在元数据库14记录该数据库实例231的标识与数据库访问服务引擎121的绑定关系。后续,数据库访问发起模块111在接收到该应用的新访问请求时,如果该新访问请求携带该数据库实例231的标识,则数据库访问发起模块111使用该数据库实例231的标识在元数据库14查找到该绑定关系,从而将该新访问请求发送至该绑定关系指定的数据库访问服务引擎121。
另外,结合图1和图2,在数据库访问实现模块131是该数据库实例231的场景下,数据库访问服务引擎121可以根据数据库实例231的标识,建立访问该数据库实例231的连接(connection)。一种可能的实现方式,数据库访问服务引擎121成功建立与该数据库实例231的连接之后,数据库访问服务引擎121记录用于标识该连接的关键字(key)。可选地,数据库访问服务引擎121还可以将该关键字发送至该数据库访问发起模块111,以便该数据库访问发起模块111将该关键字反馈至该应用。
可选地,数据库访问服务引擎121还可以在该元数据库14记录数据库访问服务引擎121已建立的连接的条数。这样,该元数据库14中记录的属于数据库访问服务引擎121的连接的条数越多,则数据库访问服务引擎121的负载越大;反之,该元数据库14中记录的属于数据库访问服务引擎121的连接的条数越少,则数据库访问服务引擎121的负载越小。类似地,元数据库14会记录所有数据库访问服务引擎各自具有的连接的条数;后续,数据库访问发起模块可以根据连接的条数在多个数据库访问服务引擎之间做负载均衡,例如根据连接的条数从图1所示的多个数据库访问服务引擎中选择负载最小的数据库访问服务引擎。
本申请的一种可能实现方式,结合图1和图2,数据库访问实现模块可以是数据库实例。数据库实例在接收到数据库访问服务引擎发送的访问请求时,数据库实例处理该访问请求。举例说明,数据库访问实现模块133是数据库实例233,数据库实例233接收到数据库访问服务引擎122发送的访问请求后,根据该访问请求携带的SQL语句。
本申请的一种可能实现方式,结合图1和图3,数据库访问实现模块可以数据库访问调度模块,该数据库访问调度模块与至少一个数据库实例通信连接。数据库访问调度模块在接收到数据库访问服务引擎发送的访问请求时,数据库访问调度模块将该访问请求发送至该访问请求指定的数据库实例。举例说明,数据库访问调度模块333接收到数据库访问服务引擎122发送的访问请求后,如果该访问请求携带数据库实例373的标识,则将该访问请求发送至该数据库实例373。举例说明,数据库访问调度模块331接收到数据库访问服务引擎121发送的访问请求后,如果该访问请求携带数据库实例372的标识,则将该访问请求发送至该数据库实例372。
本申请的一种可能实现方式,如图3所示,如果数据库访问调度模块与数据库访问服务引擎部署在同一网络中;例如数据库访问调度模块333与数据库访问服务引擎122均部署在公有云来提供服务,即数据库访问调度模块333与数据库访问服务引擎122均部署在该公有云所使用的网络中。数据库访问调度模块333可以访问数据库实例373和数据库实例374,数据库访问调度模块333接收到数据库访问服务引擎122发送的访问请求后,如果该访问请求携带数据库实例373的标识,则将该访问请求发送至该数据库实例373,如果该访问请求携带数据库实例374的标识,则将该访问请求发送至该数据库实例374。可选地,数据库实例373和数据库实例374均部署在该公有云来提供服务,即数据库实例373和数据库实例374均部署在该公有云所使用的网络中。
本申请的一种可能实现方式,如图3所示,如果数据库访问实现模块部署在局域网内,则数据库访问实现模块是该局域网中的数据库访问调度模块331。该数据库访问调度模块331可以访问该局域网内的数据库实例。举例说明,局域网381中的数据库访问调度模块331接收到数据库访问服务引擎121发送的访问请求;数据库访问调度模块331根据该访问请求指定的数据库实例372的标识,向数据库实例372发送该访问请求;数据库实例372处理该访问请求,例如执行该访问请求携带的SQL语句。
在图3所示架构中,在数据库访问调度模块333与数据库访问服务引擎122建立通信连接后,数据库访问服务引擎122在元数据库14中记录该数据库访问调度模块332的标识与数据库访问服务引擎122的绑定关系;后续,如果数据库访问发起模块112接收到的访问请求记录有数据库访问调度模块333的标识,则数据库访问发起模块112根据元数据库14记录的该绑定关系,向数据库访问服务引擎122发送该访问请求,以便于数据库访问服务引擎122最终向数据库访问调度模块333转发该访问请求。可见,在元数据库14记录数据库访问调度模块与数据库访问服务引擎的绑定关系。
一种应用场景的举例,数据库访问服务引擎121部署在公有云,数据库访问调度模块331和多个数据库实例(例如数据库实例371、数据库实例372)部署在局域网381内。数据库访问调度模块331获得数据库访问服务引擎121的IP地址,例如人为在数据库访问调度模块331录入数据库访问服务引擎121的IP地址;数据库访问调度模块331使用该IP地址请求与数据库访问服务引擎121建立通信连接,例如基于传输控制协议(Transmission ControlProtocol,TCP)建立通信连接。这样,数据库访问服务引擎121可以与数据库访问调度模块331建立通信连接,从而公有云中的数据库访问服务引擎121可以通过数据库访问调度模块331访问在局域网381中的多个数据库实例(例如数据库实例371、数据库实例372)。
类似地,公有云中的数据库访问服务引擎122可以通过数据库访问调度模块332访问在局域网382中的多个数据库实例(图3未示意)。
这样,在局域网中的数据库访问调度模块主动与公有云中的数据库访问服务引擎建立通信连接后,公有云中的数据库访问服务引擎可以通过该数据库访问调度模块访问该局域网中的数据库实例。
一种可能的应用场景,局域网为私有云的网络。
本申请的一种可能实现方式,在图3所示架构中,局域网381中的数据库访问调度模块331主动与数据库访问服务引擎121建立通信连接后,数据库访问服务引擎121在元数据库14中记录该数据库访问调度模块331的标识与数据库访问服务引擎121的绑定关系;后续,如果数据库访问发起模块331接收到的访问请求记录有数据库访问调度模块331的标识,则数据库访问发起模块331根据元数据库14记录的该绑定关系,向数据库访问服务引擎121发送该访问请求,以便于数据库访问服务引擎121向数据库访问调度模块331转发该访问请求。类似地,局域网382中的数据库访问调度模块332主动与数据库访问服务引擎122建立通信连接后,数据库访问服务引擎122在元数据库14中记录该数据库访问调度模块332的标识与数据库访问服务引擎122的绑定关系。类似地,数据库访问调度模块333主动与数据库访问服务引擎122建立通信连接后,数据库访问服务引擎122在元数据库14中记录该数据库访问调度模块333的标识与数据库访问服务引擎122的绑定关系。可见,本申请在元数据库14中记录数据库访问调度模块与数据库访问服务引擎的绑定关系。
一种可能的实现方式,在图3所示架构中,如果数据库访问服务引擎直接连接数据库访问调度模块,则在元数据库14记录数据库访问调度模块的标识与数据库访问服务引擎的绑定关系;如果数据库访问服务引擎直接连接数据库实例,则在元数据库14记录该数据库实例与该数据库访问服务引擎的绑定关系。这样,在图3所示的架构中,数据库访问发起模块在查找元数据库14来确定访问请求的去向时,如果数据库访问服务引擎直接连接数据库访问调度模块,则使用该访问请求携带的数据库访问调度模块的标识来查找绑定关系以确定数据库访问服务引擎,如果数据库访问服务引擎直接连接数据库实例,则使用该访问请求携带的数据库实例的标识来查找绑定关系以确定数据库访问服务引擎。
基于图2所示的架构,本申请提供一种数据库访问方法。结合图2,在图4中示意了该数据库访问方法的一种流程,该流程包括步骤S411到步骤S417。
步骤S411,应用向数据库访问发起模块发送访问请求。
具体地,该应用向为该应用提供服务的该数据库访问发起模块发送访问请求。举例说明,数据库访问发起模块111为一个应用提供服务;对于该个应用生成的访问请求,该个应用均将该访问请求向数据库访问发起模块111发送。
其中,该访问请求携带数据库实例的标识。这样,通过该数据库实例的标识可以确定用于处理该访问请求的数据库实例。
举例说明,数据库实例的标识为数据库实例的IP地址。举例说明,数据库实例的标识为数据库实例的IP地址和端口号。
举例说明,数据库实例的标识包括数据库实例的名称。这样,可以基于该数据库实例的名称进一步判断数据库实例是否为需要访问的数据库实例。
举例说明,数据库实例的标识可以为下述参数中一种或者多种的组合:数据库实例的IP地址,或者IP地址和端口号,或者数据库实例的名称。
举例说明,该访问请求携带可以包括SQL格式的语句。这样,数据库实例可以执行该访问请求携带的SQL格式的语句。
举例说明,该访问请求携带该应用当前所提供的业务的标识。
步骤S412,数据库访问发起模块确定与数据库实例关联的数据库访问服务引擎。
步骤S413,数据库访问发起模块向确定的数据库访问服务引擎发送该访问请求。
一种可能的实施方式,如果未为该访问请求携带的数据库实例的标识所指定的数据库实例分配数据库访问服务引擎,则数据库访问发起模块从多个数据库访问服务引擎选择一个数据库访问服务引擎,数据库访问发起模块向选择的数据库访问服务引擎发送该访问请求。相应地,数据库访问发起模块在元数据库14中记录该数据库实例的标识与该数据库访问服务引擎的绑定关系。
举例说明,以图2为例,数据库访问发起模块111接收到应用发送的访问请求时,可以查询元数据库14,如果未查询结果为该访问请求携带的数据库实例的标识所指定的数据库实例分配数据库访问服务引擎,则从多个数据库访问服务引擎(例如数据库访问服务引擎121、数据库访问服务引擎122、数据库访问服务引擎123)中选择一个数据库访问服务引擎,例如选择数据库访问服务引擎121。从而,数据库访问发起模块111将该访问请求发送至数据库访问服务引擎121。
举例说明,以图2为例,数据库访问发起模块111接收到应用发送的访问请求时,可以查询元数据库14,如果未查询结果为该访问请求携带的数据库实例的标识所指定的数据库实例分配数据库访问服务引擎,则根据多个数据库访问服务引擎(例如数据库访问服务引擎121、数据库访问服务引擎122、数据库访问服务引擎123)的负载,从该多个数据库访问服务引擎选择一个数据库访问服务引擎,例如选择数据库访问服务引擎121。从而,数据库访问发起模块111将该访问请求发送至数据库访问服务引擎121。
举例说明,以图2为例,数据库访问发起模块111接收到应用发送的访问请求时,可以查询元数据库14,如果未查询结果为该访问请求携带的数据库实例的标识所指定的数据库实例分配数据库访问服务引擎,则从多个数据库访问服务引擎(例如数据库访问服务引擎121、数据库访问服务引擎122、数据库访问服务引擎123)中选择负载最小的数据库访问服务引擎;假设当前负载最小的数据库访问服务引擎是数据库访问服务引擎121,则数据库访问发起模块111将该访问请求发送至数据库访问服务引擎121。另外,数据库访问发起模块111在元数据库14记录数据库访问服务引擎121与该数据库实例的标识的绑定关系。
一种可能的实施方式,如果在元数据库14中已记录与该访问请求携带的数据库实例的标识对应的绑定关系,则数据库访问发起模块查询该元数据库14,以确定该绑定关系指定的数据库访问服务引擎。从而,数据库访问发起模块向确定的数据库访问服务引擎发送该访问请求。
一种可能的实现方式,每个数据库访问服务引擎(例如数据库访问服务引擎121或者数据库访问服务引擎122或者数据库访问服务引擎123)会定期将自己的负载信息(例如已部署的连接的条数)和心跳信息在元数据库14中记录。这样,数据库访问发起模块在使用元数据库14确定用于发送该访问请求的数据库访问服务引擎时,可以进一步利用该数据库访问服务引擎的心跳信息确定该数据库访问服务引擎是否可用;如果该数据库访问服务引擎是可用的,则该数据库访问发起模块执行步骤S413来向该数据库访问服务引擎发送该访问请求;如果该数据库访问服务引擎是不可用的,则该数据库访问发起模块重新执行步骤S412来选择新的数据库访问服务引擎。
该数据库访问发起模块确定该数据库访问服务引擎可用的一种可能实现方式,该数据库访问发起模块根据元数据库14中记录的该数据库访问服务引擎的心跳信息,确定数据库访问服务引擎没有宕机,或者确定该数据库访问服务引擎没有失去通信连接。
步骤S414,数据库访问服务引擎向数据库实例发送该访问请求。
一种可能的实施方式,如果该访问请求携带了用于标识连接(connection)的关键字(key),该连接是指该数据库访问服务引擎与该访问请求指定的数据库实例之间的连接,该连接是先前建立的,则该数据库访问服务引擎使用该连接向该数据库实例发送该访问请求。这样,如果在应用发出的多个访问请求中均添加了标识该连接的关键字,则这些访问请求均通过同一连接发送至该数据库实例。如果这多个访问请求是连续发出的,通过同一连接发送至该数据库实例,保证了这多个访问请求所组成事务的事务一致性。
一种可能的实施方式,如果该访问请求未携带用于标识连接的关键字,则该数据库访问服务引擎可以为该访问请求在该数据库访问服务引擎与该访问请求指定的数据库实例之间新建一条连接。举例说明,在数据库访问服务引擎与数据库实例之间建立的连接,可以是通信连接,例如可以是JDBC(Java database connectivity)连接。
对于在数据库访问服务引擎与数据库实例之间新建立的连接,该数据库访问服务引擎记录用于标识该连接的关键字(key)。以图2为例,数据库访问引擎121会记录在数据库访问服务引擎121与数据库实例231之间新建立的连接;数据库访问引擎122会记录在数据库访问服务引擎122与数据库实例232之间新建立的连接;数据库访问引擎122会记录用于标识该连接的关键字,以及记录该关键字与数据库实例231的绑定关系。后续,数据库访问服务引擎122可以通过该绑定关系确定该关键字,以确定该关键字指定的连接。
另外,由于该访问请求没有携带用于标识连接的关键字,即使存在所述数据库访问服务引擎与所述数据库实例之间的已有连接,该数据库访问服务引擎仍需要新建一条连接,使用新建的连接来在所述数据库访问服务引擎与所述数据库实例之间传输该访问请求相关的数据(例如该访问请求或者该访问请求对应的处理结果)。
可选地,该数据库访问服务引擎还可以将该关键字发送至先前转发该访问请求的该数据库访问发起模块,以便该数据库访问发起模块将该关键字反馈至先前生成该访问请求的应用。后续,该应用可以在新访问请求中添加该关键字,相应地,该数据库访问服务引擎通过数据库访问发起模块接收到该关键字后,会向该关键字关联的数据库实例发送该新访问请求。从而保证该应用发出的带该关键字的新访问请求都发送至数据库实例处理,保证该带该关键字的多个新访问请求所组成的事务的一致性。
举例说明,对于在数据库访问服务引擎121与数据库实例231之间新建立的连接,数据库访问服务引擎121可以将关键字(用于标识新建立的该连接)发送至该数据库访问发起模块111,以便该数据库访问发起模块111将该关键字反馈至先前生成该访问请求的应用。后续,该应用可以在新访问请求中添加该关键字;相应地,该数据库访问服务引擎121通过数据库访问发起模块111接收到该关键字后,会向该关键字关联的数据库实例231发送该新访问请求。
步骤S415,数据库实例向数据库访问服务引擎发送该访问请求对应的处理结果。
具体地,数据库实例收到数据库访问服务引擎发送的访问请求后,会处理该访问请求,并得到处理结果。数据库实例向该数据库访问服务引擎发送该访问请求对应的处理结果。
举例说明,数据库实例231接收访问服务引擎121发送的访问请求,数据库实例231处理该访问请求,例如执行该访问请求携带的SQL格式的语句,例如使用该SQL格式的语句查询数据并得到查询结果。数据库实例231向访问服务引擎121发送该访问请求对应的处理结果(例如该查询结果)。如果在数据库实例231与访问服务引擎121之间建立的是JDBC连接,则使用该JDBC连接完成该访问请求和该处理结果在数据库实例231与访问服务引擎121之间的传输。
步骤S416,数据库访问服务引擎向数据库访问发起模块发送该访问请求对应的处理结果。
具体地,先前转发该访问请求的数据库访问服务引擎,向先前转发该访问请求的数据库访问发起模块发送该访问请求对应的处理结果。举例说明,如果该访问请求是经过数据库访问发起模块111和数据库访问服务引擎121被转发至数据库实例231的,则数据库实例231将该访问请求对应的处理结果发送至数据库访问服务引擎121,以便数据库访问服务引擎121将该处理结果发送至数据库访问发起模块111。
步骤S417,数据库访问发起模块向应用发送该访问请求对应的处理结果。
具体地,先前转发该访问请求的数据库访问发起模块,向生成该访问请求的应用(即该数据库访问发起模块服务的应用)发送该访问请求对应的处理结果。举例说明,数据库访问发起模块111从访问服务引擎121接收到该访问请求对应的处理结果之后,向先前生成该访问请求的应用发送该处理结果。这样,该应用获得该访问请求对应的处理结果,例如获得数据库实例231根据该访问请求包括的SQL格式的语句所查询得到的查询结果。
基于图3所示的架构,本申请提供一种数据库访问方法。结合图3,在图5中示意了该数据库访问方法的一种流程,该流程包括步骤S511到步骤S521。
步骤S511,数据库访问调度模块与数据库访问引擎建立通信连接。
一种可能的实施方式,参见图3,数据库访问调度模块与数据库访问服务引擎部署在同一网络中,数据库访问调度模块与数据库访问服务引擎可以在该网络中建立通信连接。举例说明,数据库访问调度模块333与数据库访问服务引擎122均部署在公有云来提供服务,即数据库访问调度模块333与数据库访问服务引擎122均部署在该公有云所使用的网络中。数据库访问调度模块333使用数据库访问服务引擎122的IP地址与数据库访问服务引擎122建立通信连接,或者数据库访问服务引擎122使用数据库访问调度模块333的IP地址与数据库访问调度模块333建立通信连接。
一种可能的实施方式,参见图3,数据库访问调度模块位于局域网内。数据库访问引擎不是位于该局域网内,即数据库访问引擎不与数据库访问调度模块位于同一局域网内。举例说明,局域网381内的数据库访问调度模块331获得数据库访问服务引擎121的IP地址,例如已预先在数据库访问调度模块331记录数据库访问服务引擎121的IP地址,例如人为在数据库访问调度模块331录入数据库访问服务引擎121的该IP地址。数据库访问调度模块331使用该IP地址主动请求与数据库访问服务引擎121建立通信连接(例如,该通信连接可以是基于TCP的通信连接)。这样,数据库访问调度模块331可以与数据库访问服务引擎121建立通信连接。类似地,数据库访问调度模块332可以使用数据库访问服务引擎122的IP地址主动与数据库访问服务引擎122建立通信连接;数据库访问调度模块333可以使用数据库访问服务引擎122的IP地址主动与数据库访问服务引擎122建立通信连接。可见,每个数据库访问调度模块可以使用数据库访问服务引擎的IP地址主动与该数据库访问服务引擎建立通信连接。
应知,在数据库访问调度模块与数据库访问引擎之间建立的通信连接,可以是基于TCP的通信连接,也可以是基于其它协议建立的通信连接。从而,基于该通信连接,可以在数据库访问调度模块与数据库访问引擎之间传输数据。
在数据库访问调度模块与数据库访问引擎成功建立通信连接(例如,该通信连接可以是基于TCP的通信连接)时,该数据库访问引擎记录该数据库访问调度模块的标识与该通信连接的绑定关系。
举例说明,在数据库访问调度模块331与数据库访问服务引擎121成功建立通信连接时,数据库访问服务引擎121记录数据库访问调度模块331的标识与该通信连接(数据库访问调度模块331与数据库访问服务引擎121的通信连接)的绑定关系。在数据库访问调度模块332与数据库访问服务引擎122成功建立通信连接时,数据库访问服务引擎122记录数据库访问调度模块332的标识与该通信连接(数据库访问调度模块332与数据库访问服务引擎122的通信连接)的绑定关系。在数据库访问调度模块333与数据库访问服务引擎122成功建立通信连接时,数据库访问服务引擎122记录数据库访问调度模块333的标识与该通信连接(数据库访问调度模块333与数据库访问服务引擎122的通信连接)的绑定关系。
步骤S512,数据库访问引擎在元数据库14中记录已建立通信连接的数据库访问服务引擎与数据库访问调度模块之间的绑定关系。
一种可能的实施方式,单个数据库访问调度模块主动请求与单个数据库访问服务引擎建立通信连接,如果该通信连接建立成功,则该个数据库访问引擎在元数据库14中记录该个数据库访问调度模块与该个数据库访问服务引擎的绑定关系。
单个数据库访问调度模块与单个数据库访问服务引擎的绑定关系,具体可以包括该个数据库访问调度模块的标识与该个数据库访问服务引擎的标识。
举例说明,数据库访问调度模块332可以使用数据库访问服务引擎122的IP地址主动与数据库访问服务引擎122建立通信连接,如果该通信连接建立成功,则数据库访问服务引擎122在元数据库14中记录该通信连接对应的绑定关系,该绑定关系包括数据库访问调度模块332的标识(例如数据库访问调度模块332的关键字)和数据库访问服务引擎122的标识(例如数据库访问服务引擎122的IP地址)。类似地,数据库访问调度模块333可以使用数据库访问服务引擎122的IP地址主动与数据库访问服务引擎122建立通信连接,如果该通信连接建立成功,则数据库访问服务引擎122在元数据库14中记录该通信连接对应的绑定关系,该绑定关系包括数据库访问调度模块333的标识(例如数据库访问调度模块333的关键字)和数据库访问服务引擎122的标识(例如数据库访问服务引擎122的IP地址)。
这样,可以根据元数据库14中记录的单个数据库访问服务引擎具有的绑定关系的条数,确定该个数据库访问服务引擎的负载大小。可选地,如图3所示,该绑定关系可以是数据库访问调度模块与数据库访问服务引擎的绑定关系(例如数据库访问调度模块333的标识和数据库访问服务引擎122的标识的绑定关系,例如数据库访问调度模块331的标识和数据库访问服务引擎121的标识的绑定关系),该绑定关系或者是数据库实例的标识与数据库访问服务引擎的绑定关系(例如数据库实例374的标识与数据库访问服务引擎123的绑定关系)。这样,可以综合考虑该个数据库访问服务引擎具有的所有绑定关系来评估该个数据库访问服务引擎的负载大小。
另外,数据库访问发起模块可以根据访问请求携带的数据库访问调度模块的标识,查找元数据库14,查找到该数据库访问调度模块的标识匹配的绑定关系。从而将该访问请求发送至该绑定关系指定的数据库访问服务引擎。
步骤S513,应用向数据库访问发起模块发送访问请求。
具体地,该应用向为该应用提供服务的该数据库访问发起模块发送访问请求。举例说明,数据库访问发起模块111为一个应用提供服务;对于该个应用生成的访问请求,该个应用均将该访问请求向数据库访问发起模块111发送。
该访问请求携带数据库访问调度模块的标识。数据库访问调度模块的标识可以是数据库访问调度模块的IP地址。一种可能的实现方式,数据库访问调度模块的标识可以是数据库访问调度模块的IP地址和端口号。
另外,该访问请求携带数据库实例的标识。这样,通过该数据库实例的标识可以确定用于处理该访问请求的数据库实例。
举例说明,数据库实例的标识为数据库实例的IP地址。举例说明,数据库实例的标识为数据库实例的IP地址和端口号。
举例说明,数据库实例的标识包括数据库实例的名称。这样,可以基于该数据库实例的名称进一步判断数据库实例是否为需要访问的数据库实例。
举例说明,数据库实例的标识可以为下述参数中一种或者多种的组合:数据库实例的IP地址,或者IP地址和端口号,或者数据库实例。
举例说明,该访问请求携带可以包括SQL格式的语句。这样,数据库实例可以执行该访问请求携带的SQL格式的语句。
举例说明,该访问请求携带该应用当前所提供的业务的标识。
步骤S514,数据库访问发起模块确定与该数据库访问调度模块关联的数据库访问服务引擎。
步骤S515,数据库访问发起模块向确定的数据库访问服务引擎发送该访问请求。
具体地,数据库访问发起模块基于该访问请求携带的数据库访问调度模块的标识,查找元数据库14,查找到与该数据库访问调度模块的标识匹配的绑定关系。数据库访问发起模块将该访问请求发送至该绑定关系指定的数据库访问服务引擎。
举例说明,数据库访问发起模块113使用该访问请求携带的数据库访问调度模块333的标识,在元数据库14中查找到与数据库访问调度模块333的标识对应的绑定关系,该绑定关系记录数据库访问服务引擎122的标识,则数据库访问发起模块113向数据库访问服务引擎122发送该访问请求。
举例说明,数据库访问发起模块111使用该访问请求携带的数据库访问调度模块331的标识,在元数据库14中查找到与数据库访问调度模块331的标识对应的绑定关系,该绑定关系记录数据库访问服务引擎121的标识,则数据库访问发起模块111向数据库访问服务引擎121发送该访问请求。
步骤S516,数据库访问服务引擎向数据库访问调度模块发送该访问请求。
具体地,该访问请求携带了该数据库访问调度模块的标识。数据库访问服务引擎根据该数据库访问调度模块的标识,查找该数据库访问调度模块的标识匹配的绑定关系,该绑定关系记录有该数据库访问调度模块的标识和在该数据库访问服务引擎与该数据库访问调度模块之间的通信连接。这样,该数据库访问服务引擎基于该通信连接,向该数据库访问调度模块发送该访问请求。
举例说明,参见图3,数据库访问服务引擎121记录有数据库访问调度模块331的标识与该通信连接(数据库访问调度模块331与数据库访问服务引擎121的通信连接)的绑定关系。数据库访问服务引擎121在接收到访问请求时,如果该访问请求携带有数据库访问调度模块331的标识,则数据库访问服务引擎121根据该绑定关系记录的通信连接,将该访问请求发送至数据库访问调度模块331。
举例说明,参见图3,数据库访问服务引擎122记录数据库访问调度模块332的标识与该通信连接(数据库访问调度模块332与数据库访问服务引擎122的通信连接)的绑定关系。数据库访问服务引擎122在接收到访问请求时,如果该访问请求携带有数据库访问调度模块332的标识,则数据库访问服务引擎122根据该绑定关系记录的通信连接,将该访问请求发送至数据库访问调度模块332。
举例说明,参见图3,数据库访问服务引擎122记录数据库访问调度模块333的标识与该通信连接(数据库访问调度模块333与数据库访问服务引擎122的通信连接)的绑定关系。数据库访问服务引擎122在接收到访问请求时,如果该访问请求携带有数据库访问调度模块333的标识,则数据库访问服务引擎122根据该绑定关系记录的通信连接,将该访问请求发送至数据库访问调度模块333。
步骤S517,数据库访问调度模块向该访问请求指定的数据库实例发送该访问请求。
具体地,该访问请求携带有数据库实例的标识。数据库访问调度模块向该标识指定的数据库实例发送该访问请求。可选地,数据库访问调度模块和数据库实例位于同一局域网内。
举例说明,在局域网381中,数据库访问调度模块331在接收到访问请求时,如果该访问请求携带数据库实例371的标识,则数据库访问调度模块331将该访问请求发送至数据库实例371;如果该访问请求携带数据库实例372的标识,则数据库访问调度模块331将该访问请求发送至数据库实例372,以便数据库实例372处理该访问请求。
举例说明,数据库访问调度模块333接收到访问请求时,如果该访问请求携带数据库实例373的标识,则数据库访问调度模块333将该访问请求发送至数据库实例373;如果该访问请求携带数据库实例374的标识,则数据库访问调度模块333将该访问请求发送至数据库实例374。
数据库实例处理该访问请求,得到处理结果。例如该访问请求携带包括SQL格式的语句,数据库实例根据该SQL格式的语句进行数据查询,得到查询结果。
步骤S518,数据库实例向数据库访问调度模块发送该访问请求对应的处理结果。
具体地,数据库实例,向先前转发该访问请求至该数据库实例的数据库访问调度模块,发送该访问请求对应的处理结果。
举例说明,如果数据库访问调度模块331先前向数据库实例371发送访问请求,数据库实例371处理该访问请求来得到处理结果,并相应地向该数据库访问调度模块331发送该处理结果。
举例说明,如果数据库访问调度模块333先前向数据库实例373发送访问请求,数据库实例373处理该访问请求来得到处理结果,并相应地向该数据库访问调度模块333发送该处理结果。
步骤S519,数据库访问调度模块向数据库访问服务引擎发送该访问请求对应的处理结果。
具体地,该数据库访问服务引擎为先前向该数据库访问调度模块发送该访问请求的数据库访问服务引擎。在该数据库访问调度模块从数据库实例得到该访问请求对应的处理结果之后,该数据库访问调度模块将该处理结果发送至该数据库访问服务引擎。
举例说明,数据库访问调度模块331在接收到该访问请求对应的处理结果之后,通过数据库访问调度模块331与数据库访问服务引擎121的通信连接,向数据库访问服务引擎121发送该处理结果。
举例说明,数据库访问调度模块333在接收到该访问请求对应的处理结果之后,通过数据库访问调度模块333与数据库访问服务引擎122的通信连接,向数据库访问服务引擎122发送该处理结果。
步骤S520,数据库访问服务引擎向数据库访问发起模块发送该访问请求对应的处理结果。
具体地,先前转发该访问请求的数据库访问服务引擎,向先前转发该访问请求的数据库访问发起模块发送该访问请求对应的处理结果。
举例说明,如果该访问请求是经过数据库访问发起模块111和数据库访问服务引擎121被转发至数据库访问调度模块331的,则数据库访问调度模块331将该访问请求对应的处理结果发送至数据库访问服务引擎121之后,数据库访问服务引擎121将该处理结果发送至数据库访问发起模块111。
举例说明,如果该访问请求是经过数据库访问发起模块112和数据库访问服务引擎122被转发至数据库访问调度模块333的,则数据库访问调度模块333将该访问请求对应的处理结果发送至数据库访问服务引擎122之后,数据库访问服务引擎122将该处理结果发送至数据库访问发起模块112。
步骤S521,数据库访问发起模块向应用发送该访问请求对应的处理结果。
具体地,先前转发该访问请求的数据库访问发起模块,向生成该访问请求的应用(即该数据库访问发起模块服务的应用)发送该访问请求对应的处理结果。举例说明,数据库访问发起模块111从访问服务引擎121接收到该访问请求对应的处理结果之后,向先前生成该访问请求的应用发送该处理结果。这样,该应用获得该访问请求对应的处理结果,例如获得数据库实例231根据该访问请求包括的SQL格式的语句所查询得到的查询结果。
如果数据库实例位于局域网中,通过步骤S511到步骤S521,可以实现应用对局域网中的数据库实例的访问。一种应用场景,应用、数据库访问发起模块111和访问服务引擎121均部署在公有云中,数据库访问调度模块331、数据库实例371和数据库实例372部署在私有云中。该公有云所使用的网络不同于私有云所使用的局域网381。但通过数据库访问调度模块331预先使用访问服务引擎121的IP地址与访问服务引擎121成功建立了通信连接,基于该通信连接,应用可以通过访问服务引擎121实现对局域网381中的数据库访问调度模块331的访问,从而间接实现对局域网381中的数据库实例(例如数据库实例371或数据库实例372)的访问。
如果数据库实例与数据库访问服务引擎位于同一网络(例如公有云所使用的网络)中,通过步骤S511到步骤S521,可以实现应用在该同一网络中对数据库实例的访问。
基于图3所示的架构,本申请提供一种数据库访问方法。结合图3,在图5所示数据库访问方法的流程上,从安全性角度,对该数据库访问方法包括的步骤做进一步优化。
作为步骤S511的一种可能的实现方式,数据库访问调度模块主动与数据库访问引擎建立通信连接时,向该数据库访问引擎发送该数据库访问引擎的公钥,以便该数据库访问引擎根据该公钥进行是否同意建立该通信连接的鉴权。另外,如果该通信连接建立成功,该数据库访问调度模块使用该公钥加密需要向该数据库访问引擎发送的数据。
举例说明,在图3所示架构中,数据库访问引擎122生成供数据库访问引擎122使用的公钥和私钥,并在元数据库14存储该公钥和该私钥。该数据库访问调度模块使用数据库访问引擎122的公钥请求与数据库访问引擎122建立通信连接,数据库访问引擎122使用该公钥查询元数据库14,如果该元数据库14记录该公钥为数据库访问引擎122的公钥,则鉴权成功,数据库访问引擎122成功与该数据库访问调度模块建立通信连接。后续,基于在数据库访问引擎122与该数据库访问调度模块(例如数据库访问调度模块332或者数据库访问调度模块333)之间的通信连接,对于该数据库访问调度模块需要向数据库访问引擎122发送的数据,该数据库访问调度模块均使用该数据库访问引擎122的公钥进行加密,然后再基于该通信连接向该数据库访问引擎122发送加密的数据。
作为步骤S518的一种可能的实现方式,对于数据库访问调度模块向数据库访问引擎发送的访问请求对应的处理结果,该数据库访问调度模块均使用该数据库访问引擎的公钥加密该处理结果,再向该数据库访问引擎发送加密的该处理结果。
举例说明,在图3所示架构中,在该数据库访问调度模块333从数据库实例373接收访问请求对应的处理结果之后,该数据库访问调度模块333使用该数据库访问引擎122的公钥对该处理结果加密,向该数据库访问引擎122发送加密的该处理结果。
一种可能的实现方式,数据库访问引擎向数据库访问调度模块发送的数据(例如应用生成的访问请求),使用该数据库访问调度模块的公钥进行加密,该数据库访问引擎向该数据库访问调度模块发送加密的数据。相应地,该数据库访问调度模块使用该该数据库访问调度模块的私钥从该加密的数据中解密出该数据。
举例说明,数据库访问调度模块332生成供数据库访问调度模块332使用的公钥和私钥,保存该公钥和该私钥。数据库访问调度模块332将该公钥发送至数据库访问引擎122。后续,数据库访问引擎122使用该公钥加密访问请求,再将加密的访问请求发送至数据库访问调度模块332。相应地,数据库访问调度模块332使用该私钥从该加密的访问请求中解密出该访问请求。
本申请还提供一种数据库访问发起模块(例如数据库访问发起模块111或者数据库访问发起模块112或者数据库访问发起模块113),该数据库访问发起模块部署在本申请的计算设备(例如服务器)上。该数据库访问发起模块包括用于该数据库访问发起模块实现上述数据库访问方法的功能单元;本申请对在该数据库访问发起模块中如何划分功能单元不做限定,下面实例性地提供一种功能单元的划分,如图6所示。
如图6所示的数据库访问发起模块600,数据库访问发起模块600包括:
接收单元602,用于接收所述应用的访问请求,所述访问请求携带数据库实例的标识;
确定单元601,用于确定数据库访问服务引擎,所述数据库访问服务引擎独立于所述应用,所述数据库访问服务引擎用于建立用于访问所述数据库实例的连接;
发送单元603,向确定的数据库访问服务引擎发送所述访问请求,所述数据库访问服务引擎具有向所述数据库实例发送所述访问请求的能力
可选地,确定单元601,用于从多个数据库访问服务引擎中选择一个数据库访问服务引擎。
可选地,确定单元601,用于根据多个数据库访问服务引擎的负载,从所述多个数据库访问服务引擎中选择一个数据库访问服务引擎。
可选地,确定单元601,用于从多个数据库访问服务引擎中选择负载最小的数据库访问服务引擎。
可选地,确定单元601,用于根据所述访问请求携带的所述数据库实例的标识,确定与所述数据库实例的标识绑定的数据库访问服务引擎。
可选地,确定单元601,用于根据所述访问请求携带的数据库访问调度模块的标识,确定与所述数据库访问调度模块绑定的数据库访问服务引擎,所述数据库访问调度模块用于将从所述数据库访问服务引擎接收的所述访问请求发送至所述数据库实例。
可选地,接收单元602,用于接收所述数据库访问服务引擎发送的所述访问请求对应的处理结果;相应地,发送单元603,用于向所述应用发送所述处理结果。
本申请还提供一种数据库访问服务引擎(例如数据库访问服务引擎121或者数据库访问服务引擎122或者数据库访问服务引擎123),该数据库访问服务引擎部署在本申请的计算设备(例如服务器)上。该数据库访问服务引擎包括用于该数据库访问发起模块实现上述数据库访问方法的功能单元;本申请对在该数据库访问服务引擎中如何划分功能单元不做限定,下面实例性地提供一种功能单元的划分,如图7所示。
如图7所示的数据库访问服务引擎700,数据库访问服务引擎700包括:
接收单元701,用于接收数据库访问发起模块发送的访问请求,所述访问请求携带数据库实例的标识;
发送单元702,用于向所述数据库实例发送所述访问请求,或者,向与所述数据库实例关联的数据库访问调度模块发送所述访问请求。
可选地,所述数据库访问服务引擎包括:
连接建立单元703,用于根据所述数据库实例的标识建立所述数据库访问服务引擎与所述数据库实例的连接,所述连接用于在所述数据库访问服务引擎与所述数据库实例之间传输数据。
可选地,发送单元702,用于根据所述访问请求携带的关键字,使用所述关键字标识的在所述数据库访问服务引擎与所述数据库实例之间已建立的连接,向所述数据库实例发送所述访问请求。
可选地,发送单元702,用于根据所述访问请求携带的所述数据库访问调度模块的标识,向所述数据库访问调度模块发送所述访问请求。
可选地,接收单元701,用于接收所述数据库实例发送的所述访问请求对应的处理结果,或者,接收所述数据库访问调度模块发送的所述访问请求对应的处理结果;
相应地,发送单元702,用于向所述数据库访问发起模块发送所述访问请求对应的处理结果。
本申请还提供一种数据库访问调度模块(例如数据库访问调度模块331或者数据库访问调度模块332或者数据库访问调度模块333),该数据库访问调度模块部署在本申请的计算设备(例如服务器)上。该数据库访问调度模块包括用于该数据库访问调度模块实现上述数据库访问方法的功能单元;本申请对在该数据库访问调度模块中如何划分功能单元不做限定,下面实例性地提供一种功能单元的划分,如图8所示。
如图8所示的数据库访问调度模块800,其特征在于,所述数据库访问调度模块800包括:
连接建立单元803,用于使用数据库访问服务引擎的标识与所述数据库访问服务引擎建立通信连接;
接收单元801,用于接收所述数据库访问服务引擎发送的访问请求,所述访问请求携带有数据库实例的标识;
发送单元802,用于向所述数据库实例发送所述访问请求。
可选地,所述数据库访问服务引擎的标识为数据库访问服务引擎的IP地址。
可选地,连接建立单元803,用于向所述数据库访问服务引擎发送建立所述通信连接的请求,所述请求携带所述数据库访问服务引擎的标识和所述数据库访问服务引擎的公钥,所述数据库访问服务引擎的公钥用于所述数据库访问引擎对建立所述通信连接的鉴权。
可选地,所述数据库访问调度模块800包括:
解密单元804,用于在所述数据库访问调度模块从所述数据库访问服务引擎接收的所述访问请求为基于所述数据库访问调度模块的公钥加密的访问请求时,使用所述数据库访问调度模块的私钥从加密的访问请求中解密出访问请求,以便发送单元802向所述数据库实例发送解密的访问请求。
可选地,接收单元801,用于接收所述数据库实例发送的所述访问请求对应的处理结果;
发送单元802,用于向所述数据库访问服务引擎发送所述处理结果。
可选地,所述数据库访问调度模块800包括:
加密单元805,用于使用所述数据库访问服务引擎的公钥对所述处理结果加密,以便所述发送单元802向所述数据库访问服务引擎发送加密的所述处理结果。
可选地,图9示意性地提供本申请所述计算设备的一种可能的基本硬件架构。
参见图9,计算设备900包括处理器901、存储器902、通信接口903和总线904。
计算设备900中,处理器901的数量可以是一个或多个,图9仅示意了其中一个处理器901。可选地,处理器901,可以是中央处理器(central processing unit,CPU)。如果计算设备900具有多个处理器901,多个处理器901的类型可以不同,或者可以相同。可选地,计算设备900的多个处理器901还可以集成为多核处理器。
存储器902存储计算机指令和数据;存储器902可以存储实现本申请提供的数据库访问方法所需的计算机指令和数据,例如,存储器902存储用于实现在数据库访问方法中由数据库访问发起模块执行步骤的指令,再例如,存储器902存储用于实现在数据库访问方法中由数据库访问服务网引擎执行步骤的指令,再例如,存储器902存储用于实现在数据库访问方法中由数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行步骤的指令。存储器902可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(ROM)、固态硬盘(SSD)、硬盘(HDD)、光盘),易失性存储器。
通信接口903可以是以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
通信接口903用于计算设备900与其它计算设备或者终端进行数据通信。
图9用一条粗线表示总线904。总线904可以将处理器901与存储器902和通信接口903连接。这样,通过总线904,处理器901可以访问存储器902,还可以利用通信接口903与其它计算设备或者终端进行数据交互。
在本申请中,计算设备900执行存储器902中的计算机指令,使得计算设备900实现本申请提供的数据库访问方法,例如使得所述计算设备执行上述数据库访问方法中由所述数据库访问发起模块执行的步骤,再例如使得所述计算设备执行上述数据库访问方法中由所述数据库访问服务引擎执行的步骤,再例如使得所述计算设备执行上述数据库访问方法中由所述数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤。
本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当计算设备900的处理器901执行该计算机指令时,该计算设备900执行上述数据库访问方法中由数据库访问发起模块执行的步骤,或者计算设备900执行上述数据库访问方法中由所述数据库访问服务引擎执行的步骤,或者计算设备900执行上述数据库访问方法中由所述数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤。
本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备900的处理器901可以从计算机可读存储介质读取该计算机指令,处理器901执行该计算机指令,使得计算设备900执行上述数据库访问方法中由所述数据库访问发起模块执行的步骤,使得计算设备900执行上述数据库访问方法中由所述数据库访问服务引擎执行的步骤,使得计算设备900执行上述数据库访问方法中由所述数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤。
本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备900的处理器901可以从计算机可读存储介质读取该计算机指令,处理器901执行该计算机指令,使得计算设备900执行上述数据库访问方法中由所述数据库访问发起模块执行的步骤,使得计算设备900执行上述数据库访问方法中由所述数据库访问服务引擎执行的步骤,使得计算设备900执行上述数据库访问方法中由所述数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改;而这些修改,并不使相应技术方案脱离权利要求的保护范围。

Claims (28)

1.一种数据库访问方法,其特征在于,所述方法包括:
数据库访问服务引擎接收应用的访问请求,所述数据库访问服务引擎位于公有云;
所述数据库访问服务引擎向数据库访问调度模块发送所述访问请求;
所述数据库访问调度模块根据所述数据库实例在局域网的标识,向所述数据库实例发送所述访问请求,所述局域网独立于所述公有云。
2.根据权利要求1所述的方法,其特征在于,所述数据库实例的标识为数据库实例的IP地址和端口;或者,
所述数据库实例的标识为数据库实例的IP地址。
3.根据权利要求1或者2所述的方法,其特征在于,所述方法包括:
所述应用向所述数据库实例关联的所述数据库访问服务引擎发送所述访问请求。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法包括:
所述应用记录关联的所述数据库实例的标识和所述数据库访问服务引擎的标识。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述数据库访问调度模块和所述数据库实例均位于所述局域网。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述局域网为私有云的局域网。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法包括:
所述数据库访问调度模块请求与所述数据库访问服务引擎建立通信连接。
8.根据权利要求7所述的方法,其特征在于,所述方法包括:
若所述数据库访问服务引擎鉴权成功,所述数据库访问服务引擎与所述数据库访问调度模块建立通信连接。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述数据库访问调度模块记录属于所述局域网的多个数据库实例的标识。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述方法包括:
所述数据库访问服务引擎对所述访问请求加密;
所述数据库访问调度模块对加密的所述访问请求解密。
11.根据权利要求1至9任一项所述的方法,其特征在于,所述方法包括:
所述数据库访问调度模块接收所述数据库实例发送的所述访问请求对应的处理结果;
所述数据库访问调度模块向所述数据库访问服务引擎发送所述处理结果;
所述数据库访问服务引擎向所述应用发送所述处理结果。
12.根据权利要求11所述的方法,其特征在于,所述方法包括:
所述数据库访问调度模块对所述处理结果加密;
所述数据库访问服务引擎对加密的所述处理结果解密。
13.根据权利要求1至12任一项所述的方法,其特征在于,
所述数据库访问服务引擎与所述数据库访问调度模块之间的通信连接为非对称加密的通信连接。
14.一种系统,其特征在于,所述系统包括数据库访问服务引擎和数据库访问调度模块;
所述数据库访问服务引擎,用于接收应用的访问请求,向数据库访问调度模块发送所述访问请求所述数据库访问服务引擎位于公有云;
所述数据库访问调度模块,用于根据所述数据库实例在局域网的标识,向所述数据库实例发送所述访问请求,所述局域网独立于所述公有云。
15.根据权利要求14所述的系统,其特征在于,所述数据库实例的标识为数据库实例的IP地址和端口;或者,
所述数据库实例的标识为数据库实例的IP地址。
16.根据权利要求14或者15所述的系统,其特征在于,所述系统包括:
所述应用,用于向所述数据库实例关联的所述数据库访问服务引擎发送所述访问请求。
17.根据权利要求14至16任一项所述的系统,其特征在于,所述系统包括:
所述应用,用于记录关联的所述数据库实例的标识和所述数据库访问服务引擎的标识。
18.根据权利要求14至17任一项所述的系统,其特征在于,所述数据库访问调度模块和所述数据库实例均位于所述局域网。
19.根据权利要求14至18任一项所述的系统,其特征在于,所述局域网为私有云的局域网。
20.根据权利要求14至19任一项所述的系统,其特征在于,
所述数据库访问调度模块,用于请求与所述数据库访问服务引擎建立通信连接。
21.根据权利要求20所述的系统,其特征在于,
所述数据库访问服务引擎,用于若鉴权成功,与所述数据库访问调度模块建立通信连接。
22.根据权利要求14至21任一项所述的系统,其特征在于,所述数据库访问调度模块记录属于所述局域网的多个数据库实例的标识。
23.根据权利要求14至22任一项所述的系统,其特征在于,
所述数据库访问服务引擎,用于对所述访问请求加密;
所述数据库访问调度模块,用于对加密的所述访问请求解密。
24.根据权利要求14至23任一项所述的系统,其特征在于,所述系统包括:
所述数据库访问调度模块,用于接收所述数据库实例发送的所述访问请求对应的处理结果,向所述数据库访问服务引擎发送所述处理结果;
所述数据库访问服务引擎,用于向所述应用发送所述处理结果。
25.根据权利要求24所述的系统,其特征在于,所述系统包括:
所述数据库访问调度模块,用于对所述处理结果加密;
所述数据库访问服务引擎,用于对加密的所述处理结果解密。
26.根据权利要求14至25任一项所述的系统,其特征在于,所述数据库访问服务引擎与所述数据库访问调度模块之间的通信连接为非对称加密的通信连接。
27.一种计算设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储计算机指令;
所述处理器,用于执行所述存储器存储的计算机指令,使得所述计算设备执行权利要求1至13任一项所述方法中由所述数据库访问服务引擎实现的步骤,或者使得所述计算设备执行权利要求1至13任一项所述方法中由所述数据库访问调度模块实现的步骤。
28.一种计算机程序产品,所述计算机程序产品包括计算机指令;所述计算机指令用于实现权利要求1至13任一项所述方法中由所述数据库访问服务引擎实现的步骤,或者所述计算机指令用于实现权利要求1至13任一项所述方法中由所述数据库访问调度模块实现的步骤。
CN202310003437.XA 2019-06-29 2019-06-29 数据库访问方法和装置、计算设备和计算机程序产品 Pending CN116011013A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310003437.XA CN116011013A (zh) 2019-06-29 2019-06-29 数据库访问方法和装置、计算设备和计算机程序产品

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202310003437.XA CN116011013A (zh) 2019-06-29 2019-06-29 数据库访问方法和装置、计算设备和计算机程序产品
CN201910581051.0A CN112149142A (zh) 2019-06-29 2019-06-29 数据库访问方法和装置、计算设备和计算机程序产品

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201910581051.0A Division CN112149142A (zh) 2019-06-29 2019-06-29 数据库访问方法和装置、计算设备和计算机程序产品

Publications (1)

Publication Number Publication Date
CN116011013A true CN116011013A (zh) 2023-04-25

Family

ID=73891279

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202210308236.6A Active CN114880698B (zh) 2019-06-29 2019-06-29 数据库访问方法和装置、计算设备和计算机程序产品
CN202310003437.XA Pending CN116011013A (zh) 2019-06-29 2019-06-29 数据库访问方法和装置、计算设备和计算机程序产品
CN201910581051.0A Pending CN112149142A (zh) 2019-06-29 2019-06-29 数据库访问方法和装置、计算设备和计算机程序产品

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210308236.6A Active CN114880698B (zh) 2019-06-29 2019-06-29 数据库访问方法和装置、计算设备和计算机程序产品

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910581051.0A Pending CN112149142A (zh) 2019-06-29 2019-06-29 数据库访问方法和装置、计算设备和计算机程序产品

Country Status (4)

Country Link
US (1) US20220091902A1 (zh)
EP (1) EP3951592A4 (zh)
CN (3) CN114880698B (zh)
WO (1) WO2021000622A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3933611B1 (en) * 2020-06-30 2023-10-04 Fujitsu Limited Information processing program, information processing apparatus, and information processing method
CN113905048A (zh) * 2021-09-30 2022-01-07 北京蓝海医信科技有限公司 集群管理器调度引擎实例的方法、装置及计算机设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4186987B2 (ja) * 2003-07-11 2008-11-26 日本電信電話株式会社 データベースアクセス制御方法、データベースアクセス制御装置、データベースアクセス制御のためのプログラム、および該プログラムを記録した記録媒体
US7502776B2 (en) * 2005-12-01 2009-03-10 Oracle International Corporation Dynamic connection establishment using an object link
US9141435B2 (en) * 2007-07-30 2015-09-22 Sybase, Inc. System and methodology providing workload management in database cluster
US9032218B2 (en) * 2010-01-29 2015-05-12 Hewlett-Packard Development Company, L.P. Key rotation for encrypted storage media using a mirrored volume revive operation
US8984170B2 (en) * 2011-09-09 2015-03-17 Oracle International Corporation Idempotence for database transactions
US8977735B2 (en) * 2011-12-12 2015-03-10 Rackspace Us, Inc. Providing a database as a service in a multi-tenant environment
CN103023986B (zh) * 2012-11-27 2016-01-13 中国电信股份有限公司 一种对多用户提供rdbms服务的系统和方法
US10534772B2 (en) * 2013-07-08 2020-01-14 Telefonaktiebolaget Lm Ericsson (Publ) Control of a distributed data grid layer in a federated database system
US20150310221A1 (en) * 2014-04-28 2015-10-29 Intuit Inc. Method and apparatus to rotate data encryption keys in databases with no down time
CN105095317B (zh) * 2014-05-23 2018-09-21 中国银联股份有限公司 分布式数据库服务管理系统
CN106599711A (zh) * 2015-10-15 2017-04-26 华为技术有限公司 一种数据库访问控制方法,及装置
US11394685B2 (en) * 2016-05-27 2022-07-19 Walmart Apollo, Llc Systems and methods of database instance container deployment
GB2553540B (en) * 2016-09-07 2022-04-27 Sage Uk Ltd Cloud system
US10318346B1 (en) * 2016-09-23 2019-06-11 Amazon Technologies, Inc. Prioritized scheduling of data store access requests
CN109542611B (zh) * 2017-09-21 2021-05-14 中国移动通信集团重庆有限公司 数据库即服务系统、数据库调度方法、设备及存储介质
CN108093094B (zh) * 2017-12-08 2021-05-28 腾讯科技(深圳)有限公司 数据库实例访问方法、装置、系统、存储介质和设备
CN108959385B (zh) * 2018-05-31 2024-02-06 康键信息技术(深圳)有限公司 数据库部署方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
WO2021000622A1 (zh) 2021-01-07
US20220091902A1 (en) 2022-03-24
CN114880698A (zh) 2022-08-09
EP3951592A4 (en) 2022-06-15
CN114880698B (zh) 2022-11-25
CN112149142A (zh) 2020-12-29
EP3951592A1 (en) 2022-02-09

Similar Documents

Publication Publication Date Title
KR102460096B1 (ko) 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
EP2924948B1 (en) External indexing and search for a secure cloud collaboration system
JP7030778B2 (ja) データの複製先であるネットワークノードの識別
CN113364735B (zh) 多链场景下数据跨链访问控制方法、系统、设备及终端
US20080154851A1 (en) Method and apparatus for sharing files over a network
CN109376172B (zh) 基于区块链的数据获取方法和系统
US20220091902A1 (en) Database access method and apparatus, computing device, and computer program product
CN112699399A (zh) 加密数据库系统、实现加密数据库系统的方法以及装置
US10951510B2 (en) Communication device and communication method
WO2018019029A1 (zh) 一种数据同步方法及设备
US20150381716A1 (en) Method and system for sharing files over p2p
US20230079672A1 (en) Cross-chain data transmission method and apparatus, computer device, storage medium, and computer program product
CN113315630B (zh) 区块链、量子密钥分发方法和装置
US20200410126A1 (en) Database Access Method and Apparatus, Computing Device, and Computer Program Product
CN112235331B (zh) 一种数据传输处理方法及设备
CN111339130A (zh) 一种数据查询方法、相关设备及可读存储介质
CN114238240B (zh) 一种分布式多集群的数据存储方法、装置及存储介质
US10558412B2 (en) Content delivery network including mobile devices
CN108881257B (zh) 分布式搜索集群加密传输方法及加密传输分布式搜索集群
US10849179B1 (en) Mobile network tool
CN113987475A (zh) 分布式资源管理系统及方法、凭证信息的管理系统、介质
CN116010529B (zh) 数据处理方法及系统
KR101757563B1 (ko) 사물인터넷 환경에서의 비밀키 관리 방법 및 장치
CN112637316B (zh) 一种通信方法及装置
CN112699132B (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