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

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

Info

Publication number
WO2020258249A1
WO2020258249A1 PCT/CN2019/093693 CN2019093693W WO2020258249A1 WO 2020258249 A1 WO2020258249 A1 WO 2020258249A1 CN 2019093693 W CN2019093693 W CN 2019093693W WO 2020258249 A1 WO2020258249 A1 WO 2020258249A1
Authority
WO
WIPO (PCT)
Prior art keywords
database
database access
access
service engine
access service
Prior art date
Application number
PCT/CN2019/093693
Other languages
English (en)
French (fr)
Inventor
郭寿敏
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201980006260.0A priority Critical patent/CN112449697A/zh
Priority to PCT/CN2019/093693 priority patent/WO2020258249A1/zh
Priority to EP19934499.5A priority patent/EP3859555A4/en
Priority to US16/927,147 priority patent/US20200410126A1/en
Publication of WO2020258249A1 publication Critical patent/WO2020258249A1/zh

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
    • 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/21Design, administration or maintenance of databases

Definitions

  • the database access service engine can send the access request to the database instance through the connection, and the database instance processes the access request.
  • the database access initiation module when the database access initiation module receives the access request, the database access initiation module selects a database access service engine from a plurality of database access service engines, and sends the database access service engine to the selected database access service engine. Access request. In this way, multiple database access service engines can share the pressure of forwarding multiple access requests.
  • the database access initiation module when the database access initiation module receives the access request, the database access initiation module selects a database access from the multiple database access service engines according to the load of the multiple database access service engines Service engine. In this way, load sharing can be achieved in multiple database access service engines.
  • the database access initiation module when the database access initiation module receives the access request, if the access request carries the identifier of the database instance, and there is already a database access service engine that has established a connection with the database instance, then Determine the database access service engine bound to the identifier of the database instance.
  • the database instance after the database instance processes the access request and generates the processing result corresponding to the access request, if the database instance is directly connected to the database access service engine, the database instance accesses the service to the database The engine sends the processing result; if the database instance is connected to the database access scheduling module, the database instance sends the processing result to the database access scheduling module, so that the database access scheduling module forwards the processing result to the database access service engine .
  • the present application provides a computing device, which includes a processor and a memory.
  • the memory stores computer instructions; the processor executes the computer instructions stored in the memory, so that the computing device executes the steps performed by the database access initiation module in the above-mentioned first aspect or various possible designs of the first aspect, or causes
  • the computing device executes the steps performed by the database access service engine in the method provided by the foregoing first aspect or various possible designs of the first aspect, or causes the computing device to execute the foregoing first aspect or various possible designs of the first aspect
  • the steps in the provided method are executed by the database access implementation module (such as a database instance, such as a database access scheduling module).
  • the present application provides a computer-readable storage medium that stores computer instructions.
  • the processor of a computing device executes the computer instructions
  • the computing device executes the first aspect or the first aspect.
  • the computing device executes the steps performed by the database access implementation module (such as a database instance, such as a database access scheduling module) in the methods provided in the first aspect or various possible designs of the first aspect.
  • the database access initiation module can receive access requests from the application.
  • the access request may include a SQL-formatted statement, and “SQL-formatted statement” may be abbreviated as “SQL statement” below.
  • SQL statement the user can operate the application to input SQL statements to trigger the application to generate an access request including the SQL statement.
  • a possible implementation of this application as shown in Figure 3, if the database access scheduling module and the database access service engine are deployed in the same network; for example, the database access scheduling module 333 and the database access service engine 122 are both deployed in the public cloud to provide Services, that is, the database access scheduling module 333 and the database access service engine 122 are deployed in the network used by the public cloud.
  • the database access scheduling module 333 can access the database instance 373 and the database instance 374.
  • the database access service engine 122 records the identity of the database access scheduling module 332 and the database access service engine 122 in the metadata database 14. Binding relationship.
  • the database access service engine 122 records the binding relationship between the identifier of the database access scheduling module 333 and the database access service engine 122 in the metadata database 14. It can be seen that the application records the binding relationship between the database access scheduling module and the database access service engine in the metadata database 14.
  • Step S411 The application sends an access request to the database access initiation module.
  • the access request may include statements in SQL format.
  • the database instance can execute the SQL-formatted statement carried in the access request.
  • the access request carries the identifier of the service currently provided by the application.
  • the database access initiation module 111 when it receives an access request sent by an application, it can query the metadata database 14. If the query result is not the database instance allocation database specified by the database instance identifier carried by the access request To access the service engine, select the database access service engine with the least load from multiple database access service engines (for example, database access service engine 121, database access service engine 122, database access service engine 123); suppose the database access service with the least current load The engine is the database access service engine 121, and the database access initiation module 111 sends the access request to the database access service engine 121. In addition, the database access initiation module 111 records the binding relationship between the database access service engine 121 and the identifier of the database instance in the metadata database 14.
  • database access service engine 121 for example, database access service engine 121, database access service engine 122, database access service engine 123
  • the database access initiation module 111 sends the access request to the database access service engine 121.
  • the database access initiation module 111 records the binding relationship between the database access service engine
  • Step S414 The database access service engine sends the access request to the database instance.
  • the database access service engine still needs to create a new connection, using the newly created connection Connect to transmit data related to the access request (for example, the access request or the processing result corresponding to the access request) between the database access service engine and the database instance.
  • Fig. 5 illustrates a flow of the database access method, and the flow includes step S511 to step S521.
  • the database access scheduling module and the database access service engine are deployed in the same network, and the database access scheduling module and the database access service engine can establish a communication connection in the network.
  • the database access scheduling module 333 and the database access service engine 122 are both deployed in a public cloud to provide services, that is, the database access scheduling module 333 and the database access service engine 122 are both deployed in the network used by the public cloud.
  • the database access scheduling module 333 uses the IP address of the database access service engine 122 to establish a communication connection with the database access service engine 122, or the database access service engine 122 uses the IP address of the database access scheduling module 333 to establish a communication connection with the database access scheduling module 333.
  • step S512 the database access engine records the binding relationship between the database access service engine that has established a communication connection and the database access scheduling module in the metadata database 14.
  • the access request carries the identifier of the database access scheduling module.
  • the identifier of the database access scheduling module may be the IP address of the database access scheduling module.
  • the identifier of the database access scheduling module may be the IP address and port number of the database access scheduling module.
  • the database access initiation module 113 uses the identifier of the database access scheduling module 333 carried in the access request to find the binding relationship corresponding to the identifier of the database access scheduling module 333 in the metadata database 14, and the binding relationship records the database access If the service engine 122 is identified, the database access initiating module 113 sends the access request to the database access service engine 122.
  • the access request carries the identifier of the database instance.
  • the database access scheduling module sends the access request to the database instance specified by the identifier.
  • the database access scheduling module and the database instance are located in the same local area network.
  • Step S519 The database access scheduling module sends the processing result corresponding to the access request to the database access service engine.
  • the database access service engine is the database access service engine that previously sent the access request to the database access scheduling module. After the database access scheduling module obtains the processing result corresponding to the access request from the database instance, the database access scheduling module sends the processing result to the database access service engine.
  • a possible implementation is that the data sent by the database access engine to the database access scheduling module (for example, the access request generated by the application) is encrypted using the public key of the database access scheduling module, and the database access engine sends to the database access scheduling module Encrypted data.
  • the database access scheduling module uses the private key of the database access scheduling module to decrypt the data from the encrypted data.
  • the sending unit 603 sends the access request to a determined database access service engine, the database access service engine having the ability to send the access request to the database instance
  • the determining unit 601 is configured to select a database access service engine from a plurality of database access service engines.
  • the receiving unit 602 is configured to receive the processing result corresponding to the access request sent by the database access service engine; accordingly, the sending unit 603 is configured to send the processing result to the application.
  • This application also provides a database access service engine (for example, database access service engine 121 or database access service engine 122 or database access service engine 123), which is deployed on the computing device (for example, server) of this application.
  • the database access service engine includes functional units for the database access initiation module to implement the above database access method; this application does not limit how to divide the functional units in the database access service engine.
  • the following example provides a functional unit Division, as shown in Figure 7.
  • the sending unit 702 is configured to send the processing result corresponding to the access request to the database access initiation module.
  • the database access scheduling module 800 shown in FIG. 8 is characterized in that the database access scheduling module 800 includes:
  • the identifier of the database access service engine is an IP address of the database access service engine.
  • connection establishment unit 803 is configured to send a request for establishing the communication connection to the database access service engine, where the request carries the identifier of the database access service engine and the public key of the database access service engine, The public key of the database access service engine is used for the authentication of the database access engine to establish the communication connection.
  • the database access scheduling module 800 includes:
  • FIG. 9 schematically provides a possible basic hardware architecture of the computing device described in this application.
  • This application provides a computer-readable storage medium in which computer instructions are stored.
  • the computing device 900 executes the database access method described above. Initiate the steps executed by the module, or the computing device 900 executes the steps executed by the database access service engine in the above database access method, or the computing device 900 executes the database access implementation module (such as a database instance, such as The steps performed by the database access scheduling module).

Abstract

一种数据库访问方法、数据库访问发起模块、数据库访问服务引擎、计算设备和计算机程序产品。该方法中,如果应用需要访问数据库实例,则该应用向数据库访问发起模块发送应用的访问请求,该访问请求携带数据库实例的标识。该数据库访问发起模块在接收到该访问请求时,确定用于访问该数据库实例的数据库访问服务引擎,向确定的数据库访问服务引擎发送所述访问请求。该数据库访问服务引擎是独立于该应用部署的。该数据库访问服务引擎用于建立用于访问所述数据库实例的连接。这样,该数据库访问发起模块可以通过该数据库访问引擎向该数据库实例转发该访问请求,从而该数据库实例可以处理该访问请求。

Description

数据库访问方法和装置、计算设备和计算机程序产品 技术领域
本申请涉及数据库领域,尤其涉及数据库访问方法、数据库访问发起模块、数据库访问服务引擎、数据库访问调度模块、计算设备和计算机程序产品。
背景技术
现有技术中,数据库连接池部署在应用内部。一个数据库连接池只为一个应用提供访问数据库实例的服务。
另外,单个应用可以分布式地部署在多个服务器上。每个服务器上部署该应用的数据库连接池,每个数据库连接池中的所有连接用于连接同一个数据库实例。换句话说,如果该个应用需要通过每个服务器连接多个数据库实例,则在每个服务器上均需要针对每个数据库实例部署一个连接池。但是,单个应用在不同服务器上用于访问同一数据库实例的数据库连接池,也不能在不同服务器之间共享。
发明内容
有鉴于此,本申请提供了一种数据库访问方法、数据库访问发起模块、数据库访问服务引擎、计算设备和计算机程序产品,可以通过独立于应用的连接实现对数据库实例的访问。
第一方面,在本申请提供的数据库访问方法中,如果应用需要访问数据库实例,则该应用向数据库访问发起模块发送应用的访问请求,该访问请求携带数据库实例的标识。
该数据库访问发起模块在接收到该访问请求时,确定用于访问该数据库实例的数据库访问服务引擎,向确定的数据库访问服务引擎发送所述访问请求。该数据库访问服务引擎是独立于该应用部署的。
该数据库访问服务引擎可以与数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)建立连接。
如果该连接是建立在数据库访问服务引擎与数据库实例之间的,则该数据库访问服务引擎可以通过该连接向该数据库实例发送该访问请求,该数据库实例处理该访问请求。
如果该连接是建立在数据库访问服务引擎与数据库访问调度模块之间的,则该数据库访问服务引擎可以通过该连接向该数据库访问调度模块发送该访问请求。这样,该数据库访问调度模块可以将该访问请求发送至该数据库实例,从而该数据库实例可以处理该访问请求。
相比于现有技术是使用应用内部的连接池提供的连接来访问数据库实例,本申请是通过独立于应用的数据库访问服务引擎来实现对数据库实例的访问。另外,用于访问数据库实例的连接是访问服务引擎建立的,并非应用维护的,从而减少了应用的负载。
第一方面的一种可能设计,该数据库访问发起模块在接收到该访问请求时,数据库访问发起模块从多个数据库访问服务引擎中选择一个数据库访问服务引擎,向选择的数据库访问服务引擎发送该访问请求。这样,多个数据库访问服务引擎可以分担转发多个访问请求的压力。
第一方面的一种可能设计,该数据库访问发起模块在接收到该访问请求时,数据库访问发起模块根据多个数据库访问服务引擎的负载,从所述多个数据库访问服务引擎中选择一个数据库访问服务引擎。这样,可以在多个数据库访问服务引擎实现负载分担。
可选地,每个数据库访问服务引擎的负载,是指该个数据库访问服务引擎与数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)建立的连接的条数。条数越多,则该个数据库访问服务引擎的负载越大;反之,条数越少,则该个数据库访问服务引擎的负载越小。
第一方面的一种可能设计,该数据库访问发起模块在接收到该访问请求时,数据库访问发起模块从多个数据库访问服务引擎中选择负载最小的数据库访问服务引擎。可选地,每个数据库访问服务引擎的负载,是指该个数据库访问服务引擎与数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)建立的连接的条数。
第一方面的一种可能设计,该数据库访问发起模块在接收到该访问请求时,如果该访问请求携带该数据库实例的标识,并且已存在与该数据库实例建立了连接的数据库访问服务引擎,则确定与所述数据库实例的标识绑定的数据库访问服务引擎。
第一方面的一种可能设计,该数据库访问发起模块在接收到该访问请求时,如果所述访问请求携带数据库访问调度模块的标识,并且已存在与该数据库访问调度模块建立了连接的数据库访问服务引擎,确定与所述数据库访问调度模块绑定的数据库访问服务引擎。这样,该数据库访问发起模块向该数据库访问服务引擎发送该访问请求,从而所述数据库访问调度模块才会从所述数据库访问服务引擎接收到所述访问请求。由于该访问请求指定的数据库实例是与该数据库访问调度模块关联的,待该数据库访问调度模块接收到该访问请求,该数据库访问调度模块才能够转发该访问请求至该访问请求指定的数据库实例。
第一方面的一种可能设计,所述数据库访问服务引擎在接收到该访问请求时,该数据库访问服务引擎根据所述数据库实例的标识建立所述数据库访问服务引擎与所述数据库实例的连接。这样,基于该连接,在所述数据库访问服务引擎与所述数据库实例之间可以传输数据,例如数据库访问服务引擎向数据库实例发送该访问请求,例如该数据库实例向该数据库访问服务引擎发送该访问请求对应的处理结果。
第一方面的一种可能设计,所述数据库访问服务引擎在接收到该访问请求时,如果所述访问请求携带了标识连接的关键字,使用所述关键字标识的在所述数据库访问服务引擎与所述数据库实例之间已建立的连接,向所述数据库实例发送所述访问请求。这样,如果该关键字是应用指定的,该应用可以基于该关键字来实现使用同一连接访问同一数据库实例。
第一方面的一种可能设计,所述数据库访问服务引擎在接收到该访问请求时,如果所述访问请求没有携带用于标识连接的关键字,该数据库访问服务引擎根据所述数据库实例的标识建立所述数据库访问服务引擎与所述数据库实例的连接。由于该访问请求没有携带用于标识连接的关键字,即使存在所述数据库访问服务引擎与所述数据库实例之间的已有连接,该数据库访问服务引擎仍需要新建一条连接,使用新建的连接来在所述数据库访问服务引擎与所述数据库实例之间传输该访问请求相关的数据(例如该访问请求或者该访问请求对应的处理结果)。
第一方面的一种可能设计,所述数据库访问服务引擎在接收到该访问请求时,如果所述访问请求携带有数据库访问调度模块的标识,数据库访问服务引擎向所述数据库访问调度模块发送所述访问请求。
举例说明,在该数据库访问服务引擎与该数据库访问调度模块之间已经建立了通信连接的情况下,应用可以在访问请求中指定数据库访问调度模块的标识。这样,数据库访问服务引擎可以基于数据库访问调度模块的标识,确定该通信连接;从而,数据库访问服务引擎可以继续使用该通信连接,来实现向该数据库访问调度模块发送访问请求。
如果是多个应用分别在自己的访问请求中指定了相同的数据库访问调度模块的标识,则可以共用数据库访问服务引擎、在该数据库访问服务引擎与该数据库访问调度模块之间的通信连接和该数据库访问调度模块来实现这些访问请求的相关数据的传输。
第一方面的一种可能设计,在数据库实例处理访问请求并生成该访问请求对应的处理结果之后,如果该数据库实例是直接与该数据库访问服务引擎连接的,则该数据库实例向该数据库访问服务引擎发送该处理结果;如果该数据库实例是与数据库访问调度模块连接的,则该数据库实例向该数据库访问调度模块发送该处理结果,以便该数据库访问调度模块将该处理结果转发至数据库访问服务引擎。
该数据库访问服务引擎向该数据库访问发起模块发送该处理结果。相应地,该数据库访问发起模块向该应用发送该处理结果。
这样,应用可以通过访问请求实现对该数据库实例的访问,并得到该访问请求的处理结果。
第二方面,本申请提供一种数据库访问装置,该装置包括的功能模块用于实现第一方面或第一方面的任意可能设计提供的方中由数据库访问发起模块执行的步骤。
本申请提供另一种数据库访问装置,该装置包括的功能模块用于实现第一方面或第一方面的任意可能设计提供的方法中由该数据库访问服务引擎执行的步骤。
本申请提供另一种数据库访问装置,该装置包括的功能模块用于实现第一方面或第一方面的任意可能设计提供的方法中由该数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤。
第三方面,本申请提供一种计算设备,该计算设备包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令,使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由数据库访问发起模块执行的步骤,或者使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由该数据库访问服务引擎执行的步骤,或者使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由该数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当计算设备的处理器执行该计算机指令时,该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由数据库访问发起模块执行的步骤,或者该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由该数据库访问服务引擎执行的步骤,或者该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由该数据库访问实现模块(例如数据库实例,例如数据库访问调度模块) 执行的步骤。
第五方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由数据库访问发起模块执行的步骤,或者使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由该数据库访问服务引擎执行的步骤,或者使得该计算设备执行上述第一方面或者第一方面的各种可能设计提供的方法中由该数据库访问实现模块(例如数据库实例,例如数据库访问调度模块)执行的步骤。
附图说明
图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 development kit,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 Control Protocol,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所述的方法,其特征在于,所述数据库访问发起模块确定数据库访问服务引擎,包括:
    所述数据库访问发起模块从多个数据库访问服务引擎中选择一个数据库访问服务引擎。
  3. 根据权利要求1所述的方法,其特征在于,所述数据库访问发起模块确定数据库访问服务引擎,包括:
    所述数据库访问发起模块根据多个数据库访问服务引擎的负载,从所述多个数据库访问服务引擎中选择一个数据库访问服务引擎。
  4. 根据权利要求1所述的方法,其特征在于,所述数据库访问发起模块确定数据库访问服务引擎,包括:
    所述数据库访问发起模块从多个数据库访问服务引擎中选择负载最小的数据库访问服务引擎。
  5. 根据权利要求1所述的方法,其特征在于,所述数据库访问发起模块确定数据库访问服务引擎,包括:
    所述数据库访问发起模块根据所述访问请求携带的所述数据库实例的标识,确定与所述数据库实例的标识绑定的数据库访问服务引擎。
  6. 根据权利要求1所述的方法,其特征在于,所述数据库访问发起模块确定数据库访问服务引擎,包括:
    所述数据库访问发起模块根据所述访问请求携带的数据库访问调度模块的标识,确定与所述数据库访问调度模块绑定的数据库访问服务引擎,所述数据库访问调度模块用于将从所述数据库访问服务引擎接收的所述访问请求发送至所述数据库实例。
  7. 根据权利要求1至6任一项所述的方法,其特征在于,所述方法包括:
    所述数据库访问发起模块接收所述数据库访问服务引擎发送的所述访问请求对应的处理结果;
    所述数据库访问发起模块向所述应用发送所述处理结果。
  8. 一种数据库访问方法,其特征在于,所述方法包括:
    数据库访问服务引擎接收数据库访问发起模块发送的访问请求,所述访问请求携带数据库实例的标识;
    所述数据库访问服务引擎向所述数据库实例发送所述访问请求,或者,所述数据库访问服务引擎向与所述数据库实例关联的数据库访问调度模块发送所述访问请求。
  9. 根据权利要求8所述的方法,其特征在于,所述方法包括:
    所述数据库访问服务引擎根据所述数据库实例的标识建立所述数据库访问服务引擎与所述数据库实例的连接,所述连接用于在所述数据库访问服务引擎与所述数据库实例之间传输数据。
  10. 根据权利要求8或9所述的方法,其特征在于,所述所述数据库访问服务引擎向所述数据库实例发送所述访问请求,包括:
    所述数据库访问服务引擎根据所述访问请求携带的关键字,使用所述关键字标识的在所述数据库访问服务引擎与所述数据库实例之间已建立的连接,向所述数据库实例发送所述访问请求。
  11. 根据权利要求8所述的方法,其特征在于,所述数据库访问服务引擎向与所述数据库实例关联的数据库访问调度模块发送所述访问请求,包括:
    所述数据库访问服务引擎根据所述访问请求携带的所述数据库访问调度模块的标识,向所述数据库访问调度模块发送所述访问请求。
  12. 根据权利要求8所述的方法,其特征在于,所述方法包括:
    所述数据库访问服务引擎接收所述数据库实例发送的所述访问请求对应的处理结果,或者,所述数据库访问服务引擎接收所述数据库访问调度模块发送的所述访问请求对应的处理结果;
    所述数据库访问服务引擎向所述数据库访问发起模块发送所述访问请求对应的处理结果。
  13. 一种数据库访问发起模块,其特征在于,所述数据库访问发起模块包括:
    接收单元,用于接收所述应用的访问请求,所述访问请求携带数据库实例的标识;
    确定单元,用于确定数据库访问服务引擎,所述数据库访问服务引擎独立于所述应用,所述数据库访问服务引擎用于建立用于访问所述数据库实例的连接;
    发送单元,向确定的数据库访问服务引擎发送所述访问请求,所述数据库访问服务引擎具有向所述数据库实例发送所述访问请求的能力
  14. 根据权利要求13所述的数据库访问发起模块,其特征在于,
    所述确定单元,用于从多个数据库访问服务引擎中选择一个数据库访问服务引擎。
  15. 根据权利要求13所述的数据库访问发起模块,其特征在于,
    所述确定单元,用于根据多个数据库访问服务引擎的负载,从所述多个数据库访问服务引擎中选择一个数据库访问服务引擎。
  16. 根据权利要求13所述的数据库访问发起模块,其特征在于,
    所述确定单元,用于从多个数据库访问服务引擎中选择负载最小的数据库访问服务引擎。
  17. 根据权利要求13所述的数据库访问发起模块,其特征在于,
    所述确定单元,用于根据所述访问请求携带的所述数据库实例的标识,确定与所述数据库实例的标识绑定的数据库访问服务引擎。
  18. 根据权利要求13所述的数据库访问发起模块,其特征在于,
    所述确定单元,用于根据所述访问请求携带的数据库访问调度模块的标识,确定与所述数据库访问调度模块绑定的数据库访问服务引擎,所述数据库访问调度模块用于将从所述数据库访问服务引擎接收的所述访问请求发送至所述数据库实例。
  19. 根据权利要求13至18任一项所述的数据库访问发起模块,其特征在于,
    所述接收单元,用于接收所述数据库访问服务引擎发送的所述访问请求对应的处理结果;
    所述发送单元,用于向所述应用发送所述处理结果。
  20. 一种数据库访问服务引擎,其特征在于,所述数据库访问服务引擎包括:
    接收单元,用于接收数据库访问发起模块发送的访问请求,所述访问请求携带数据库实例的标识;
    发送单元,用于向所述数据库实例发送所述访问请求,或者,向与所述数据库实例关联的数据库访问调度模块发送所述访问请求。
  21. 根据权利要求20所述的数据库访问服务引擎,其特征在于,所述数据库访问服务引擎包括:
    连接建立单元,用于根据所述数据库实例的标识建立所述数据库访问服务引擎与所述数据库实例的连接,所述连接用于在所述数据库访问服务引擎与所述数据库实例之间传输数据。
  22. 根据权利要求20或21所述的数据库访问服务引擎,其特征在于,
    所述发送单元,用于根据所述访问请求携带的关键字,使用所述关键字标识的在所述数据库访问服务引擎与所述数据库实例之间已建立的连接,向所述数据库实例发送所述访问请求。
  23. 根据权利要求20所述的数据库访问服务引擎,其特征在于,
    所述发送单元,用于根据所述访问请求携带的所述数据库访问调度模块的标识,向所述数据库访问调度模块发送所述访问请求。
  24. 根据权利要求20所述的数据库访问服务引擎,其特征在于,
    所述接收单元,用于接收所述数据库实例发送的所述访问请求对应的处理结果,或者,接收所述数据库访问调度模块发送的所述访问请求对应的处理结果;
    所述发送单元,用于向所述数据库访问发起模块发送所述访问请求对应的处理结果。
  25. 一种计算设备,其特征在于,包括处理器和存储器;
    所述存储器,用于存储计算机指令;
    所述处理器,用于执行所述存储器存储的计算机指令,使得所述计算设备执行权利要求1至7任一项所述方法中在所述数据库访问发起模块实现的步骤。
  26. 一种计算设备,其特征在于,包括处理器和存储器;
    所述存储器,用于存储计算机指令;
    所述处理器,用于执行所述存储器存储的计算机指令,使得所述计算设备执行权利要求8至12任一项所述方法中在所述数据库访问服务引擎实现的步骤。
  27. 一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令指示计算设备执行权利要求1至7任一项所述方法中在所述数据库访问发起模块实现的步骤。
  28. 一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令指示计算设备执行权利要求8至12任一项所述方法中在所述数据库访问服务引擎实现的步骤。
PCT/CN2019/093693 2019-06-28 2019-06-28 数据库访问方法和装置、计算设备和计算机程序产品 WO2020258249A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201980006260.0A CN112449697A (zh) 2019-06-28 2019-06-28 数据库访问方法和装置、计算设备和计算机程序产品
PCT/CN2019/093693 WO2020258249A1 (zh) 2019-06-28 2019-06-28 数据库访问方法和装置、计算设备和计算机程序产品
EP19934499.5A EP3859555A4 (en) 2019-06-28 2019-06-28 DATABASE ACCESS METHOD AND DEVICE, COMPUTER DEVICE AND COMPUTER PROGRAM PRODUCT
US16/927,147 US20200410126A1 (en) 2019-06-28 2020-07-13 Database Access Method and Apparatus, Computing Device, and Computer Program Product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/093693 WO2020258249A1 (zh) 2019-06-28 2019-06-28 数据库访问方法和装置、计算设备和计算机程序产品

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/927,147 Continuation US20200410126A1 (en) 2019-06-28 2020-07-13 Database Access Method and Apparatus, Computing Device, and Computer Program Product

Publications (1)

Publication Number Publication Date
WO2020258249A1 true WO2020258249A1 (zh) 2020-12-30

Family

ID=74043263

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/093693 WO2020258249A1 (zh) 2019-06-28 2019-06-28 数据库访问方法和装置、计算设备和计算机程序产品

Country Status (4)

Country Link
US (1) US20200410126A1 (zh)
EP (1) EP3859555A4 (zh)
CN (1) CN112449697A (zh)
WO (1) WO2020258249A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113343275B (zh) * 2021-06-30 2024-03-19 招商局金融科技有限公司 数据访问方法及数据管理服务系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136311A1 (en) * 2005-11-29 2007-06-14 Ebay Inc. Method and system for reducing connections to a database
CN102982141A (zh) * 2012-11-20 2013-03-20 北京搜狐新媒体信息技术有限公司 一种实现分布式数据库代理的方法及装置
CN104331457A (zh) * 2014-10-31 2015-02-04 北京思特奇信息技术股份有限公司 一种基于数据库节点的数据访问方法及系统
CN105677693A (zh) * 2015-09-18 2016-06-15 联动优势科技有限公司 一种访问数据库的方法及装置
CN106293887A (zh) * 2015-05-21 2017-01-04 中兴通讯股份有限公司 数据库处理方法及装置
CN109327535A (zh) * 2018-11-09 2019-02-12 郑州云海信息技术有限公司 一种数据库访问方法、系统、中间件设备及介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009196B2 (en) * 2011-03-16 2015-04-14 Microsoft Technology Licensing, Llc Discovery and client routing to database nodes
CN102523267A (zh) * 2011-12-08 2012-06-27 华中科技大学 云备份系统和云备份方法
US8977735B2 (en) * 2011-12-12 2015-03-10 Rackspace Us, Inc. Providing a database as a service in a multi-tenant environment
EP3019974B1 (en) * 2013-07-08 2016-11-23 Telefonaktiebolaget LM Ericsson (publ) Control of a distributed data grid layer in a federated database system
CN106339388A (zh) * 2015-07-08 2017-01-18 阿里巴巴集团控股有限公司 数据库弹性调度方法及装置
GB2553540B (en) * 2016-09-07 2022-04-27 Sage Uk Ltd Cloud system
US11100058B2 (en) * 2017-09-06 2021-08-24 Oracle International Corporation System and method for connection concentration in a database environment
CN109542611B (zh) * 2017-09-21 2021-05-14 中国移动通信集团重庆有限公司 数据库即服务系统、数据库调度方法、设备及存储介质
US10902133B2 (en) * 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
CN109815287A (zh) * 2019-01-30 2019-05-28 网易(杭州)网络有限公司 一种数据库访问系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136311A1 (en) * 2005-11-29 2007-06-14 Ebay Inc. Method and system for reducing connections to a database
CN102982141A (zh) * 2012-11-20 2013-03-20 北京搜狐新媒体信息技术有限公司 一种实现分布式数据库代理的方法及装置
CN104331457A (zh) * 2014-10-31 2015-02-04 北京思特奇信息技术股份有限公司 一种基于数据库节点的数据访问方法及系统
CN106293887A (zh) * 2015-05-21 2017-01-04 中兴通讯股份有限公司 数据库处理方法及装置
CN105677693A (zh) * 2015-09-18 2016-06-15 联动优势科技有限公司 一种访问数据库的方法及装置
CN109327535A (zh) * 2018-11-09 2019-02-12 郑州云海信息技术有限公司 一种数据库访问方法、系统、中间件设备及介质

Also Published As

Publication number Publication date
EP3859555A1 (en) 2021-08-04
EP3859555A4 (en) 2022-01-05
US20200410126A1 (en) 2020-12-31
CN112449697A (zh) 2021-03-05

Similar Documents

Publication Publication Date Title
WO2019119929A1 (zh) 区块链共识方法、装置和系统、标识信息处理方法和装置
WO2021073151A1 (zh) 基于多网通信的数据传输方法及相关设备
CN107508795B (zh) 跨容器集群的访问处理装置及方法
US8824686B1 (en) Cluster key synchronization
JP2021508877A (ja) 高性能分散型記録システム
EP2609517B1 (en) Constant access gateway and de-duplicated data cache server
JP5526137B2 (ja) 選択的データ転送ストレージ
KR20160139493A (ko) 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
WO2018000891A1 (zh) 一种虚拟桌面安全控制的方法、装置和虚拟桌面管理系统
US8745371B2 (en) Unified network architecture having storage devices with secure boot devices
CN111756752A (zh) 对数据库的访问权限的控制方法、装置及电子设备
WO2023029655A1 (zh) 数据共享方法、网络侧设备、系统、电子设备和存储介质
US20220247554A1 (en) Tenant-based database encryption
US9582676B2 (en) Adding or replacing disks with re-key processing
WO2024016624A1 (zh) 多集群访问方法和系统
US11805182B2 (en) User profile distribution and deployment systems and methods
CN112929225A (zh) 会话异常处理方法、装置、计算机设备和存储介质
WO2021000622A1 (zh) 数据库访问方法和装置、计算设备和计算机程序产品
WO2020258249A1 (zh) 数据库访问方法和装置、计算设备和计算机程序产品
CN112235331B (zh) 一种数据传输处理方法及设备
US8069155B2 (en) Securing DBMS event notifications
CN108881257B (zh) 分布式搜索集群加密传输方法及加密传输分布式搜索集群
CN112801795A (zh) 区块链多链管理方法、装置、电子设备及可读存储介质
CN117278323B (zh) 第三方信息的获取方法、电子设备及可读存储介质
CN112699132B (zh) 安全模块解密的方法以及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19934499

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019934499

Country of ref document: EP

Effective date: 20210429

NENP Non-entry into the national phase

Ref country code: DE