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

数据访问方法、装置、设备和介质

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


数据访问方法、装置、设备和介质

技术领域

本公开涉及信息安全技术领域,尤其涉及一种数据访问方法、装置、电子设备和计算机可读存储介质。

背景技术

Java Servlet为一种小服务程序或服务器连接器,是运行在Web服务器或应用服务器上的程序,它可以读取客户端(浏览器)送来的数据,处理数据并生成结果,并最终将生成的结果返回给客户端(浏览器)。

基于Servlet技术的会话转发器可以应用于银行等金融服务行业的会话请求等数据访问服务。其中,传统会话请求是由客户端经Web服务器转发至总行应用服务器;然而,通过会话转发技术,客户端发来的会话请求可方便地在到达总应用服务器之后,被继续转发至分服务器,并经分服务器处理之后返回至总应用服务器做进一步处理,最后再返回相应报文给客户端,以供客户实现数据访问。借此,使得总应用服务器和分服务器可以基于共享的同一套web服务器的整体架构,让客户在访问同一个域名的情况下,方便地同时使用总应用服务器提供的主要服务功能与分服务器提供的特色服务功能,简化了网络拓扑,保证了总、分服务器功能的低耦合性,便于系统维护。

发明内容

(一)要解决的技术问题

为解决现有技术中会话转发器所存在的技术问题至少之一,本公开提供了一种数据访问方法、装置、电子设备和计算机可读存储介质。

(二)技术方案

本公开的一个方面提供了一种数据访问方法,其中,包括:响应于用户的数据访问请求,确定待访问服务器的服务运行状态;基于服务运行状态,判断待访问服务器中目标服务交易的交易运行状态;以及根据交易运行状态,访问目标服务交易以获取数据访问请求的交易反馈数据;其中,在基于服务运行状态,判断待访问服务器中目标服务交易的交易运行状态中,包括:当服务运行状态为服务可用时,调取目标服务交易的访问错误次数,用于确定目标服务交易的交易运行状态。

根据本公开的实施例,在响应于用户的数据访问请求,确定待访问服务器的服务运行状态中,包括:解析数据访问请求以生成服务请求数据;根据服务请求数据,确定待访问服务器;检查待访问服务器的服务状态标识以确定服务运行状态。

根据本公开的实施例,在解析数据访问请求以生成服务请求数据之前,还包括:向待访问服务器周期性发送心跳检测报文,确定待访问服务器的访问失败次数;根据访问失败次数与预设失败次数之间的关系,确定待访问服务器的服务状态标识。

根据本公开的实施例,在服务请求数据包括交易路由数据,在基于服务运行状态,判断待访问服务器中目标服务交易的交易运行状态之前,还包括:当服务运行状态为服务不可用时,拦截交易路由数据向待访问服务器的转发操作。

根据本公开的实施例,在当服务运行状态为服务可用时,调取目标服务交易的访问错误次数,用于确定目标服务交易的交易运行状之后,还包括:当交易运行状态为交易不可用时,调取目标服务交易的访问时间记录;根据访问时间记录和预设熔断周期之间的关系,对当前的交易运行状态进行更新。

根据本公开的实施例,在根据交易运行状态,访问目标服务交易以获取数据访问请求的交易反馈数据中,包括:当交易运行状态为交易可用时,向待访问服务器转发交易路由数据以调用目标服务交易,使得待访问服务器生成交易反馈数据。

根据本公开的实施例,在检查待访问服务器的服务状态标识以确定服务运行状态之前,还包括:确定待访问服务器的当前交易并发数;根据当前交易并发数与预设上限并发数之间的关系,拒绝服务请求数据。

根据本公开的实施例,在根据交易运行状态,访问目标服务交易以获取数据访问请求的交易反馈数据中,还包括:对交易反馈数据中的静态资源数据进行压缩,以获取压缩资源数据;根据压缩资源数据与预设静态资源上限之间的大小关系,确定交易反馈数据的资源访问次数;以及根据资源访问次数与预设超限访问次数之间的关系,实现对交易反馈数据的监控。

本公开的另一个方面提供了一种数据访问装置,其中,包括服务运行确定模块、交易运行判断模块和交易访问获取模块。服务运行确定模块用于响应于用户的数据访问请求,确定待访问服务器的服务运行状态;交易运行判断模块用于基于服务运行状态,判断待访问服务器中目标服务交易的交易运行状态;以及交易访问获取模块用于根据交易运行状态,访问目标服务交易以获取数据访问请求的交易反馈数据;其中,交易运行判断模块包括访问次数调取单元,访问次数调取单元用于当服务运行状态为服务可用时,调取目标服务交易的访问错误次数,用于确定目标服务交易的交易运行状态。

本公开的另一个方面提供了一种服务器,其中,包括上述的数据访问装置,以实现上述的方法。

本公开的另一个方面提供了一种电子设备,其中,包括一个或多个处理器和存储器;存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的方法。

本公开的另一个方面提供了一种计算机可读存储介质,存储有计算机可执行指令,其中,指令在被执行时用于实现上述的方法。

(三)有益效果

本公开提供了一种数据访问方法,其中包括:响应于用户的数据访问请求,确定待访问服务器的服务运行状态;基于服务运行状态,判断待访问服务器中目标服务交易的交易运行状态;以及根据交易运行状态,访问目标服务交易以获取数据访问请求的交易反馈数据;其中,在基于服务运行状态,判断待访问服务器中目标服务交易的交易运行状态中,包括:当服务运行状态为服务可用时,调取目标服务交易的访问错误次数,用于确定目标服务交易的交易运行状态。因此,实现了对待访问服务器的服务运行状态和交易运行状态的实时监测,以动态调整会话转发运行机制,增强对网络问题的鲁棒性,最大限度地确保会话转发功能的正常运作。此外,本公开还提供了一种数据访问装置、电子设备和计算机可读存储介质。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开实施例的可以应用数据访问方法的示例性系统架构;

图2A示意性示出了根据本公开实施例的数据访问方法的流程图;

图2B示意性示出了根据本公开实施例的数据访问方法的另一流程图;

图3A示意性示出了根据本公开实施例的数据访问方法的另一流程图;

图3B示意性示出了根据本公开实施例的数据访问方法的另一流程图;

图4A示意性示出了根据本公开实施例的应用于上述数据访问方法的一应用场景图;

图4B示意性示出了根据本公开实施例的应用于上述数据访问方法的另一应用场景图;

图5示意性示出了根据本公开实施例的数据访问方法的另一流程图;

图6示意性示出了根据本公开实施例的数据访问方法的另一流程图;

图7示意性示出了根据本公开实施例的数据访问方法的另一流程图;

图8A示意性示出了根据本公开实施例的数据访问方法的另一流程图;

图8B示意性示出了根据本公开实施例的应用于上述图8A所示数据访问方法的一流程图;

图9A示意性示出了根据本公开实施例的数据访问方法的另一流程图;

图9B示意性示出了根据本公开实施例的应用于上述图9A所示数据访问方法的一流程图;

图10A示意性示出了根据本公开实施例的数据访问装置的框图;

图10B示意性示出了根据本公开实施例的交易运行判断模块的框图;以及

图11示意性示出了根据本公开实施例的电子设备的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。

现有的会话转发器主要实现的是会话转发的功能,保证客户的请求可以灵活、正确地传送给总服务器和对应其的多个分服务器,如应用于银行网银功能的实现,需将访问请求数据经总行服务器转发至分行服务器,以获取分行服务器的特色功能。一般现有会话转发器的网络拓扑包括通过客户的客户终端设备访问web服务器,将客户(即用户)的会话请求发送至总服务器,由总服务器访问分服务器来获取实际的页面资源和静态资源,同时总服务器初始化分服务器IP\端口和路由,并将会话请求产生的相关数据存储到数据库中。但是,现有转发器无法提供除转发会话之外的其它功能,在遇到网络问题时可能导致会话请求失效从而影响客户体验。

具体地,由于现有的会话转发器功能较为单一,在面对网络问题时鲁棒性较低。例如,当分服务器瘫痪或者分服务器的特色功能的静态资源过大而功能使用频率较高的情况下,可能出现严重的网络堵塞。此时由于缺少具体的应对机制,现有的转发器不但无法向客户提供有效服务,还可能大量占用总服务器和分服务器资源,引发严重系统问题。

其中,在本公开的实施例中,总行服务器可以理解为上述总服务器,分行服务器可以理解为上述的分服务器,总服务器和分服务器一般可以为应用服务器。

为解决现有技术中会话转发器所存在的上述技术问题至少之一,本公开提供了一种数据访问方法、装置、电子设备和计算机可读存储介质。

需要说明的是,本公开所提供的数据访问方法和装置可以应用于信息安全技术领域,也可以应用于大数据技术领域和金融技术领域,也可以应用于上述技术领域之外的任意技术领域,本公开的数据访问方法和装置的应用领域具体不作限定。

图1示意性示出了根据本公开实施例的可以应用数据访问方法的示例性系统架构。

需要注意的是,图1所示仅为可以应用本公开实施例的应用示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例的数据访问方法的不可以用于其他设备、系统、环境或场景。

如图1所示,根据该实施例的系统架构100可以包括数据请求系统110,以及与该数据请求系统110建立数据通信的服务器系统120,其中服务器系统中包括与数据请求系统110建立数据访问通道的服务器M、121、122、123、124以及125,其中服务器M为主访问服务器(即总服务器),可以获取来自用户(如客户或服务器系统的运维人员)的指令信息。服务器121、122、123、124以及125为副访问服务器(即分服务器),数据请求系统110与服务器M、121、122、123、124以及125可以基于一个内部云端网络服务器C实现。或者,服务器M、121、122、123、124以及125中的主服务器M为一网络服务器时,即与其他终端设备111、112、113、114以及115的内网相对,服务器系统120的主服务器M可以位于一外网中。此时,云端网络服务器C此处用以其他终端设备111、112、113、114以及115之间提供通信链路的介质。服务器系统120与多个终端设备之间的数据访问通道具体可以通过各种通信连接类型实现,例如有线、无线通信链路或者光纤电缆等等。其中,云端网络服务器C可以为一web服务器,以向用户提供图形显示和输入界面。

需要说明的是,根据本公开实施例,服务器121、122、123、124以及125可以实现无密互联,应用于能够保证信息安全的大型数据访问服务。

用户可以使用终端设备111、112、113、114以及115与服务器系统120交互,以接收或发送消息等,以实现数据访问或处理,具体涉及对服务器系统中主服务器M中的数据库的访问。例如,终端设备111向终端设备112发送业务数据等访问请求内容,服务器系统120在接收到终端设备111的数据请求后,会对相应的业务数据执行转发处理,并在特定的需要下对业务数据进行加密,以使得最终到达终端设备111的业务数据得到安全保障。终端设备111、112、113、114以及115上可以安装有各种通讯客户端应用,例如管理类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。

终端设备111、112、113、114以及115可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机以及各类应用服务器等等。

服务器系统120可以包括提供各种服务的各类型防火墙,例如对用户利用终端设备111、112、113、114以及115所浏览的网站提供支持的过滤型防火墙(仅为示例)。过滤型防火墙可以对接收到的用户请求等数据进行分析等处理,并基于数据源头的地址以及协议类型等标志特征进行分析,确定是否可以通过,从而将不安全因素过滤或阻挡。

需要说明的是,本公开实施例所提供的数据访问方法一般可以由服务器系统120执行。相应地,本公开实施例所提供的数据访问装置一般可以设置于服务器系统120中。本公开实施例所提供的数据访问方法也可以由不同于服务器系统120且能够与终端设备111、112、113、114、115和/或服务器系统120通信的其他服务器系统执行。相应地,本公开实施例所提供的数据访问装置也可以设置于不同于服务器系统120且能够与终端设备111、112、113、114、115和/或服务器系统120通信的其他服务器系统中。

应该理解,图1中的终端设备和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、服务器。

以下结合图2A-图11,对本公开提供的数据访问方法、数据访问装置、电子设备及计算机可读存储介质作进一步的详细说明。

图2A示意性示出了根据本公开实施例的数据访问方法的流程图。

如图2A和图2B所示,本公开的一个方面提供了一种数据访问方法,其中,包括步骤S201-203。

在步骤S201中,响应于用户的数据访问请求,确定待访问服务器的服务运行状态;

在步骤S202中,基于服务运行状态,判断待访问服务器中目标服务交易的交易运行状态;以及

在步骤S203中,根据交易运行状态,访问目标服务交易以获取数据访问请求的交易反馈数据;

在本公开实施例的数据访问方法应用于总服务器(如图1所示主服务器M),以使得用户能够通过总服务器发起向分服务器(如图1所示服务器121、122、123、124以及125中至少之一)的数据访问,也即本公开实施例中的待访问服务器可以理解为分服务器。其中,总服务器可以用于向用户提供基础数据访问服务,例如银行总服务器一般所提供的账户注册和个人信息修改等基础业务服务内容;分服务器则可以用于向用户提供本地特色的业务数据访问服务,例如银行本地服务器一般可以提供的本地基金、股票以及本地特色理财等特色业务服务内容,具体地如澳门基金业务服务访问、亚洲股票信息业务服务访问等。其中,分服务器可以理解为本公开实施例中用户借助总服务器所访问的待访问服务器,即目标访问服务器。

需要说明的是,分服务器的业务功能也可以提供主服务器的基础业务服务内容,同时分服务器在某些特殊情况下(如运维信息变更等)可以作为总服务器,向用户提供向其他分服务器或原总服务器的业务访问功能,具体在本公开的实施例中均不作具体限定。

数据访问请求为用户为获取分服务器的特色应用业务服务通过终端设备(如图1所示终端设备111、112、113、114或115)向总服务器发送的业务请求数据,以使得总服务器在对该业务请求数据进行处理后,可以对应获取相应目标访问服务器的地址(如IP)、端口以及相应特色业务功能的交易栏目,并据此向目标访问服务器执行调取或控制操作,实现最终对目标服务交易的数据访问。其中,用户通过终端设备可以借助总服务器同时访问至少一个分服务器。

在对目标访问服务器执行调取或控制操作之前,需要确认目标访问服务器的当前服务运行状态。服务运行状态用于反应每个服务器的当前工作状态,主要分为服务可用和服务不可用两种类型。在服务可用状态下,服务器可以用于正常提供业务访问的功能;在服务不可用状态下,如服务器连接中断等,服务器的正常业务访问功能暂停或终止。其中,每个服务器中为提供不同的业务访问功能,会同时存在多个交易栏目,每个交易栏目可以用于提供区别于总服务器所提供的基础业务服务的特色业务服务,体现于每个交易栏目中所具有的不同于其他交易栏目的业务交易。

交易运行状态用于反应相应该特色业务服务的业务交易的当前工作状态,主要分为交易可用和交易不可用两种类型。在交易可用状态下,该对应服务器的业务交易可以用于提供正常业务交易服务;在交易不可用状态下,如交易代码异常、系统维护以及交易位置异常等,该业务交易的业务交易服务处于暂停或终止状态。其中,一般在服务器的服务可用状态下,才可以进一步判断其每个交易栏目的业务交易的交易运行状态。其中,用户通过终端设备可以借助总服务器同时访问至少一个分服务器中的至少一个业务交易。

目标服务交易为上述多个交易栏目中对应于数据访问请求的待访问业务交易。也即,通过对应用户的数据访问请求,可以对应获取该目标服务交易所在服务器的交易栏目中的业务交易。因此,目标服务交易可以理解为数据访问请求对应的目标业务交易。在目标服务交易被执行访问时,待访问服务器会产生相应的反馈数据,该反馈数据的集合数据包等数据文件可以作为交易反馈数据被总服务器获取。交易反馈数据同时会被总服务器对应的数据库服务器执行存储,并由总服务器进行转发处理之后交由用户终端设备显示。

图2B示意性示出了根据本公开实施例的数据访问方法的另一流程图;图4A示意性示出了根据本公开实施例的应用于上述数据访问方法的一应用场景图。

如图2B所示,在步骤S202基于服务运行状态,判断待访问服务器中目标服务交易的交易运行状态中,包括步骤S210。

在步骤S210中,当服务运行状态为服务可用时,调取目标服务交易的访问错误次数,用于确定目标服务交易的交易运行状态。

如图2B和图4A所示步骤S405-S407和步骤S4010,对于待访问的目标访问服务器的交易运行状态而言,其对应的目标服务交易被访问时在交易不可用状态下会对应产生当前次的访问错误,在预设的时间内,若对该目标服务交易继续进行数据访问,则会产生其他次的访问错误,从而累计形成该目标服务交易在预设时间内的访问错误次数。其中,由于交易栏目的设置特殊性,在该预设时间内有可能还存在交易可用的状态。因此,为实现正常的数据访问方法,需要对可用状态下的目标访问服务器中的目标服务交易的交易运行状态进行确认。

在本公开实施例中,最新一次的当前数据访问过程中,在确认目标访问服务器的服务可用状态后,继续对当前数据访问过程中对应的目标服务交易的交易运行状态进行判断,如步骤S404-S405。若判断该目标服务交易的访问出现错误,则记录为1次访问错误,进一步可以获取该当前时刻及其之前预设时间段内的累计访问错误次数,在该访问错误次数达到预设访问错误次数时,则判断该目标服务交易的交易运行状态为交易不可用,如步骤S406-S4010;反之,则判断该目标服务交易的交易运行状态为交易可用,如步骤S406-S407。其中,在目标服务交易的交易运行状态为交易可用时,转发数据访问请求,并获取目标访问服务器的交易反馈数据。借以,可以实现对目标服务交易的交易熔断机制,以实现会话转发器对应用服务器交易状态的动态检测,避免个别分服务器的交易功能的频繁异常调用造成的会话转发功能瘫痪。

需要进一步说明的是,上述步骤S201-203以及步骤S210均可以由总服务器实现,具体可以由内置于总服务器的会话转发模块(即会话转发器)实现。此外,上述的用户也可以为对总服务器和分服务器进行维护或开发的运维人员等技术人员。

因此,在本公开实施例中,通过在总服务器的会话转发器引入实时监听目标访问服务器及其目标服务交易的运行状态,可以用于动态调整会话转发器的运行机制,确保不会发生严重网络拥堵的状况,并且能够及时控制网络负载情况;同时,能够通过交易反馈数据及时通知监控平台等以提醒相关运维人员等技术人员进行及时处理;因此,该数据防问方法能够进一步增强了会话转发器自身的鲁棒性,在未及人工干预前,最大限度地确保会话转发器的功能正常运作。

图3A示意性示出了根据本公开实施例的数据访问方法的另一流程图。

如图3A所示,根据本公开的实施例,在步骤S201响应于用户的数据访问请求,确定待访问服务器的服务运行状态中,包括步骤S301-S303。

在步骤S301中,解析数据访问请求以生成服务请求数据;

在步骤S302中,根据服务请求数据,确定待访问服务器;

在步骤S303中,检查待访问服务器的服务状态标识以确定服务运行状态。

如图3A和图4A所示,在步骤S401中,用户通过终端设备访问web服务器(如设备浏览器访问网页)生成数据访问请求并发送至总服务器;在步骤S402中,数据访问请求在被总服务器进行解析之后,可以生成包括目标服务交易所在的目标访问服务器的IP信息、端口信息等访问信息的服务请求数据,其中,IP信息用于指定目标访问服务器,端口信息则用于指定目标访问服务器的访问端口。

借助该服务请求数据可以直接确定待访问服务器的IP和端口,从而实现对目标访问服务器的确认。在步骤S403中,对目标访问服务器的IP信息和端口信息进行检查,以确定其在对应预设时间段内的有效状态,同时获取相应的服务状态标识。其中,每个待访问服务器的服务运行状态可以通过服务状态标识进行标记,服务状态标识为一标识每个服务器(包括总服务器)的当前运行状态的数据,可以用诸如1或0的标识代码进行标识,例如服务可用状态标识为1,服务不可用状态标识为0。因此,通过获取该服务器对应的服务状态标识,即可以判断其相应的服务运行状态。

总服务器的会话转发器会将不可访问的目标访问服务器IP、端口信息记录并存储到数据库服务器里。如图4A所示步骤S404中,在当客户想要访问某个目标分服务器时,会话转发器又会通过存储的分行服务器IP信息和端口信息,从数据库服务器中读取待访问的服务器是否服务可用,服务不可用的状态下则直接拦截下访问请求不再往分服务器转发,而是直接给客户展示错误页面进行反馈显示,如步骤S404-S4010。如果分服务器处于可访问的服务可用状态,则继续流程,如步骤S404-S405。

借此,使得本公开实施例的数据访问方法可以在仅具有服务可用状态的目标访问服务器上部署的交易可用的特色交易才能成功给予用户请求响应,而当目标访问服务器为服务不可用时,如分服务器中的端口访问等频繁报错的情况下,都会触发交易熔断机制,使得用户的访问请求被拦截下,并不再向目标访问服务器转发,从而缓解目标访问服务器资源调整,为尽快恢复目标访问服务器及其交易的正常,提供一个有力缓冲,减轻服务交易的运转压力,提高运维效率。

图3B示意性示出了根据本公开实施例的数据访问方法的另一流程图;图4B示意性示出了根据本公开实施例的应用于上述数据访问方法的另一应用场景图。

如图3B所示,根据本公开的实施例,在步骤S301解析数据访问请求以生成服务请求数据之前,还包括步骤S304-S305。

在步骤S304中,向待访问服务器周期性发送心跳检测报文,确定待访问服务器的访问失败次数;

在步骤S305中,根据访问失败次数与预设失败次数之间的关系,确定待访问服务器的服务状态标识。

如图4B所示,部署在总服务器的会话转发器,可以向作为待访问服务器的分服务器发送心跳检测报文,心跳检测报文为用于探测分服务器连通性检测数据。在步骤S411中,总服务器的会话转发器可以从数据库服务器中获取待检测分服务器的IP信息和端口信息等服务器的身份信息,之后向分行服务器发送探测报文,如步骤S411-S412。其中,该总服务器可以向与之具有访问连通关系的所有分服务器同时发送该心跳检测报文。

在步骤S412-S413中,分服务器被动接受总服务器发来的心跳检测报文,该心跳检测报文无实际意义仅用于测试分服务器的可连通性,该可连通性可以通过心跳检测报文对分服务器及其端口的有效状态的检查实现,如步骤S413-S414。

在步骤S414中,检查分服务器的端口是否可用,以用于判断该分服务器是否可以访问,如果可以访问则不继续处理,等待固定的预设时间后,执行下一次心跳检测;如果不可以防问则在数据库服务器记录该端口不可用的分服务器的IP信息和端口信息,以及该分服务器的当前累计不可访问次数,即如步骤S415所示获取访问失败次数。

进一步地,在步骤S416中,判断当前检测的分服务器的访问失败次数是否超过阈值(该阈值为依据具体实际场景的预设次数数值,即预设失败次数),如果不超过则不继续处理,等待固定的预设时间后,进行下一次心跳检测即可;如果超过阈值,则更新数据库服务器中当前分服务器的服务状态标识,将其标识为服务不可用,并记录当前时间点,如步骤S417。

因此,通过对应用服务器心跳检测配合上述分服务器的交易熔断机制配合使用,以进一步实现会话转发器根据应用服务器运行状态动态开启、关闭分服务器业务服务交易的功能访问渠道,从而更进一步避免个别分服务器业务交易功能的频繁异常调用所导致的转发器瘫痪。

图5示意性示出了根据本公开实施例的数据访问方法的另一流程图;

如图5所示,根据本公开的实施例,服务请求数据包括交易路由数据,在步骤S202基于服务运行状态,判断待访问服务器中目标服务交易的交易运行状态中,还包括步骤S501。

在步骤S501中,当服务运行状态为服务不可用时,拦截交易路由数据向待访问服务器的转发操作。

如图4A所示,在步骤S404-S4010,在检测的目标访问服务器的端口信息反映的端口有效状态为无效时,则会话转发器会获取该目标访问服务器的服务状态标识为0,即服务运行状态为服务不可用。响应于该服务不可用的获取,会话转发器会通过会话转发的拦截功能,对该数据访问请求的服务请求数据进行拦截。其中,服务请求数据还包括交易路由数据,交易路由数据为用于指定该目标访问服务器中的目标服务交易所在的交易栏目地址的编码数据,以便于分服务器对该目标服务交易进行调用执行,其中交易路由数据可以体现为一交易编号。

因此,在服务不可用状态下,会话转发器可以实现对该交易路由数据的直接拦截,进一步缓解分服务器配置资源,尽快恢复分服务器及其交易的正常运作。

图6示意性示出了根据本公开实施例的数据访问方法的另一流程图。

如图6所示,根据本公开的实施例,在步骤S210当服务运行状态为服务可用时,调取目标服务交易的访问错误次数,用于确定目标服务交易的交易运行状之后,还包括步骤S601-S602。

在步骤S601中,当交易运行状态为交易不可用时,调取目标服务交易的访问时间记录;

在步骤S602中,根据访问时间记录和预设熔断周期之间的关系,对当前的交易运行状态进行更新。

如图4A所示,在分服务器的服务状态为服务可用时,继续结合交易路由数据所体现的目标服务交易的交易编号,从总服务器的内存(如前述数据库服务器)中获取待访问分服务器上的待访问目标服务交易的交易运行状态是否正常,可以利用分服务器的交易有效状态进行反馈,如步骤S405。

为了实现分服务器的交易运行状态的反馈,会话转发器可以基于总行服务器的数据库服务器建立并保有一个常驻数据存储结构,其内部记录分服务器上各个业务服务交易的累计访问报错次数和对应交易可用状态。其中,在该业务服务交易处于交易不可用状态下时,同时记录当前交易的交易访问错误次数以及交易不可用的时间。其中,在步骤S406中,在当前交易访问过程中所具有的累计交易访问错误次数如果超过某个阈值(即预设访问错误次数,可以基于实际场景进行预设),则会确认该业务服务交易的交易运行状态为交易不可用,而该当前交易不可用的时间记录,可以用于判断上次交易不可用到当前交易时间是否已超过预设熔断周期(即禁止访问该业务服务交易的预设时长),如果超过预设熔断周期,则会话转发器会判断值得尝试性地访问一下该业务服务交易,验证该业务服务交易的交易功能是否已恢复,并同时对该业务服务交易的交易运行状态进行更新确认。

借此,可以进一步完善交易熔断机制的具体实现方法,以进一步避免会话转发器的交易访问瘫痪。

图7示意性示出了根据本公开实施例的数据访问方法的另一流程图。

如图7所示,根据本公开的实施例,在步骤S203根据交易运行状态,访问目标服务交易以获取数据访问请求的交易反馈数据中,包括步骤S701。

在步骤S701中,当交易运行状态为交易可用时,向待访问服务器转发交易路由数据以调用目标服务交易,使得待访问服务器生成交易反馈数据。

如图4A所示,在步骤S406-S408中,若目标服务交易的交易访问次数未达到预设访问错误次数,则该目标服务交易的交易运行状态为交易可用,则需要将数据访问请求的交易路由数据进一步转发给分服务器,以使用分服务器依据交易路由数据实现对目标服务交易的交易访问。

其中,在分服务器的目标服务交易的交易成功执行访问后,总服务器可以清空前述常驻数据存储结构以及该分服务器上该目标服务交易的累计访问报错次数,同时给用户进行交易访问执行结果的展示。相反,如果分服务器的目标服务交易的访问执行失败,那么会进一步累加该目标服务交易的累计访问报错次数,同时给用户展示报错页面。

图8A示意性示出了根据本公开实施例的数据访问方法的另一流程图;图8B示意性示出了根据本公开实施例的应用于上述图8A所示数据访问方法的一流程图。

如图8A所示,根据本公开的实施例,在步骤S303检查待访问服务器的服务状态标识以确定服务运行状态之前,还包括步骤S801-S802。

在步骤S801中,确定待访问服务器的当前交易并发数;

在步骤S802中,根据当前交易并发数与预设上限并发数之间的关系,拒绝服务请求数据。

如图8B所示,对于同一服务器而言,可以同时存在多个业务服务交易,如交易1-交易n。其中,每个业务服务交易都对应于交易栏目进行设置,使得每个业务服务交易均具备相应的交易编号(或称交易地址),以便于交易的指定访问。具体地,在步骤S810中,发起交易请求,借助对交易请求数据的解析以获取相应交易编号,在此不作赘述。

随着对业务访问需求的快速增大,每个服务器可以同时提供多个业务服务交易的并行访问,同时存在的并行访问数量即交易并发数,每个服务器因资源配置能力等原因使得其所能达到的交易并发数存在上限,即上限并发数。其中,为进一步提高服务器的运行速度,可以设定一预设上限并发数来对该服务器同时所能进行的交易访问数量进行限制,该预设上限并发数小于等于该服务器所能达到的上限并发数。如图8B所示,其中步骤S811-S813为针对分服务器的交易1的第一交易访问,步骤S821-S823则为相对第一交易访问的针对同一分服务器的交易2的第二交易访问,第二交易访问与第一交易访问互为并行交易访问,同时实现对分服务器的不同交易访问。

因此,通过预设上限并发数可以实现对交易访问的限流,即交易限流机制。该交易限流机制可以针对正常使用的业务服务交易,动态改变允许同一服务器能够同时访问的最大并发数,避免网络资源被过度挤占。

具体地,在每一次调用分服务器交易访问功能的过程中,都会为该交易的调用次数加1,如针对交易1的访问对应分服务器的并发数+1,针对交易2的访问则对应分服务器的并发数在上述并发数基础上进一步+1…具体如步骤S811和S821。因此,当有新的业务服务交易的访问调用请求送到会话转发器时,会话转发器都可以在前次调用并发数的基础上+1,以获取当前的实时调用并发数次数(即当前交易并发数),判断当前交易并发数是否超过允许调用的最大并发数(即预设上限并发数),如果超过预设上限并发数则拒绝新的交易访问请求,直至旧的交易访问已结束,总的当前交易并发数-1,以降到预设上限并发数以下,如步骤S813和S823。最终,交易并发的访问均可以实现接收反馈,如步骤S820。

因此,借助该交易限流功能,会话转发器在总行服务器的对应数据库服务器中保有一个常驻数据结构,为每一个分服务器交易访问过程记录一个交易并发数。在每个交易访问的执行前会对交易并发数+1,在交易访问的执行结束后对交易并发数-1,从而可以知道某个时刻某指定交易的当前并发数,并且可以通过预设上限并发数,决定某个时刻是否允许新的交易访问继续执行此交易,从而实现交易限流的功能。

借此,可以通过动态调整预设上限并发数,以在网络环境较差的时候,主动地降低某些业务服务交易的访问流量,避免对网络造成过较大的负担。

图9A示意性示出了根据本公开实施例的数据访问方法的另一流程图;图9B示意性示出了根据本公开实施例的应用于上述图9A所示数据访问方法的一流程图。

如图9A所示,根据本公开的实施例,在步骤S203根据交易运行状态,访问目标服务交易以获取数据访问请求的交易反馈数据中,还包括步骤S901-S902。

在步骤S901中,对交易反馈数据中的静态资源数据进行压缩,以获取压缩资源数据;

在步骤S902中,根据压缩资源数据与预设静态资源上限之间的大小关系,确定交易反馈数据的资源访问次数;以及

在步骤S903中,根据资源访问次数与预设超限访问次数之间的关系,实现对交易反馈数据的监控。

静态资源数据作为交易反馈数据的数据形式之一,主要包括图片数据、视频数据等内存较大的静态文件数据。

如图9B所示,在步骤S910中,通过对发起的数据访问请求进行解析,会话转发器可以对解析数据进行转发,使得分服务器依据解析数据生成静态资源数据,即步骤S911。在步骤S912中,通过会话转发器设置的静态资源容量监控功能可以对该获取的静态资源数据进行初步压缩,以减小其内存大小生成压缩资源包,在传输静态资源数据时压缩其大小,可以尽可能降低网络负载。在步骤S913中,对该压缩资源包的内存大小与预设静态资源上限作对比,在该压缩资源包的内存小于该静态资源上限时,对其进行用户的直接反馈,如步骤S920。在步骤S914中,在该压缩资源包的内存超过该静态资源上限时,则对该静态资源数据对应的超过静态资源上限的当前次进行累加,形成累计的资源访问次数。在步骤S915中,对该资源访问次数和预设超限访问次数进行对比,并在资源访问次数超过预设超限访问次数时,确认该静态资源数据无法进行有效转发,实时提醒监控平台存在过大的静态资源被频繁调用,并将其对应的名称、url和调用频率发送给监控平台,以提醒相关运维人员等技术人员提前调整该资源大小,从而提供网络拥塞的预警机制,缓解网络数据拥堵;否则,直接对其进行推送反馈,如步骤S920。

因此,可以增加对于转发内容的文件大小的监控机制,会话转发器可以读取到转发的静态资源大小,将超过大小阈值的静态资源数据记录到数据库服务器,并且对于这些超大静态资源数据进行访问次数统计,在访问次数超过一定阈值(即预设超限访问次数),向运维人员发送人工干预提醒或执行预设干预步骤,从而可以一定程度上预判网络传输压力。

因此,本公开实施例能够实现一基于多功能会话转发器的具备自适应网络性能调整机制的数据访问方法,使得其至少具有如下技术效果:

首先,针对在网络堵塞的场景下,受到网络堵塞波及的分服务器功能会持续报错的情况,会话转发器可以通过心跳检测机制将异常行为的分服务器置为服务不可用以禁止访问;并在确认分服务器服务可用下,但是具体的分服务器的目标服务交易频繁报错的情况下,可以通过交易熔断机制将这些异常状态识别出来并暂停交易访问,避免影响到其它正常交易的访问执行。

此外,通过增加分服务器心跳检测之后,会话转发器还可以实时掌握分服务器的连通性,对于持续无法连通的服务器,不再提供转发服务,可以一定程度上避免网络堵塞的发生。而且,通过定期反复试探性地发出检测信号,可以动态地恢复分服务器的访问功能,避免短时间的分服务器连通异常导致的永久不可用的情况。

进一步地,针对原有会话转发器异常信息不明确的情况,本公开实施例的会话转发器将包括会话有效性检查在内的若干重点报错场景识别出来,并赋予特殊的报错信息,以方便相关人员分析定位问题,从而提高运维质量和数据访问效率。

图10A示意性示出了根据本公开实施例的数据访问装置的框图。

如图10A所示,本公开的另一个方面提供了一种数据访问装置1000,其中,包括服务运行确定模块1010、交易运行判断模块1020和交易访问获取模块1030。服务运行确定模块1010用于响应于用户的数据访问请求,确定待访问服务器的服务运行状态;交易运行判断模块1020用于基于服务运行状态,判断待访问服务器中目标服务交易的交易运行状态;以及交易访问获取模块1030用于根据交易运行状态,访问目标服务交易以获取数据访问请求的交易反馈数据。

图10B示意性示出了根据本公开实施例的交易运行判断模块1020的框图。

如图10B所示,交易运行判断模块1020包括访问次数调取单元1021,访问次数调取单元1021用于当服务运行状态为服务可用时,调取目标服务交易的访问错误次数,用于确定目标服务交易的交易运行状态。

需要说明的是,图10A和图10B所示数据访问装置1000部分的实施例方式与前述数据访问方法部分的实施例方式对应类似,并且所达到的技术效果也对应类似,在此不再赘述。

本公开的另一个方面提供了一种服务器,其中,包括上述的数据访问装置,以实现上述的数据访问方法。

图11示意性示出了根据本公开实施例的电子设备的框图。其中,图11示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

本公开的另一方面提供了一种电子设备,包括一个或多个处理器和存储器;存储器用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现本公开实施例的方法。

如图11所示,根据本公开实施例的计算机系统1100包括处理器1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。处理器1101例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1101还可以包括用于缓存用途的板载存储器。处理器1101可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在RAM 1103中,存储有系统1100操作所需的各种程序和数据。处理器1101、ROM1102以及RAM 1103通过总线1104彼此相连。处理器1101通过执行ROM 1102和/或RAM 1103中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM1102和RAM 1103以外的一个或多个存储器中。处理器1101也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,系统1100还可以包括输入/输出(I/O)接口1105,输入/输出(I/O)接口1105也连接至总线1104。系统1100还可以包括连接至I/O接口1105的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1108。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被处理器1101执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

根据本公开的实施例,服务运行确定模块1010、交易运行判断模块1020和交易访问获取模块1030中的至少一个可以实现为参考图11描述的计算机程序模块,其在被处理器执行时,可以实现上面描述数据访问方法的相应操作。

本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现本公开实施例的方法。

具体地,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的数据访问方法。

或者,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的数据访问方法。

本公开的另一方面提供了一种计算机程序,上述计算机程序包括计算机可执行指令,上述指令在被执行时用于实现本公开实施例数据访问方法。

至此,已经结合附图对本公开实施例进行了详细描述。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 数据访问方法、数据访问装置、电子设备及可读存储介质
  • 基于虚拟设备的数据访问方法、装置、设备及存储介质
技术分类

06120113066930