掌桥专利:专业的专利平台
掌桥专利
首页

一种数据库访问系统、方法、电子设备和介质

文献发布时间:2023-06-19 11:35:49


一种数据库访问系统、方法、电子设备和介质

技术领域

本发明实施例涉及大数据技术领域,尤其涉及一种数据库访问系统、方法、电子设备和介质。

背景技术

目前在进行数据库访问时,所采用的通常是包含多节点的集群系统,并且集群系统中每个节点之间网络是连通的,每一个节点可以对集群系统中所有节点的服务资源进行注册,集群系统中的任一节点在接收到数据库访问请求时,可以根据注册信息将访问请求发送给服务资源充足的访问节点中,并通过访问节点向数据库发送访问请求。

但是上述数据库访问系统仅能适应多节点连通的数据库访问,当网络由于故障造成节点隔断无法通信时,会出现数据库访问失败的情况,并且当一个节点出现病毒感染时会快速感染给网络连通的其它节点,从而无法保证数据库访问系统的安全平稳运行。

发明内容

本发明实施例提供了一种数据库访问系统、方法、电子设备和存储介质,以实现在节点无连通的情况下在进行数据库访问时,保证数据库访问系统安全平稳运行。

第一方面,本发明实施例提供了一种数据库访问系统,包括:转发器,与每个转发器分别连接的接收服务器和至少两个数据接入点服务器,其中,每个数据接入点服务器之间网络隔断;

接收服务器,用于接收用户输入的数据库访问请求,并将数据库访问请求发送给转发器;

转发器,用于将所获取的数据库访问请求发送给数据接入点服务器;

数据接入点服务器,用于根据数据库访问请求中所包含的服务名选取指定应用服务,并基于指定应用服务向数据库集群中发送数据库访问请求,以进行数据库集群访问。

第二方面,本发明实施例提供了一种数据库访问方法,应用于数据库访问系统,包括:通过接收服务器接收用户输入的数据库访问请求,并将数据库访问请求发送给转发器;

通过转发器将所获取的数据库访问请求发送给数据接入点服务器;

通过数据接入点服务器根据数据库访问请求中所包含的服务名选取指定应用服务,并基于指定应用服务向数据库集群中发送数据库访问请求,以进行数据库集群访问。

第三方面,本发明实施例还提供了一种电子设备,电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例的方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的方法。

在本发明实施例中,通过在数据库访问系统中部署包含接收服务器、转发器和多个网络隔断的数据接入点服务器,而每一个数据接入点服务器本身作为包含多服务的小集群单元,能够独立实现数据库集群的访问,并且由于网络隔断即使一个接入点服务器被病毒感染也不会影响系统中其它接入点的正常工作,从而在节点无连通的情况下在进行数据库访问时,保证数据库访问系统安全平稳运行。

附图说明

图1是本发明实施例一提供的数据库访问系统的结构示意图;

图2是本发明实施例二提供的数据库访问系统的结构示意图;

图3是本发明实施例三提供的数据库访问方法的流程图;

图4是本发明实施例四提供的一种电子设备的结构框图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1是本发明实施例一提供的一种数据库访问系统的结构示意图,本实施例可以适用于在在多节点非集群的场景下实现对数据库集群的访问。

其中,数据库访问系统包括:转发器12,与每个转发器12分别连接的接收服务器11和至少两个数据接入点服务器13,其中,每个数据接入点服务器13之间网络隔断;接收服务器11,用于接收用户输入的数据库访问请求,并将数据库访问请求发送给转发器;转发器12,用于将所获取的数据库访问请求发送给数据接入点服务器;数据接入点服务器13,用于根据数据库访问请求中所包含的服务名选取指定应用服务,并基于指定应用服务向数据库集群中发送数据库访问请求,以进行数据库集群访问。如图1所示,本实施方式中,以转发器和数据接入点服务器分别包括三个为例进行说明,而在实际应用中只要转发器和数据接入点服务器的数量大于两个都是在本申请的保护范围内。

可选的,接收服务器,用于将数据库访问请求平均发送给转发器;转发器,用于将所获取的数据库访问请求平均发送给数据接入点服务器。

具体的说,本实施方式中接收服务器接收用户输入的数据库访问请求,而数据库访问请求具体是以流量的形式进行传输,为了缓解转发器的转发压力和每个数据接入点服务器的处理压力,接收服务器会将所获取的数据库访问请求向下平均发送给转发器,与此同时转发器也会相应的将自身所获取的数据库访问请求平均发送给与自身所连接的数据接入点服务器。

可选的,数据接入点服务器包括:一个网关服务、两个注册服务和至少两个应用服务;数据接入点服务器还用于,将网关服务和至少两个应用服务的资源信息在两个注册服务中进行同步注册。

可选的,每个应用服务中包括至少两个微服务业务块。

具体的说,本实施方式中由于在每一个数据接入点服务器中可以包括多个应用服务,每个应用服务中包括至少两个微服务业务块,而每个微服务业务块本身可以对应多个功能,因此可以将每个数据接入点服务器本身作为一个单元集群。并且在数据接入点服务器内部通过网关服务实现转发功能,转发器跳转到应用服务只对应一个端口就可以。

需要说明的是,本身作为单元集群的数据接入点服务器,在进行数据库访问请求的处理之前会首先通过注册服务对所包含的多个应用服务的资源信息进行注册。例如,如表1所示的数据接入点服务器1中包含四个应用服务,注册服务1会将网关服务和四个应用服务的资源信息进行注册,同时注册服务1会将注册内容在注册服务2中进行信息同步。由于注册服务1和注册服务2中的注册信息相同,因此即使当一个注册服务出现故障的情况下,也不会影响系统的正常工作,如图1中虚线所示指示的是注册过程。并且当应用服务在后续发生资源信息变更时,注册服务1和注册服务2会对注册信息进行同步更新。

其中,如图1中实线所示指示的是服务请求路线,数据接入点服务器在通过注册服务完成注册之后,当通过网关服务获取到转发器所转发的数据库访问请求时,会通过网关服务器将数据库访问请求传输到注册服务1,注册服务1从数据库访问请求中提取服务名,并根据服务器选取数据库访问请求所需要使用的指定应用服务,并根据注册信息从所包含的四个应用服务中选择资源充足的微服务业务块所对应的指定应用服务,并采用指定应用服务的资源向数库集群中发送数据库访问请求。

可选的,数据接入点服务器,用于基于网关服务对数据库访问请求进行总流量控制和同一用户访问次数控制。

可选的,数据接入点服务器,用于基于令牌桶算法确定单位时间内访问总流量未超过第一预设阈值时,接收数据库访问请求。

可选的,数据接入点服务器,用于基于令牌桶算法确定单位时间内指定用户访问次数未超过第二预设阈值,并且数据库访问请求为指定用户发出时,接收数据库访问请求。

具体的说,为了防止大量的请求使服务器过载,导致服务不可用,或者避免出现网络恶意攻击,本实施方式中数据接入点服务器会基于网关服务对数据库访问请求进行总流量控制和同一用户访问次数控制。例如,针对总流量控制,可以要求每秒钟仅接收600qps流量的访问请求,例如,当数据接入点服务器1中的网关服务基于令牌桶算法确定一秒钟内所有接收到的请求所对应的总流量已经达到600qps,则即使转发器1已经将新的数据库访问请求发送给数据节点服务器1时,网关服务也会直接将所传输过来的数据库访问请求进行拒绝,即不会为其分配应用服务的资源,从而能够有效防止大量的请求进入造成服务器过载。针对同一用户访问次数控制,可以要求每秒钟内指定用户访问次数不能超过10次,例如,当数据接入点服务器1中的网关服务基于令牌桶算法确定一秒钟内IP为001的用户所发送的访问请求已经为10次,则即使转发器1已经将IP为001的用户新的数据库访问请求发送给数据节点服务器1时,网关服务也会直接将所传输过来的IP为001的用户所对应的数据库访问请求进行拒绝,即不会为其分配应用服务的资源,从而能够有效避免恶意用户对系统的攻击。

在本发明实施例中,通过在数据库访问系统中部署包含接收服务器、转发器和多个网络隔断的数据接入点服务器,而每一个数据接入点服务器本身作为包含多服务的小集群单元,能够独立实现数据库集群的访问,并且由于网络隔断及时一个接入点服务器被病毒感染也不会影响系统中其它接入点的正常工作,从而在节点无连通的情况下在进行数据库访问时,保证数据库访问系统安全平稳运行。

实施例二

图2是本发明实施例二提供的一种数据库访问系统的结构示意图,本实施例在实施例一的基础上,进一步增加了应用进程监测服务器13。

其中,应用进程监测服务器13与每个数据接入点服务器连接;应用进程监测服务器,用于获取每个数据接入点服务器中所包含的应用服务的状态信息;根据状态信息确定应用服务异常,但发生异常的应用服务所位于的数据接入点服务器未发生宕机时,指示发生异常的应用服务进行自恢复。

具体的说,本实施方式中通过增加应用进程检测服务器,能够对数据库访问系统中每个数据接入点服务器的应用进程进行实时监控。通过进行实时监控一方面能够获取每个接入点服务器中所包含的应用服务的状态信息,以使系统维护人员能够实时获取到数据库访问系统的当前运行状态;另一方面,在根据状态信息确定应用服务异常,但发生异常的应用服务所位于的数据接入点服务器未发生宕机时,会指示发生异常的应用服务进行自恢复,从而实现快速恢复系统的正常工作。

在本发明实施例中,通过在数据库访问系统中部署包含接收服务器、转发器和多个网络隔断的数据接入点服务器,而每一个数据接入点服务器本身作为包含多服务的小集群单元,能够独立实现数据库集群的访问,并且由于网络隔断及时一个接入点服务器被病毒感染也不会影响系统中其它接入点的正常工作,从而在节点无连通的情况下在进行数据库访问时,保证数据库访问系统安全平稳运行。并且通过应用进程检测服务器对数据库访问系统的应用服务进行进程检测,能够使维护人员实时了解应用服务的运行状态,并在应用服务异常但所位于的数据接入点服务器未发生宕机的情况下,实现应用服务的自恢复,以进一步提高系统的安全性。

实施例三

图3是本发明实施例三提供的一种数据库访问方法的流程图,本实施例可以适用于在在多节点非集群的场景下实现对数据库集群的访问,本发明实施例的方法具体包括如下步骤:

步骤S101,通过接收服务器接收用户输入的数据库访问请求,并将数据库访问请求发送给转发器。

具体的说,接收服务器接收用户输入的数据库访问请求,而数据库访问请求具体是以流量的形式进行传输。本实施方式中与接收服务器所连接的转发器的数量可以至少为两个,为了缓解转发器的转发压力,接收服务器会将所获取的数据库访问请求向下平均发送给转发器。

步骤S102,通过转发器将所获取的数据库访问请求发送给数据接入点服务器。

其中,本实施方式中数据接入点服务器的数量至少为两个,并且每个数据接入点服务器之间网络隔断。每个数据接入点服务器包括:一个网关服务、两个注册服务和至少两个应用服务;通过转发器将所获取的数据库访问请求发送给数据接入点服务器之前,还包括:将网关服务和至少两个应用服务的资源信息在两个注册服务中进行同步注册。

具体的说,本实施方式中由于在每一个数据接入点服务器中可以包括多个应用服务,每个应用服务中包括至少两个微服务业务块,而每个微服务业务块本身可以对应多个功能,因此可以将每个数据接入点服务器本身作为一个单元集群。并且在数据接入点服务器内部通过网关服务实现转发功能,转发器跳转到应用服务只对应一个端口就可以。

需要说明的是,本身作为单元集群的数据接入点服务器,在进行数据库访问请求的处理之前会首先通过注册服务对所包含的多个应用服务的资源信息进行注册。例如,如表1所示的数据接入点服务器1中包含四个应用服务,注册服务1会将网关服务和四个应用服务的资源信息进行注册,同时注册服务1会将注册内容在注册服务2中进行信息同步。由于注册服务1和注册服务2中的注册信息相同,因此即使当一个注册服务出现故障的情况下,也不会影响系统的正常工作,如图1中虚线所示指示的是注册过程。并且当应用服务在后续发生资源信息变更时,注册服务1和注册服务2会对注册信息进行同步更新。

步骤S103,通过数据接入点服务器根据数据库访问请求中所包含的服务名选取指定应用服务,并基于指定应用服务向数据库集群中发送数据库访问请求,以进行数据库集群访问。

其中,如图1中实线所示指示的是服务请求路线,数据接入点服务器在通过注册服务完成注册之后,当通过网关服务获取到转发器所转发的数据库访问请求时,会通过网关服务器将数据库访问请求传输到注册服务1,注册服务1从数据库访问请求中提取服务名,并根据服务器选取数据库访问请求所需要使用的指定应用服务,并根据注册信息从所包含的四个应用服务中选择资源充足的微服务业务块所对应的指定应用服务,并基于指定应用服务向数库集群中发送数据库访问请求。

可选的,通过数据接入点服务器根据数据库访问请求中所包含的服务名选取指定应用服务之前,还包括:数据接入点服务器基于网关服务对数据库访问请求进行总流量控制和同一用户访问次数控制。

可选的,数据接入点服务器基于网关服务对数据库访问请求进行总流量控制和同一用户访问次数控制,包括:基于令牌桶算法确定单位时间内访问总流量未超过第一预设阈值时,接收数据库访问请求;基于令牌桶算法确定单位时间内指定用户访问次数未超过第二预设阈值,并且数据库访问请求为指定用户发出时,接收数据库访问请求。

具体的说,为了防止大量的请求使服务器过载,导致服务不可用,或者避免出现网络恶意攻击,本实施方式中数据接入点服务器会基于网关服务对数据库访问请求进行总流量控制和同一用户访问次数控制。例如,针对总流量控制,可以要求每秒钟仅接收600qps流量的访问请求,例如,当数据接入点服务器1中的网关服务基于令牌桶算法确定一秒钟内所有接收到的请求所对应的总流量已经达到600qps,则即使转发器1已经将新的数据库访问请求发送给数据节点服务器1时,网关服务也会直接将所传输过来的数据库访问请求进行拒绝,即不会为其分配应用服务的资源,从而能够有效防止大量的请求使服务器过载。针对同一用户访问次数控制,可以要求每秒钟内指定用户访问次数不能超过10次,例如,当数据接入点服务器1中的网关服务基于令牌桶算法确定一秒钟内IP为001的用户所发送的访问请求已经为10次,则即使转发器1已经将IP为001的用户新的数据库访问请求发送给数据节点服务器1时,网关服务也会直接将所传输过来的IP为001的用户所对应的数据库访问请求进行拒绝,即不会为其分配应用服务的资源,从而能够有效避免恶意用户对系统的攻击。

可选的,系统还包括应用进程检测服务器,通过应用进程监测服务器获取每个接入点服务器中所包含的应用服务的状态信息;根据状态信息确定应用服务异常,但发生异常的应用服务所位于的接入点服务器未发生宕机时,指示发生异常的应用服务进行自恢复。

其中,本实施方式中通过应用进程检测服务器能够对数据库访问系统中每个数据接入点服务器的应用进程进行实时监控。通过进行实时监控一方面能够获取每个接入点服务器中所包含的应用服务的状态信息,以使维护人员能够实时获取到数据库访问系统的当前运行状态;另一方面,在根据状态信息确定应用服务异常,但发生异常的应用服务所位于的数据接入点服务器未发生宕机时,会指示发生异常的应用服务进行自恢复,从而实现快速恢复系统的正常工作。

在本发明实施例中,在数据库访问系统中部署包含接收服务器、转发器和多个网络隔断的数据接入点服务器,而每一个数据接入点服务器本身作为包含多服务的小集群单元,能够独立实现数据库集群的访问,并且由于网络隔断即使一个接入点服务器被病毒感染也不会影响系统中其它接入点的正常工作,从而在节点无连通的情况下在进行数据库访问时,保证数据库访问系统安全平稳运行。

实施例四

图4是本发明实施例提供的一种电子设备的结构示意图。图4示出了适用于用来实现本发明实施方式的示例性电子设备412的框图。图4显示的电子设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,电子设备412以通用计算设备的形式出现。电子设备412的组件可以包括但不限于:一个或者多个处理器416,存储器428,连接不同系统组件(包括存储器428和处理器416)的总线418.

总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

电子设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器428用于存储指令。存储器428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)430和/或高速缓存存储器432。电子设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储器428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储器428中,这样的程序模块442包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明所描述的实施例中的功能和/或方法。

电子设备412也可以与一个或多个外部设备414(例如键盘、指向设备、显示器424等)通信,还可与一个或者多个使得用户能与该电子设备412交互的设备通信,和/或与使得该电子设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口422进行。并且,电子设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与电子设备412的其它模块通信。应当明白,尽管图4中未示出,可以结合电子设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理器416通过运行存储在存储器428中的指令,从而执行各种功能应用以及数据处理,例如执行以下操作:

通过接收服务器接收用户输入的数据库访问请求,并将数据库访问请求发送给转发器;通过转发器将所获取的数据库访问请求发送给数据接入点服务器;通过数据接入点服务器根据数据库访问请求中所包含的服务名选取指定应用服务,并基于指定应用服务向数据库集群中发送数据库访问请求,以进行数据库集群访问。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行数据库访问方法,该方法包括:

通过接收服务器接收用户输入的数据库访问请求,并将数据库访问请求发送给转发器;通过转发器将所获取的数据库访问请求发送给数据接入点服务器;通过数据接入点服务器根据数据库访问请求中所包含的服务名选取指定应用服务,并基于指定应用服务向数据库集群中发送数据库访问请求,以进行数据库集群访问。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据库访问方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的数据库访问方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 一种数据库访问系统、方法、电子设备和介质
  • 数据库访问控制方法及装置、电子设备、存储介质
技术分类

06120112986242