CN109815287A - 一种数据库访问系统 - Google Patents

一种数据库访问系统 Download PDF

Info

Publication number
CN109815287A
CN109815287A CN201910093646.1A CN201910093646A CN109815287A CN 109815287 A CN109815287 A CN 109815287A CN 201910093646 A CN201910093646 A CN 201910093646A CN 109815287 A CN109815287 A CN 109815287A
Authority
CN
China
Prior art keywords
module
database
order
visit order
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910093646.1A
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201910093646.1A priority Critical patent/CN109815287A/zh
Publication of CN109815287A publication Critical patent/CN109815287A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种数据库访问系统,包括:转发模块,以及与所述转发模块连接的代理模块;所述代理模块还与数据库连接,所述转发模块还与服务器连接;所述转发模块,用于获取服务器发送的访问数据,以及将所述访问数据发送至所述代理模块;所述访问数据包括访问命令;所述代理模块,用于识别所述访问命令的命令类型,并采用对应于所述命令类型的连接将所述访问命令发送至所述数据库。本发明实施例可以实现对不同的访问命令进行分离发送,避免多种命令类型采用同一连接发送访问命令,容易导致发送出错和连接负载过于集中的问题。

Description

一种数据库访问系统
技术领域
本发明涉及数据通信技术领域,特别是涉及一种数据库访问系统。
背景技术
在一些网络游戏运行时,需要大量服务器支撑大量玩家完成进行游戏前的在线匹配其余玩家。服务器需要连接到同一个数据库中进行读写操作。当连接到数据库的服务器数量达到一定数量时,服务器与数据库的连接就容易出现连接不稳定的情况。
现有技术中,服务器与数据库是通过直接连接的方式进行通信,即服务器和数据库之间没有第三方通信介质。服务器可以直接读取数据库中记录的数据,也可以直接向数据库中写入数据。但是,服务器采用这种方式与数据库连接,每一个服务器都会与数据库建立一个连接,使得服务器与数据库之间需要生成大量连接;其次,服务器在访问数据库之前采用公有协议,无法优化服务器内部传输的数据量;再者,服务器采用同一连接向数据库发送不同的指令,使得连接的压力过于集中。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据库访问系统。
为了解决上述问题,本发明实施例公开了一种数据库访问系统,包括:转发模块,以及与所述转发模块连接的代理模块;所述代理模块还与数据库连接,所述转发模块还与服务器连接;
所述转发模块,用于获取服务器发送的访问数据,以及将所述访问数据发送至所述代理模块;所述访问数据包括访问命令;
所述代理模块,用于识别所述访问命令的命令类型,并采用对应于所述命令类型的连接将所述访问命令发送至所述数据库。
优选地,所述代理模块包括:缓存子模块和命令发送子模块;所述缓存子模块与所述转发模块、预置的存储介质连接,所述命令发送子模块与所述数据库连接;
所述缓存子模块,用于缓存所述转发模块发送的访问命令,以及将所述访问命令发送至所述存储介质;所述存储介质用于存储所述访问命令;
所述命令分离子模块,用于将所述访问命令发送至所述数据库。
优选地,所述命令分离子模块包括:命令获取单元、命令识别单元、发送单元;
所述命令获取单元,用于获取所述缓存子模块中缓存的访问命令;
所述命令识别单元,用于确定当前访问命令的命令类型;
所述发送单元,用于根据所述命令类型,将所述访问命令发送至所述数据库。
优选地,所述数据库包括主数据库和至少一个从数据库;所述命令类型为读命令或写命令;所述发送单元包括:连接选择子单元、第一连接子单元、第二连接子单元;所述第一连接子单元通过第一连接池与所述数据库连接,所述第二连接子单元通过第二连接池与所述数据库连接;
连接选择子单元,用于当确定所述命令类型为读命令时,调用第一连接子单元;当确定所述命令类型为写命令时,调用第二连接子单元;
所述第一连接子单元,用于采用第一连接池中的任一连接,将所述访问命令发送至所述主数据库或从数据库;
所述第二连接子单元,用于采用所述第二连接池中的任一连接,将所述访问命令发送至所述主数据库。
优选地,所述代理模块还包括:监控子模块;所述监控子模块与所述数据库连接;
所述监控子模块,用于确定当前的主数据库。
优选地,所述缓存子模块包括:命令接收单元、协议转换单元、命令缓存单元;
所述命令接收单元,用于接收所述转发模块发送的携带有第一传输协议访问命令;
所述协议转换单元,用于将所述第一传输协议转换为第二传输协议;所述第二传输协议与数据库匹配;
所述命令缓存单元,用于缓存携带有第二传输协议的访问命令。
优选地,所述缓存子模块还包括:时间添加单元;
所述时间添加单元,用于为所述携带有第二传输协议的访问命令添加过期时间戳。
优选地,所述代理模块还包括:容错子模块;
所述容错子模块,用于确定与当前时刻对应的当前时间搓;以及将过期时间戳位于所述当前时间戳之前的访问命令进行删除。
优选地,所述系统还包括:数据收集模块;所述收集模块与所述代理模块、所述转发模块连接;
所述代理模块,还用于生成心跳数据,以及将所述心跳数据发送至所述数据收集模块;所述心跳数据包括与代理模块对应的代理标识;
所述数据收集模块,用于依据所述心跳数据,生成与代理模块对应的状态数据,以及将所述状态数据同步至所述转发模块;
所述转发模块,还用于依据所述状态数据,确定可用的代理模块。
优选地,所述服务器与一个或多个客户端连接;所述访问命令由所述客户端生成;
所述代理模块,还用于接收所述数据库发送的处理结果,以及将所述处理结果发送至与所述访问命令对应的转发模块;所述处理结果由所述服务器响应所述访问命令生成;
所述转发模块,还用于接收所述处理结果,以及将所述处理结果发送至与所述访问命令对应的服务器;所述服务器用于将所述处理结果发送至与所述访问命令对应的客户端。
本发明实施例包括以下优点:通过由转发模块在接收到服务器发送的访问数据后,将访问数据发送至代理模块,代理模块在识别访问数据中的访问命令的命令类型后,采用对应于命令类型的连接发送该访问命令至数据库,从而实现在服务器和数据库之间设置有第三方通信模块,由于转发模块与服务器连接,代理模块与数据库和转发模块连接,从而避免了现有技术中,数据库与服务器直接连接,使得数据库的连接数量巨大的问题。另外,代理模块可以在识别访问命令的命令类型后,采用与访问命令对应的连接发送访问命令至数据库,从而实现对不同的访问命令进行分离发送,避免多种命令类型采用同一连接发送访问命令,容易导致发送出错和连接负载过于集中的问题。
附图说明
图1是本发明的一种数据库访问系统实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种数据库访问系统实施例的结构框图,具体可以包括:转发模块101,以及与所述转发模块101连接的代理模块102;所述代理模块102还与数据库103连接,所述转发模块101还与服务器104连接;
所述转发模块101,用于获取服务器104发送的访问数据,以及将所述访问数据发送至所述代理模块102;所述访问数据包括访问命令;
所述代理模块102,用于识别所述访问命令的命令类型,并采用对应于所述命令类型的连接将所述访问命令发送至所述数据库103。
转发模块101可以同时连接有多个服务器104,一个服务器104与一个或多个客户端(例如:电子游戏客户端)连接。在实际应用中,服务器104一般分布在不同的地区,不同地区的服务器104用于连接对应地区的客户端。可以以地区为划分依据,将位于同一地区或者相互靠近的多个地区中的多个服务器104与同一个转发模块101连接,由转发模块101处理与其连接的多个服务器104发送的访问数据。访问数据可以为客户端或者服务器104需要生成的需要发送至数据库103的数据。
访问命令的类型可以有多种,代理模块102可以对与数据库103的连接进行划分成不同的连接池,连接池中包含至少一个连接,连接池可以与命令类型一一对应。在代理模块102识别访问命令的命令类型后,采用对应于命令类型的连接池中的连接,将访问命令发送至数据库103。
通过由转发模块101在接收到服务器104发送的访问数据后,将访问数据发送至代理模块102,代理模块102在识别访问数据中的访问命令的命令类型后,采用对应于命令类型的连接发送该访问命令至数据库103,从而实现在服务器104和数据库103之间设置有第三方通信模块,由于转发模块101与服务器104连接,代理模块102与数据库103和转发模块101连接,从而避免了现有技术中,数据库103与服务器104直接连接,使得数据库103的连接数量巨大的问题。另外,代理模块102可以在识别访问命令的命令类型后,采用与访问命令对应的连接发送访问命令至数据库103,从而实现对不同的访问命令进行分离发送,避免多种命令类型采用同一连接发送访问命令,容易导致发送出错和连接负载过于集中的问题。
在本发明的一种优选实施例中,所述代理模块102包括:缓存子模块和命令发送子模块;所述缓存子模块与所述转发模块101、预置的存储介质连接,所述命令发送子模块与所述数据库103连接;
所述缓存子模块,用于缓存所述转发模块101发送的访问命令,以及将所述访问命令发送至所述存储介质;所述存储介质用于存储所述访问命令。
所述命令分离子模块,用于将所述访问命令发送至所述数据库103。
当缓存子模块接收到访问命令时,会对访问命令进行缓存,命令分离子模块会按一定次序(例如:按时间先后顺序,按访问命令优先级顺序)获取缓存子模块缓存的访问命令,然后命令分离子模块将访问命令发送至数据库103。同时,缓存子模块还会降接收到的访问命令发送至与其连接的存储介质,存储介质可以为只读存储器,防止代理模块102发生异常重启后访问命令丢失。
在本发明的一种优选实施例中,所述数据库103包括:所述命令分离子模块包括:命令获取单元、命令识别单元、发送单元;
所述命令获取单元,用于获取所述缓存子模块中缓存的访问命令;
所述命令识别单元,用于确定当前访问命令的命令类型;
所述发送单元,用于根据所述命令类型,将所述访问命令发送至所述数据库103。
命令分离子模块通过命令获取单元从缓存子模块中获取缓存的访问命令,并通过命令识别单元确定该访问命令的命令类型。发送单元能够针对不同的命令类型,采用与访问类型对应的连接将访问命令发送至数据库103。
可以理解的是,本领域技术人员可以通过其他方式以区分访问命令的类型。例如:通过访问命令中携带的类型标识符,和/或访问命令的名称区分访问命令的类型。本发明实施例对识别访问命令的命令类型的方法不作限定。
在本发明的一种优选实施例中,所述数据库103包括主数据库103和至少一个从数据库103;所述命令类型为读命令或写命令;所述发送单元包括:连接选择子单元、第一连接子单元、第二连接子单元;所述第一连接子单元通过第一连接池与所述数据库103连接,所述第二连接子单元通过第二连接池与所述数据库103连接;
连接选择子单元,用于当确定所述命令类型为读命令时,调用第一连接子单元;当确定所述命令类型为写命令时,调用第二连接子单元;
所述第一连接子单元,用于采用第一连接池中的任一连接,将所述访问命令发送至所述主数据库103或从数据库103;
所述第二连接子单元,用于采用所述第二连接池中的任一连接,将所述访问命令发送至所述主数据库103。
代理模块102可以与数据库103集群连接,数据库103集群由多个数据库103组成,其中,数据库103集群中包括一个主数据库103,数据库103集群中其余数据库103为从数据库103。其中,只有主数据库103才能响应于命令类型为写命令的访问命令。
命令类型可以包括但不限于读命令和写命令,一个访问命令只对应于一种命令类型。其中,读命令为请求数据库103执行读取数据操作的命令类型,写命令为请求数据库103执行写入数据操作的命令类型。数据库103可以响应于命令类型为读命令的访问命令,提取其自身记录的数据;数据库103可以响应于命令类型为写命令的访问命令,存储于该访问命令指定的数据。
第一连接池包含至少一个第一连接。当连接选择子单元确定当前的访问命令的命令类型为读命令时,第一连接子单元采用第一连接池中的任一个第一连接,将命令类型为读命令的访问命令发送至主数据库103或从数据库103。
第二连接池包含至少一个第二连接。当连接选择子单元确定当前的访问命令的命令类型为写命令时,第二连接子单元采用第二连接池中的任一个第二连接,将命令类型为写命令的访问命令发送至主数据库103。
由于只有主数据库103能够响应命令类型为写命令的操作,通过对访问命令进行筛选,只有命令类型为写命令的访问命令才会发送至主数据库103,防止主数据库103同时处理不同类型的访问命令,避免主数据库103的负载过重。
在一种示例中,代理模块102只与一个数据库103连接,则该数据库103为主数据库103,且不存在与代理模块102连接的从数据库103。
在本发明的一种优选实施例中,所述代理模块102还包括:监控子模块;所述监控子模块与所述数据库103连接;
所述监控子模块,用于确定当前的主数据库103。
当主数据库103发生异常时,与主数据库103连接的其中一个从数据库103会切换为主数据库103时,监控子模块可以与任一数据库103建立长连接,通过从数据库103中记录的主从关系,从而确定当前的主数据库103。其中,数据库103设置有唯一匹配的数据库103标识,主从关系记录有当前主数据库103的数据库103标识,当其中一个从数据库103会切换为主数据库103时,任一数据库103记录的主从关系会实时更新。
在本发明的一种优选实施例中,所述缓存子模块包括:命令接收单元、协议转换单元、命令缓存单元;
所述命令接收单元,用于接收所述转发模块101发送的携带有第一传输协议访问命令;
所述协议转换单元,用于将所述第一传输协议转换为第二传输协议;所述第二传输协议与数据库103匹配;
所述命令缓存单元,用于缓存携带有第二传输协议的访问命令。
命令接收单元接收到的访问命令携带有第一传输协议,第一传输协议与客户端或者与服务器104对应,不一定适配于数据库103的传输协议。通过服务器104发送的访问命令中的第一传输协议转换为与数据库103匹配的第二传输协议,使得可以将命令接收单元接收到的访问命令进行自定义调整,以减少在代理模块102内部之间,以及在代理模块102与数据库103之间传输访问命令时需要的资源。进一步的,提高对代理模块102接收到的访问命令的传输效率和管理效率。
在本发明的一种优选实施例中,所述缓存子模块还包括:时间添加单元;
所述时间添加单元,用于为所述携带有第二传输协议的访问命令添加过期时间戳。
时间添加单元可以对访问命令添加过期时间戳,过期时间戳为访问命令对应的过期时间。在一示例中,命令缓存单元采用红黑树的方式,缓存各个访问命令及其对应的过期时间戳;存储介质采用红黑树的方式,存储各个访问命令及其对应的过期时间戳。
在本发明的一种优选实施例中,所述代理模块102还包括:容错子模块;
所述容错子模块,用于确定与当前时刻对应的当前时间搓;以及将过期时间戳位于所述当前时间戳之前的访问命令进行删除。
容错子模块按一定频次确定当前时间戳,并将过期时间戳在当前时刻之前的访问命令进行删除,并向转发模块101发送预置的报错信息,防止数据库103获取已过期的访问命令。
其中,当代理模块102发生异常重启时,缓存子模块能够从存储介质中获取存储的设置有过期时间戳的访问命令,容错子模块会确定当前时间戳,并对从存储介质中获取的访问命令进行筛选,并将过期时间戳在当前时刻之前的访问命令进行删除,并向转发模块101发送预置的报错信息。针对过期时间戳在当前时刻之后的访问命令,通过发送单元发送至数据库103。
在本发明的一种优选实施例中,所述系统还包括:数据收集模块;所述收集模块与所述代理模块102、所述转发模块101连接;
所述代理模块102,还用于生成心跳数据,以及将所述心跳数据发送至所述数据收集模块;所述心跳数据包括与代理模块102对应的代理标识;
所述数据收集模块,用于依据所述心跳数据,生成与代理模块102对应的状态数据,以及将所述状态数据同步至所述转发模块101;
所述转发模块101,还用于依据所述状态数据,确定可用的代理模块102。
本发明实施例可以包括两个或以上相互连接的代理模块102。心跳数据还可以包括生成时间,数据收集模块能够计算最近一次收到的心跳数据中的生成时间与当前时间之间的时间差,当该时间差大于预设阈值时,则生成与该代理模块102对应的状态数据,状态数据包含该代理模块102对应的代理标识。转发模块101记录有与其连接的各个代理模块102对应的代理标识,当转发模块101接收到状态数据时,则确定与状态数据的代理模块102为不可用代理模块102,同时确定与其连接的代理模块102中的可用代理模块102。在后续向代理模块102发送访问数据时,只向任一可用代理模块102发送访问数据。
在本发明的一种优选实施例中,所述服务器104与一个或多个客户端连接;所述访问命令由所述客户端生成;
所述代理模块102,还用于接收所述数据库103发送的处理结果,以及将所述处理结果发送至与所述访问命令对应的转发模块101;所述处理结果由所述服务器104响应所述访问命令生成;
所述转发模块101,还用于接收所述处理结果,以及将所述处理结果发送至与所述访问命令对应的服务器104;所述服务器104用于将所述处理结果发送至与所述访问命令对应的客户端。
访问命令中记录有客户端标识和服务器104标识。在数据库103响应于访问命令,生成与访问命令对应的处理结果时,数据库103依次通过代理模块102和转发模块101,发送至与访问命令对应的服务器104。进一步的,服务器104将处理结果发送至与客户标识对应的客户端。
在本发明实施例中,通过由转发模块101在接收到服务器104发送的访问数据后,将访问数据发送至代理模块102,代理模块102在识别访问数据中的访问命令的命令类型后,采用对应于命令类型的连接发送该访问命令至数据库103,从而实现在服务器104和数据库103之间设置有第三方通信模块,由于转发模块101与服务器104连接,代理模块102与数据库103和转发模块101连接,从而避免了现有技术中,数据库103与服务器104直接连接,使得数据库103的连接数量巨大的问题。另外,代理模块102可以在识别访问命令的命令类型后,采用与访问命令对应的连接发送访问命令至数据库103,从而实现对不同的访问命令进行分离发送,避免多种命令类型采用同一连接发送访问命令,容易导致发送出错和连接负载过于集中的问题。
进一步的,代理模块102可以针对访问命令的命令类型进行筛选,采用不同的连接处理不同命令类型对应的访问命令,以避免主数据库103的负载过重。
进一步的,代理模块102可以对接收到的访问命令添加过期时间戳,并定期检测未处理的访问命令的过期时间戳与当前时间戳的关系,确定访问命令是否过期,对过期的访问命令进行删除,从而防止数据库103获取已过期的访问命令,造成资源浪费。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据库访问系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种数据库访问系统,其特征在于,包括:转发模块,以及与所述转发模块连接的代理模块;所述代理模块还与数据库连接,所述转发模块还与服务器连接;
所述转发模块,用于获取服务器发送的访问数据,以及将所述访问数据发送至所述代理模块;所述访问数据包括访问命令;
所述代理模块,用于识别所述访问命令的命令类型,并采用对应于所述命令类型的连接将所述访问命令发送至所述数据库。
2.根据权利要求1所述的系统,其特征在于,所述代理模块包括:缓存子模块和命令发送子模块;所述缓存子模块与所述转发模块、预置的存储介质连接,所述命令发送子模块与所述数据库连接;
所述缓存子模块,用于缓存所述转发模块发送的访问命令,以及将所述访问命令发送至所述存储介质;所述存储介质用于存储所述访问命令;
所述命令分离子模块,用于将所述访问命令发送至所述数据库。
3.根据权利要求2所述的系统,其特征在于,所述命令分离子模块包括:命令获取单元、命令识别单元、发送单元;
所述命令获取单元,用于获取所述缓存子模块中缓存的访问命令;
所述命令识别单元,用于确定当前访问命令的命令类型;
所述发送单元,用于根据所述命令类型,将所述访问命令发送至所述数据库。
4.根据权利要求3所述的系统,其特征在于,所述数据库包括主数据库和至少一个从数据库;所述命令类型为读命令或写命令;所述发送单元包括:连接选择子单元、第一连接子单元、第二连接子单元;所述第一连接子单元通过第一连接池与所述数据库连接,所述第二连接子单元通过第二连接池与所述数据库连接;
连接选择子单元,用于当确定所述命令类型为读命令时,调用第一连接子单元;当确定所述命令类型为写命令时,调用第二连接子单元;
所述第一连接子单元,用于采用第一连接池中的任一连接,将所述访问命令发送至所述主数据库或从数据库;
所述第二连接子单元,用于采用所述第二连接池中的任一连接,将所述访问命令发送至所述主数据库。
5.根据权利要求4所述的系统,其特征在于,所述代理模块还包括:监控子模块;所述监控子模块与所述数据库连接;
所述监控子模块,用于确定当前的主数据库。
6.根据权利要求5所述的系统,其特征在于,所述缓存子模块包括:命令接收单元、协议转换单元、命令缓存单元;
所述命令接收单元,用于接收所述转发模块发送的携带有第一传输协议访问命令;
所述协议转换单元,用于将所述第一传输协议转换为第二传输协议;所述第二传输协议与数据库匹配;
所述命令缓存单元,用于缓存携带有第二传输协议的访问命令。
7.根据权利要求6所述的系统,其特征在于,所述缓存子模块还包括:时间添加单元;
所述时间添加单元,用于为所述携带有第二传输协议的访问命令添加过期时间戳。
8.根据权利要求6所述的系统,其特征在于,所述代理模块还包括:容错子模块;
所述容错子模块,用于确定与当前时刻对应的当前时间搓;以及将过期时间戳位于所述当前时间戳之前的访问命令进行删除。
9.根据权利要求1-8任一项所述的系统,其特征在于,所述系统还包括:数据收集模块;所述收集模块与所述代理模块、所述转发模块连接;
所述代理模块,还用于生成心跳数据,以及将所述心跳数据发送至所述数据收集模块;所述心跳数据包括与代理模块对应的代理标识;
所述数据收集模块,用于依据所述心跳数据,生成与代理模块对应的状态数据,以及将所述状态数据同步至所述转发模块;
所述转发模块,还用于依据所述状态数据,确定可用的代理模块。
10.根据权利要求9所述的系统,其特征在于,所述服务器与一个或多个客户端连接;所述访问命令由所述客户端生成;
所述代理模块,还用于接收所述数据库发送的处理结果,以及将所述处理结果发送至与所述访问命令对应的转发模块;所述处理结果由所述服务器响应所述访问命令生成;
所述转发模块,还用于接收所述处理结果,以及将所述处理结果发送至与所述访问命令对应的服务器;所述服务器用于将所述处理结果发送至与所述访问命令对应的客户端。
CN201910093646.1A 2019-01-30 2019-01-30 一种数据库访问系统 Pending CN109815287A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910093646.1A CN109815287A (zh) 2019-01-30 2019-01-30 一种数据库访问系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910093646.1A CN109815287A (zh) 2019-01-30 2019-01-30 一种数据库访问系统

Publications (1)

Publication Number Publication Date
CN109815287A true CN109815287A (zh) 2019-05-28

Family

ID=66605897

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910093646.1A Pending CN109815287A (zh) 2019-01-30 2019-01-30 一种数据库访问系统

Country Status (1)

Country Link
CN (1) CN109815287A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112449697A (zh) * 2019-06-28 2021-03-05 华为技术有限公司 数据库访问方法和装置、计算设备和计算机程序产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611709A (zh) * 2012-03-31 2012-07-25 奇智软件(北京)有限公司 一种对第三方资源的访问控制方法及系统
CN102622427A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 读写分离数据库的方法及系统
CN103559204A (zh) * 2013-10-08 2014-02-05 北京奇虎科技有限公司 处理数据库操作请求的方法、设备和系统
CN103729373A (zh) * 2012-10-15 2014-04-16 北京新媒传信科技有限公司 一种数据库代理方法和装置
CN105933408A (zh) * 2016-04-20 2016-09-07 中国银联股份有限公司 一种Redis通用中间件的实现方法及装置
CN106649857A (zh) * 2016-12-30 2017-05-10 北京恒华伟业科技股份有限公司 一种基于读写分离的数据库操作方法及装置
CN106682193A (zh) * 2016-12-29 2017-05-17 北京奇虎科技有限公司 基于缓存的数据持久化存储方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622427A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 读写分离数据库的方法及系统
CN102611709A (zh) * 2012-03-31 2012-07-25 奇智软件(北京)有限公司 一种对第三方资源的访问控制方法及系统
CN103729373A (zh) * 2012-10-15 2014-04-16 北京新媒传信科技有限公司 一种数据库代理方法和装置
CN103559204A (zh) * 2013-10-08 2014-02-05 北京奇虎科技有限公司 处理数据库操作请求的方法、设备和系统
CN105933408A (zh) * 2016-04-20 2016-09-07 中国银联股份有限公司 一种Redis通用中间件的实现方法及装置
CN106682193A (zh) * 2016-12-29 2017-05-17 北京奇虎科技有限公司 基于缓存的数据持久化存储方法及装置
CN106649857A (zh) * 2016-12-30 2017-05-10 北京恒华伟业科技股份有限公司 一种基于读写分离的数据库操作方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112449697A (zh) * 2019-06-28 2021-03-05 华为技术有限公司 数据库访问方法和装置、计算设备和计算机程序产品

Similar Documents

Publication Publication Date Title
CN107943951B (zh) 一种区块链业务信息的检索方法及系统
US8069224B2 (en) Method, equipment and system for resource acquisition
CN104809201B (zh) 一种数据库同步的方法和装置
CN108737467B (zh) 一种服务器日志查看方法、装置和系统
US6785722B2 (en) Apparatus, methods, and computer program products for transactional support of network management operations
CA3141329A1 (en) Request link tracking method and service request processing method
CN107395659A (zh) 一种业务受理及共识的方法及装置
US10609123B2 (en) Hybrid quorum policies for durable consensus in distributed systems
US8180927B2 (en) Transaction control arrangement for device management system
CN112148678B (zh) 一种文件访问方法、系统、设备以及介质
CN110224899B (zh) 一种tcp应用的调用链获取方法及装置
CN104731943A (zh) 一种服务器和数据处理方法
TW201724825A (zh) 全域資訊獲取、處理及更新、方法、裝置和系統
CN114745295A (zh) 数据采集方法、装置、设备和可读存储介质
TW201724001A (zh) 全域資訊獲取、處理及更新方法、裝置和系統
US20220124159A1 (en) Fast Session Restoration for Latency Sensitive Middleboxes
WO2023109524A1 (zh) 信息泄露监测方法及系统、电子设备
WO2022028144A1 (en) Blockchain management of provisioning failures
CN109857391A (zh) 数据的处理方法及装置、存储介质和电子装置
CN109344046A (zh) 一种数据处理方法、装置、介质及电子设备
CN109815287A (zh) 一种数据库访问系统
CN112069152B (zh) 一种数据库集群升级方法、装置、设备以及存储介质
CN116974874A (zh) 数据库的测试方法、装置、电子设备及可读存储介质
EP3306471B1 (en) Automatic server cluster discovery
CN113010385B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190528