CN114500628A - 一种连接选择方法及装置 - Google Patents

一种连接选择方法及装置 Download PDF

Info

Publication number
CN114500628A
CN114500628A CN202111657578.0A CN202111657578A CN114500628A CN 114500628 A CN114500628 A CN 114500628A CN 202111657578 A CN202111657578 A CN 202111657578A CN 114500628 A CN114500628 A CN 114500628A
Authority
CN
China
Prior art keywords
connection
database
state information
pool
request message
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
CN202111657578.0A
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.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud Technology 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 Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202111657578.0A priority Critical patent/CN114500628A/zh
Publication of CN114500628A publication Critical patent/CN114500628A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种连接选择方法及装置,在该方法中,代理服务接收客户端发送的第一请求消息,该第一请求消息中可包括读写标记信息和第一连接状态信息;根据读写标记信息和第一连接状态信息在多个连接池中确定第一连接池,所述多个连接池分别为与多个连接状态信息对应的连接池;在第一连接池中选择第一连接,并通过第一连接将第一请求消息发送给数据库,以使数据库响应所述第一请求消息。通过本申请的方法,可以实现连接复用,并且可提升客户端的请求处理性能。

Description

一种连接选择方法及装置
技术领域
本发明涉及数据库技术领域,尤其涉及一种连接选择方法及装置。
背景技术
为了提高连接利用率,用更少的连接处理更多的请求,并且实现负载均衡和读写分离,连接复用的技术手段被使用的越来越多。目前,常用的连接复用方案如下:
在代理服务中为每个数据库节点创建一个连接池,然后当客户端发出请求时,代理服务先在连接池中选择一个读连接或者写连接,然后进行状态同步,在状态同步之后再响应客户端的请求。也就是说,目前的方案需要在选择一个连接之后进行状态同步(即用当前到的连接状态信息替换该连接之前的状态信息),就可以复用该连接,进而建立连接响应客户端的请求。而状态同步必然会消耗大量的时间,这样会降低请求处理的效率,使得请求处理性能较差。
发明内容
本发明的目的是提供一种连接选择方法及装置,用于实现连接复用,提升请求处理性能。
本发明的目的是通过以下技术方案实现的:
第一方面,本申请提供一种连接选择方法,该方法包括:接收客户端发送的第一请求消息,所述第一请求消息中包括读写标记信息和第一连接状态信息;根据所述读写标记信息和所述第一连接状态信息在多个连接池中确定第一连接池,所述多个连接池分别为与多个连接状态信息对应的连接池;在所述第一连接池中选择第一连接,并通过所述第一连接将所述第一请求消息发送给数据库,以使所述数据库响应所述第一请求消息。
通过上述技术方案,代理服务可在与连接状态信息对应的连接池中选择连接,并通过选择出的连接将客户端的请求消息发送给数据库,这样无需进行状态同步就可建立连接,能够提升请求消息的处理性能。
在一种可能的实现中,所述第一连接状态信息包括如下信息中的至少一项:用户名、数据库实例、客户端编码、时区。
应理解,在本申请实施例中还可包括更多的连接状态信息,对此不作限定。
在一种可能的实现中,所述根据所述读写标记信息和所述第一连接状态信息确定第一连接池,包括:
根据所述读写标记信息确定第一数据库;根据所述第一连接状态信息在所述第一数据库在确定与所述第一连接状态信息对应的第一连接池。
通过上述技术方案,代理服务可根据读写标记选择出执行请求数据库,进而在数据库中选择出与连接状态信息对应的连接池,无需进行状态同步即可获取连接,进而使数据库处理客户端的请求。
一种可能的实现中,所述在所述第一连接池中选择第一连接,包括:
在所述第一连接池中选择第一时间戳对应的第一连接,所述第一时间戳与当前时间的时间间隔最小。
需要说明的是,连接池的结构可以采用双向链表的结构,然后从链表的队首获取连接,这样可使得大多数的请求由少数几个连接不间断的工作完成。
第二方面,本申请提供一种连接选择装置,包括:
收发单元,用于接收客户端发送的第一请求消息,所述第一请求消息中包括读写标记信息和第一连接状态信息;
确定单元,用于根据所述读写标记信息和所述第一连接状态信息在多个连接池中确定第一连接池,所述多个连接池分别为与多个连接状态信息对应的连接池;
选择单元,用于在所述第一连接池中选择第一连接,并通过所述第一连接将所述第一请求消息发送给数据库,以使所述数据库响应所述第一请求消息。
在一种可能的实现中,所述第一连接状态信息包括如下信息中的至少一项:用户名、数据库实例、客户端编码、时区。
在一种可能的实现中,所述确定单元具体用于按如下方式根据所述读写标记信息和所述第一连接状态信息确定第一连接池:
根据所述读写标记信息确定第一数据库;根据所述第一连接状态信息在所述第一数据库在确定与所述第一连接状态信息对应的第一连接池。
在一种可能的实现中,所述选择单元具体用于按如下方式在所述第一连接池中选择第一连接:
在所述第一连接池中选择第一时间戳对应的第一连接,所述第一时间戳与当前时间的时间间隔最小。
第三方面,本申请还提供一种连接选择设备,包括:处理器、存储器、收发机,所述处理器、存储器和收发机通过总线连接;
所述存储器,用于存储程序指令;
所述收发机,用于接收和发送信号;
所述处理器,用于读取所述存储器中存储的程序指令,执行第一方面所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行第一方面所述的方法。
关于第二方面至第四方面各种实施方式所带来的技术效果,可以参考对于第一方面或第一方面的各种实施方式的技术效果的介绍,在此处不作过多赘述。
附图说明
图1为本申请实施例提供的一种连接选择方法示意图;
图2为本申请实施例提供的一种应用场景示意图;
图3为本申请实施例提供的一种连接选择方法流程图;
图4为本申请实施例提供的一种连接池的结构示意图;
图5为本申请实施例提供的一种连接选择方法示意图;
图6为本申请实施例提供的一种连接选择装置示意图;
图7为本申请实施例提供的一种连接选择设备示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要理解的是,在本文的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
首先,对本申请实施例相关的概念进行解释说明。
1)数据库:一种存储数据的软件,可以接收其它应用的数据存储和搜索请求,并进行响应。
2)数据库客户端:客户用来访问数据库的接口程序,本申请中也可以称为:客户端。
3)数据库连接:客户与数据库交流的通道,通常一个单机数据库的连接数量必定存在一个上限,本申请中也可以称为:连接。
4)数据库代理:介于数据库和客户端之间的一个程序,充当着数据库访问入口的角色,在其基础上可以实现高可用、负载均衡、读写分离、主备切换等提升数据库能力的功能,本申请中也可以称为:代理。
5)数据库连接池:因为连接的创建和销毁是一个比较耗时的操作,所以为了提升性能,一些程序会预先将一些连接创建好,这样在使用的时候就不需要创建,可以直接使用,以达到提升性能的目的,称为数据库连接池,本申请中也可以称为:连接池。
首先,对本申请的相关背景进行介绍。
代理服务需要同时管理不同的用户、管理不同数据库实例的连接。但是每一个连接在创建的时候,就必须指定连接的用户名、数据库实例以及一些其它会话状态(例如客户端编码、时区等),此后,在该连接执行任何结构化查询语言(Structured Query Language,SQL)的时候,如果需要这些信息,则可以使用这些预设值。在这种情况下,如果将用户建立的连接与数据库连接一一对应,就可以实现高可用、主备切换。但是,随着应用程序的性能要求的提升,仅仅实现高可用和主备切换是远远不够的,比如还需要实现负载均衡、读写分离等。
由于连接为一种稀缺资源,如果每个用户连接对应一个数据库连接则会比较浪费资源,并且连接过多会造成数据库的响应能力下降。其次,考虑到用户使用数据库的问题(比如不能要求用户在处理读写请求的时候分别使用多个数据库连接,也不能让用户去选择负载较低的数据库节点提交请求,这样会大大提升用户使用数据库的困难),此时如果用户连接与数据库连接一一对应,就没有办法实现负载均衡、读写分离这两个功能。针对这种情况,可以由代理服务来执行调配,即用户可以对其中的逻辑完全无感知,这样可提升用户体验。
基于此,如果代理服务要实现提高连接利用率,用更少的连接处理更多的请求,同时实现负载均衡和读写分离这两个功能,那么就要实现连接复用,即使用不同的数据库连接代替上一次执行请求使用的连接。
下面介绍目前的连接复用方案,图1所示为本申请实施例提供的一种连接选择方法示意图,参阅图1所示,该方法可包括如下步骤:
1、客户端发起请求。
2、代理服务器收到请求之后,通过结构化查询语言(Structured QueryLanguage,SQL)分析和事务管理模块对客户端的请求进行分析,确定由哪个数据库处理客户端发起的请求。
3、从数据库主节点/从节点连接池申请连接。如果连接池有连接,则可以直接取得连接,即继续执行步骤4;如果连接池没有可用连接,则执行步骤5。
4、代理服务器中的SQL分析和事务管理模块与数据库取得连接。
5、数据库主节点/从节点连接申请建立连接。
6、状态同步。
7、提交执行请求。
8、使用完连接之后归还连接。
目前的方案中是为每个数据库节点创建一个连接池,当客户端发出请求后,先选择一个连接进行状态同步,然后在状态同步之后响应客户端的请求。这样可以实现连接复用,但是数据库在响应请求之前都要进行状态同步,这样会降低请求处理性能。
如图2所示,为本申请实施例提供的一种应用场景示意图,参阅图2所示,该应用场景可包括:客户端21、代理服务器22(也称为:代理服务)、数据库23。
其中,客户端21可用于用户操作,发出请求或指令。代理服务器22用于接收客户端21的请求,与数据库23交互。
在一些实施例中,当客户端发出请求消息时,代理服务器可根据客户端的请求消息和连接状态信息选择一个连接池,并从选择的连接池中选择一个连接,然后通过选择出的连接将请求消息发给数据库,这样不需要进行状态同步。
图3所示为本申请实施例提供的一种连接选择方法流程图,参阅图3所示,该方法可包括如下步骤:
需要说明的是,在下述步骤执行之前,客户端与数据库之间已经建立连接。
S301、代理服务接收客户端发送的第一请求消息。
其中,第一请求消息中可包括读写请求标记和连接状态信息。即第一请求消息中可包括该第一请求为读请求或写请求。示例性的,比如读请求标记可以为read,写请求标记可以为write,当然,标记还可以为其它标记,本申请对此不做限定。
S302、代理服务根据读写请求标记和连接状态信息确定第一连接池。
其中,连接状态信息可包括:用户名、数据库实例、客户端编码、时区等。
在一些实施例中,代理服务可以为每个数据库节点的每一种连接状态创建一个连接池,即每个数据库节点可对应多个连接池。关于连接池的详细介绍可参阅下文中的描述,此处先不做说明。
具体来说,当代理服务收到连接请求消息之后,可根据连接请求消息中的连接状态信息创建连接池,这样针对不同的连接状态信息可创建不同的连接池。之后,如果代理服务接收到客户端发送的第一请求消息时可根据读写标记和连接状态信息在不同的连接池中选择相应的连接池。
比如,3个连接请求消息对应3个不同的连接状态信息,代理服务可根据3个不同的连接状态信息创建了3个连接池,比如连接池1、连接池2和连接池3。其中,连接池1对应连接请求消息1中的连接状态信息1,连接池2对应连接请求消息2中的连接状态信息2,连接池3对应连接请求消息3中的连接状态信息3。然后代理服务在接收新的请求消息,比如写请求消息时,可先根据读写标记找到相应的数据库,比如数据库1,然后在数据库1中的连接池中找与连接状态信息对应的连接池。比如写请求消息中的连接状态信息与连接请求1中的连接状态信息1完全相同,则此时可在数据库1的连接池1中为写请求消息分配连接。
S303、代理服务在第一连接池中确定第一连接。
如图4所示,为本申请实施例提供的一种连接池的结构示意图。在图4所示示意图中,以连接池-1为例,在本申请实施例中,每一个连接池使用一个线程安全的双向链表作为基础数据结构,在选取连接时可从链表的队首取出一个连接。如果没有可用的连接,比如连接都被占用时,可创建一个新的连接。
也就是说,第一连接可以为在连接池中选择出的连接,也可以为新建的连接,本申请对此不作限定。
应理解,图4中仅是以一个数据库节点中的一个连接池为例,图4中所示的连接池-2和连接池-1可以为同一个数据库节点中的不同连接池。
在一些实施例中,同一个数据库节点的多个连接池可共用一个连接计数器,该连接计数器可用于计算当前连接池的连接被使用的数量。比如,在申请连接之前,可先校验连接数限制(即有没有超过最大值),如果没有超过连接数限制,则连接计数器在本次连接建立时可在连接数上加1。相应的,当连接归还后,连接计数器的连接数减1。
可选的,如果在申请连接时连接超过限制,则将连接放入队列等候,如果等候队列不为空,等候连接数降低后可尝试重新申请连接。
通过上述步骤,代理服务可申请到客户端与数据库之间的连接,即第一连接,然后客户端可通过第一连接与数据库建立连接。
通过上述方法,大部分的请求都可由少数几个连接的不间断工作完成。并且,数据库不需要在执行请求前对数据库连接进行额外的恢复操作,用户可以直接获取到适合状态的连接。
S304、代理服务通过第一连接将第一请求消息发送给数据库。
S305、数据库响应客户端的第一请求消息。
在本申请实施例中,代理服务可选择出连接,然后作为中介设备将客户端的第一请求消息转发给数据库,最后数据库可响应客户端的第一请求消息。
继续以图4为例进行介绍,当执行完客户端的请求之后,可归还连接。作为一种可能的实现方式,链表中可记录每一个连接使用的时间戳,当归还连接时可将连接归还到队首,并更新连接使用时间戳。即在双向链表中队尾的时间戳最早,队首的时间戳最新。
可选的,如果在连接使用过程中发生了连接状态信息的变更,比如切换数据库实例,则可在归还连接时将连接归还到对应的连接池。比如,在连接池1中选择连接执行客户端的请求,在执行过程中连接状态信息发生了变化,比如变为了连接池2对应的连接状态信息,则在归还连接时可将连接归还到连接池2中。
进一步的,在本申请实施例中,连接池中可设置守护线程,该守护线程用于根据连接上次使用的时间戳从队尾将空闲的连接逐步移除和关闭,这样可避免空闲连接数过多,使得连接的使用率降低。并且,如果连接池的借出连接数为0,此时可以回收整个连接池,以避免代理服务数据变得臃肿。
或者,在本申请实施例中可给连接设置一个空闲时间缓冲,如果连接在该空闲时间缓冲期间被借出,即连接会被使用;如果连接在该空闲时间缓冲期间没有被借出,则连接可认为是空闲连接。例性的,比如连接-n上次使用的时间戳与当前时间的时间间隔大于预设值(比如,1秒),且连接-n当前没有被借出,即连接-n未被使用,则可从链表的队尾将该连接-n移除。
也就是说,在本申请实施例中,对于空闲的连接会及时得到释放,能够避免占用数据库的连接资源。并且,由于存在空闲时间缓冲,即使在并发执行数量浮动较大的情况下,连接池的性能也仍然会保持平稳。
上述实施例的方案相比于目前的方案,在数据库连接建立时省略了连接状态同步环节,能够提升请求处理性能。
通过本申请实施例的方案,在代理服务中为每个节点的每一种状态创建一个连接池,在每次请求之前,根据请求的信息和连接的状态选择一个合适的连接池,并从连接池中获取一个连接进行操作。这样,用户拿到连接后,不需要进行状态同步,直接就可以复用连接进行操作,一个代理服务只要创建少量的数据库连接,即可支持大量的客户端请求。
如图5所示,为本申请实施例提供的一种连接选择方法示意图。参阅图5所示,该方法可包括如下步骤:
1、客户端发起请求。
2、选择连接池。
其中,图5中所示的连接动态调配模块用于为每一个连接状态延迟创建一个连接池,提供接口让主流程可以从中获取一个适合的、可用的连接。
SQL分析模块,用于分析SQL性质,判断是否可以发往从库等。事务管理模块,可用于控制连接的申请和归还时机。
如果在连接池中选择出了连接,则继续执行步骤3。如果连接池中没有可用连接,则执行步骤4。
3、取得连接。
4、申请建立连接。
申请建立连接之后,可返回步骤3即取得连接,之后可向数据库提交执行请求。
5、提交执行请求。
6、归还连接。
获得连接后,可以直接用于执行客户端的请求。执行完毕后则归还到对应的连接池。
通过本申请实施例的方案,在保证连接池高性能、连接高利用率的前提下,通过多连接池管理解决了不同的数据库连接的会话状态差异问题。
基于与上述一种方法实施例相同的构思,本发明实施例还提供了一种,图6所示为本申请实施例提供的一种连接选择装置的结构框图,包括:收发单元601、确定单元602、选择单元603。
其中,收发单元601,用于接收客户端发送的第一请求消息,所述第一请求消息中包括读写标记信息和第一连接状态信息。
确定单元602,用于根据所述读写标记信息和所述第一连接状态信息在多个连接池中确定第一连接池,所述多个连接池分别为与多个连接状态信息对应的连接池。
选择单元603,用于在所述第一连接池中选择第一连接,并通过所述第一连接将所述第一请求消息发送给数据库,以使所述数据库响应所述第一请求消息。
在一种可能的实现中,所述第一连接状态信息包括如下信息中的至少一项:用户名、数据库实例、客户端编码、时区。
在一种可能的实现中,所述确定单元602具体用于按如下方式根据所述读写标记信息和所述第一连接状态信息确定第一连接池:
根据所述读写标记信息确定第一数据库;根据所述第一连接状态信息在所述第一数据库在确定与所述第一连接状态信息对应的第一连接池。
在一种可能的实现中,所述选择单元603具体用于按如下方式在所述第一连接池中选择第一连接:
在所述第一连接池中选择第一时间戳对应的第一连接,所述第一时间戳与当前时间的时间间隔最小。
需要说明的是,本发明实施例中上述涉及的装置中各个单元的功能实现可以进一步参照相关方法实施例的描述,在此不再赘述。
如图7所示为本申请实施例提供的一种连接选择设备700。该连接选择设备700包括至少一个处理器702,用于实现或用于支持连接选择设备700实现如本申请实施例提供的图6所示的确定单元602和选择单元603的功能。示例性地,处理器702可以根据所述读写标记信息和所述第一连接状态信息在多个连接池中确定第一连接池,所述多个连接池分别为与多个连接状态信息对应的连接池等,具体参见方法示例中的详细描述,此处不做赘述。
连接选择设备700还可以包括至少一个存储器701,用于存储程序指令。存储器701和处理器702耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器702可能和存储器701协同操作。处理器702可能执行存储器701中存储的程序指令和/或数据。所述至少一个存储器中的至少一个可以包括于处理器中。
连接选择设备700还可以包括收发器703,用于通过传输介质和其它设备进行通信。处理器702可以利用收发器703收发数据。示例性的,收发器703用于接收客户端发送的请求消息,所述请求消息中包括读写标记信息和第一连接状态信息。
本申请不限定上述收发器703、处理器702以及存储器701之间的具体连接介质。本申请实施例在图7中以存储器701、处理器702以及收发器703之间通过总线704连接,总线在图7中以粗线表示。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器702可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接由硬件处理器执行完成,或者由处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器701可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如RAM。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述实施例的方法。
本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行上述实施例的方法。
本申请实施例中还提供一种芯片,所述芯片中的逻辑用于执行上述实施例的方法。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种连接选择方法,其特征在于,包括:
接收客户端发送的第一请求消息,所述第一请求消息中包括读写标记信息和第一连接状态信息;
根据所述读写标记信息和所述第一连接状态信息在多个连接池中确定第一连接池,所述多个连接池分别为与多个连接状态信息对应的连接池;
在所述第一连接池中选择第一连接,并通过所述第一连接将所述第一请求消息发送给数据库,以使所述数据库响应所述第一请求消息。
2.如权利要求1所述的方法,其特征在于,所述第一连接状态信息包括如下信息中的至少一项:用户名、数据库实例、客户端编码、时区。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述读写标记信息和所述第一连接状态信息确定第一连接池,包括:
根据所述读写标记信息确定第一数据库;
根据所述第一连接状态信息在所述第一数据库在确定与所述第一连接状态信息对应的第一连接池。
4.如权利要求1所述的方法,其特征在于,所述在所述第一连接池中选择第一连接,包括:
在所述第一连接池中选择第一时间戳对应的第一连接,所述第一时间戳与当前时间的时间间隔最小。
5.一种连接选择装置,其特征在于,包括:
收发单元,用于接收客户端发送的第一请求消息,所述第一请求消息中包括读写标记信息和第一连接状态信息;
确定单元,用于根据所述读写标记信息和所述第一连接状态信息在多个连接池中确定第一连接池,所述多个连接池分别为与多个连接状态信息对应的连接池;
选择单元,用于在所述第一连接池中选择第一连接,并通过所述第一连接将所述第一请求消息发送给数据库,以使所述数据库响应所述第一请求消息。
6.如权利要求5所述的装置,其特征在于,所述第一连接状态信息包括如下信息中的至少一项:用户名、数据库实例、客户端编码、时区。
7.如权利要求5或6所述的装置,其特征在于,所述确定单元具体用于按如下方式根据所述读写标记信息和所述第一连接状态信息确定第一连接池:
根据所述读写标记信息确定第一数据库;
根据所述第一连接状态信息在所述第一数据库在确定与所述第一连接状态信息对应的第一连接池。
8.如权利要求5所述的装置,其特征在于,所述选择单元具体用于按如下方式在所述第一连接池中选择第一连接:
在所述第一连接池中选择第一时间戳对应的第一连接,所述第一时间戳与当前时间的时间间隔最小。
9.一种连接选择设备,其特征在于,包括:处理器、存储器、收发机,所述处理器、存储器和收发机通过总线连接;
所述存储器,用于存储程序指令;
所述收发机,用于接收和发送信号;
所述处理器,用于读取所述存储器中存储的程序指令,执行权利要求1~4任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行权利要求1~4中任一项所述的方法。
CN202111657578.0A 2021-12-30 2021-12-30 一种连接选择方法及装置 Pending CN114500628A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111657578.0A CN114500628A (zh) 2021-12-30 2021-12-30 一种连接选择方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111657578.0A CN114500628A (zh) 2021-12-30 2021-12-30 一种连接选择方法及装置

Publications (1)

Publication Number Publication Date
CN114500628A true CN114500628A (zh) 2022-05-13

Family

ID=81508641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111657578.0A Pending CN114500628A (zh) 2021-12-30 2021-12-30 一种连接选择方法及装置

Country Status (1)

Country Link
CN (1) CN114500628A (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000045286A1 (en) * 1999-01-28 2000-08-03 Genrad, Inc. Method and apparatus for distributed database access
US6950822B1 (en) * 2002-11-06 2005-09-27 Oracle International Corporation Techniques for increasing efficiency while servicing requests for database services
CN103729373A (zh) * 2012-10-15 2014-04-16 北京新媒传信科技有限公司 一种数据库代理方法和装置
CN105095438A (zh) * 2015-07-23 2015-11-25 北京按钮云商科技有限公司 一种基于.net数据库连接池的数据管理方法及系统
WO2016107340A1 (zh) * 2014-12-31 2016-07-07 北京奇虎科技有限公司 业务请求处理方法和装置
US20190075183A1 (en) * 2017-09-06 2019-03-07 Oracle International Corporation System and method for row buffering in a database environment
CN109525570A (zh) * 2018-11-06 2019-03-26 东南大学 一种面向集团客户的数据分层安全访问控制方法
CN112100208A (zh) * 2020-09-08 2020-12-18 北京金山云网络技术有限公司 一种操作请求的转发方法和装置
CN112699150A (zh) * 2021-01-04 2021-04-23 中国银联股份有限公司 一种数据库操作框架、方法及系统
CN112711606A (zh) * 2020-12-28 2021-04-27 中电金信软件有限公司 数据库访问方法、装置、计算机设备和存储介质
US20210311930A1 (en) * 2020-04-01 2021-10-07 Reniac, Inc. Persistence of write requests in a database proxy
US11182496B1 (en) * 2017-04-03 2021-11-23 Amazon Technologies, Inc. Database proxy connection management

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000045286A1 (en) * 1999-01-28 2000-08-03 Genrad, Inc. Method and apparatus for distributed database access
US6950822B1 (en) * 2002-11-06 2005-09-27 Oracle International Corporation Techniques for increasing efficiency while servicing requests for database services
CN103729373A (zh) * 2012-10-15 2014-04-16 北京新媒传信科技有限公司 一种数据库代理方法和装置
WO2016107340A1 (zh) * 2014-12-31 2016-07-07 北京奇虎科技有限公司 业务请求处理方法和装置
CN105095438A (zh) * 2015-07-23 2015-11-25 北京按钮云商科技有限公司 一种基于.net数据库连接池的数据管理方法及系统
US11182496B1 (en) * 2017-04-03 2021-11-23 Amazon Technologies, Inc. Database proxy connection management
US20190075183A1 (en) * 2017-09-06 2019-03-07 Oracle International Corporation System and method for row buffering in a database environment
CN109525570A (zh) * 2018-11-06 2019-03-26 东南大学 一种面向集团客户的数据分层安全访问控制方法
US20210311930A1 (en) * 2020-04-01 2021-10-07 Reniac, Inc. Persistence of write requests in a database proxy
CN112100208A (zh) * 2020-09-08 2020-12-18 北京金山云网络技术有限公司 一种操作请求的转发方法和装置
CN112711606A (zh) * 2020-12-28 2021-04-27 中电金信软件有限公司 数据库访问方法、装置、计算机设备和存储介质
CN112699150A (zh) * 2021-01-04 2021-04-23 中国银联股份有限公司 一种数据库操作框架、方法及系统

Similar Documents

Publication Publication Date Title
US11221763B2 (en) Disk lock management method, apparatus, and system
US11068499B2 (en) Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching
US11474853B2 (en) Storage device operation method and physical server
CN110134503B (zh) 一种集群环境下的定时任务处理方法、装置及存储介质
CN113467873A (zh) 虚拟机的调度方法、装置、电子设备及存储介质
CN112948050A (zh) 一种部署pod的方法及装置
CN115576654A (zh) 一种请求处理方法、装置、设备及存储介质
CN111586140A (zh) 一种数据交互的方法及服务器
CN111163140A (zh) 资源获取和分配的方法、装置和计算机可读存储介质
CN113094431A (zh) 读写分离方法、装置及服务器
CN112631756A (zh) 一种应用于航天测控软件的分布式调控方法及装置
CN112052104A (zh) 基于多机房实现的消息队列的管理方法及电子设备
CN116954816A (zh) 容器集群控制方法、装置、设备及计算机存储介质
CN116414527A (zh) 一种分布式事务协调器大幅提高性能方法及系统
CN110933196A (zh) 用于全球同服架构的id分配方法、系统及存储介质
CN114500628A (zh) 一种连接选择方法及装置
CN111225007A (zh) 数据库连接方法、装置和系统
CN112099728B (zh) 一种执行写操作、读操作的方法及装置
CN114296891A (zh) 任务的调度方法、系统、计算设备、存储介质及程序产品
CN111431951B (zh) 一种数据处理方法、节点设备、系统及存储介质
CN112966047B (zh) 一种基于分布式数据库的复制表功能实现方法
CN111666338B (zh) 数据复制方法、控制节点及电子设备
WO2019011180A1 (zh) 一种License的发送方法和装置
CN117076409B (zh) 文件共享方法、装置、系统、电子设备及存储介质
CN117435142B (zh) Io请求调度方法及存储装置

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