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

数据处理方法、装置和服务器

文献发布时间:2023-06-19 10:05:17


数据处理方法、装置和服务器

技术领域

本说明书属于互联网技术领域,尤其涉及数据处理方法、装置和服务器。

背景技术

在一些数据处理场景(例如,银行的交易数据处理场景)中,为了避免出现系统后端服务器的异常导致无法及时地处理所接入的数据处理请求,常常会在原有的数据处理系统之外,另外配置一个容灾处理系统,以在系统服务器出现异常时,处理所接入的数据处理请求。

但是,基于现有的数据处理方法,在系统后端服务器出现异常处理数据处理请求时,往往比较粗狂、不够精细。例如,当发现系统中的某一个后端服务器出现异常,满足预设的触发条件时,现有方法大多会直接触发服务熔断,即会将所接入的全部数据处理请求都发送到容灾处理系统进行处理。

可见,基于现有方法具体实施时,容易出现在后端服务器出现异常的情况下,处理数据处理请求时不精细,影响用户的使用体验的技术问题。

针对上述问题,目前尚未提出有效的解决方案。

发明内容

本说明书提供了一种数据处理方法、装置和服务器,以在后端服务器出现异常的情况下,能智能、合理对数据处理请求进行分流,并能精细地利用预设的容灾处理模块和后端服务器来响应数据处理请求,完成相应的数据处理,提高用户的使用体验。

本说明书提供的一种数据处理方法,包括:

接收终端设备发送的数据处理请求;其中,所述数据处理请求携带有与所请求的后端服务相关的URL地址参数;

查询当前的容灾处理模式的开关状态;

在查询到当前的容灾处理模式的开关状态为开启状态的情况下,查询预设的共享内存获取与所述URL地址参数相匹配的目标分流比例;其中,所述目标分流比例根据后端服务的异常比例参数定时更新;

根据所述目标分流比例,将所述数据处理请求发送至与所述后端服务对应的后端服务器,或,与所述后端服务对应的预设的容灾处理模块进行相应处理,以得到相应的处理结果;其中,所述预设的容灾处理模块预先存储有与所述后端服务相关的静态业务数据;

将所述处理结果发送至所述终端设备。

在一个实施例中,在查询当前的容灾处理模式的开关状态之后,所述方法还包括:

在查询到当前的容灾处理模式的开关状态为关闭状态的情况下,将所述数据处理请求发送至与所述后端服务对应的后端服务器进行相应处理。

在一个实施例中,在将所述数据处理请求发送至与所述后端服务对应的后端服务器进行相应处理之后,所述方法还包括:

检测是否接收到后端服务器反馈的针对所述数据处理请求的报错信息;

在确定接收到后端服务器反馈的报错信息的情况下,将所述数据处理请求发送至预设的容灾处理模块进行相应处理。

在一个实施例中,所述预设的共享内存包括Nginx共享内存。

在一个实施例中,所述方法还包括:

间隔预设的时间间隔,定时根据预设的容灾服务列表,获取相应的后端服务的状态日志;

根据所述后端服务的状态日志,统计出后端服务的异常比例参数;

根据所述后端服务的异常比例参数,和预设的容灾规则,确定容灾处理模式的开关状态。

在一个实施例中,所述方法还包括:

在确定容灾处理模式的开关状态为开启状态的情况下,生成用于指示开启状态的开关标识;或,在确定容灾处理模式的开关状态为关闭状态的情况下,生成用于指示关闭状态的开关标识;

将所述开关标识存储在预设的共享内存中;或,更新预设的共享内存中的开关标识。

在一个实施例中,所述查询当前的容灾处理模式的开关状态,包括:

查询所述预设的共享内存,以获取当前的开关标识;

根据所述当前的开关标识,确定当前的容灾处理模式的开关状态。

在一个实施例中,在确定容灾处理模式的开关状态为开启状态的情况下,生成用于指示开启状态的开关标识之后,所述方法还包括:

根据所述后端服务的异常比例参数,和预设的容灾规则,生成匹配的目标分流比例;

将所述匹配的目标分流比例存储在预设的共享内存中;或,根据所述匹配的目标分流比例,更新所述预设的共享内存中的目标分流比例。

在一个实施例中,在将所述数据处理请求发送至与所述后端服务对应的预设的容灾处理模块进行相应处理之后,所述方法还包括:

调用内置的预设复制模块复制所述数据处理请求,得到模拟请求;

将所述模拟请求发送至与所述后端服务对应的后端服务器进行测试,以触发采集后端服务器的状态参数并生成相应的后端服务的状态日志。

在一个实施例中,所述状态参数包括响应时间的平均值。

在一个实施例中,所述内置的预设复制模块包括:ngx_http_mirror_module模块。

在一个实施例中,所述调用内置的预设复制模块复制所述数据处理请求,得到模拟请求,包括:

检测所述数据处理请求的类型;其中,所述数据处理请求的类型包括用户请求和爬虫请求;

在确定数据处理请求为用户请求的情况下,调用内置的预设复制模块复制所述数据处理请求,得到模拟请求。

本说明书还提供了一种数据处理装置,包括:

接收模块,用于接收终端设备发送的数据处理请求;其中,所述数据处理请求携带有与所请求的后端服务相关的URL地址参数;

第一查询模块,用于查询当前的容灾处理模式的开关状态;

第二查询模块,用于在查询到当前的容灾处理模式的开关状态为开启状态的情况下,查询预设的共享内存获取与所述URL地址参数相匹配的目标分流比例;其中,所述目标分流比例根据后端服务的异常比例参数定时更新;

处理模块,用于根据所述目标分流比例,将所述数据处理请求发送至与所述后端服务对应的后端服务器,或,与所述后端服务对应的预设的容灾处理模块进行相应处理,以得到相应的处理结果;其中,所述预设的容灾处理模块预先存储有与所述后端服务相关的静态业务数据;

反馈模块,用于将所述处理结果发送至所述终端设备。

本说明书还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现接收终端设备发送的数据处理请求;其中,所述数据处理请求携带有与所请求的后端服务相关的URL地址参数;查询当前的容灾处理模式的开关状态;在查询到当前的容灾处理模式的开关状态为开启状态的情况下,查询预设的共享内存获取与所述URL地址参数相匹配的目标分流比例;其中,所述目标分流比例根据后端服务的异常比例参数定时更新;根据所述目标分流比例,将所述数据处理请求发送至与所述后端服务对应的后端服务器,或,与所述后端服务对应的预设的容灾处理模块进行相应处理,以得到相应的处理结果;其中,所述预设的容灾处理模块预先存储有与所述后端服务相关的静态业务数据;将所述处理结果发送至所述终端设备。

本说明书还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现接收终端设备发送的数据处理请求;其中,所述数据处理请求携带有与所请求的后端服务相关的URL地址参数;查询当前的容灾处理模式的开关状态;在查询到当前的容灾处理模式的开关状态为开启状态的情况下,查询预设的共享内存获取与所述URL地址参数相匹配的目标分流比例;其中,所述目标分流比例根据后端服务的异常比例参数定时更新;根据所述目标分流比例,将所述数据处理请求发送至与所述后端服务对应的后端服务器,或,与所述后端服务对应的预设的容灾处理模块进行相应处理,以得到相应的处理结果;其中,所述预设的容灾处理模块预先存储有与所述后端服务相关的静态业务数据;将所述处理结果发送至所述终端设备。

本说明书提供的数据处理方法、装置和服务器,通过服务器在接收到携带有与后端服务相关的URL地址参数的数据处理请求后,先查询当前的容灾处理模式的开关状态,在确定为开启状态的情况下,通过查询预设的共享内存获取与URL地址参数相匹配的目标分流比例,其中,上述目标分流比例是定时更新的;服务器可以根据上述目标分流比例,将该数据处理请求分流到对应的后端服务器,或,与后端服务对应的预先存储有与后端服务相关的静态业务数据的预设的容灾处理模块进行相应处理。从而可以在后端服务器出现异常的情况下,智能、合理对数据处理请求进行分流,并能精细地利用预设的容灾处理模块和后端服务器来响应数据处理请求,较好地完成相应的数据处理,提高用户的使用体验。解决了现有方法在后端服务器出现异常的情况下,处理数据处理请求不精细,影响用户的使用体验的技术问题。

附图说明

为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是应用本说明书实施例提供的数据处理方法的系统的结构组成的一个实施例的示意图;

图2是本说明书的一个实施例提供的数据处理方法的流程示意图;

图3是本说明书的一个实施例提供的服务器的结构组成示意图;

图4是本说明书的一个实施例提供的数据处理装置的结构组成示意图

图5是在一个场景示例中,应用本说明书实施例提供的数据处理方法的一种实施例的示意图;

图6是在一个场景示例中,应用本说明书实施例提供的数据处理方法的一种实施例的示意图;

图7是在一个场景示例中,应用本说明书实施例提供的数据处理方法的一种实施例的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

考虑到基于现有的数据处理方法,在检测到满足预设的触发条件(例如,检测到系统中的一个或多个后端服务器出现异常),往往会不作精细区分,直接触发使用容灾处理系统来接入所有的数据处理请求进行数据处理。这种数据处理方式(即,服务熔断的处理方式)相对较为粗狂,不够精细;并由于对所有接入的数据处理请求都简单地使用容灾处理系统进行处理,使得用户一侧获得的使用体验相对较差。

针对产生上述问题的根本原因,本说明书考虑首先,服务器可以定时地检测确定后端服务的异常比例参数,进而可以根据上述后端服务的异常比例常数,动态地更新容灾处理模式的开关状态,以及在容灾处理模式的开关状态为开启状态的情况下,相匹配的目标分流比例;进而,服务器在每接收到一个数据处理请求时,可以先通过查询确定出当前的容灾处理模式的开关状态,在查询到当前的容灾处理模式的开关状态为开启状态的情况下,可以进一步查询当前相匹配的目标分流比例;再根据该目标分流比例来对数据处理请求进行分流,将该数据处理请求发送至相应的后端服务器,或相应的预设的静态处理模块进行处理。这样通过采用服务降级的方式来处理用户的数据处理请求,相对于现有方法所采用的服务熔断的方式,可以有效地结合当前系统的后端服务器的最新的状态情况,更加精细、合理地处理用户的数据处理请求,提高用户的使用体验。解决了现有方法在后端服务器出现异常的情况下,处理数据处理请求不精细,影响用户的使用体验的技术问题。

基于上述构思,本说明书实施例提供一种数据处理方法,该方法具体可以应用于包含有服务器、终端设备,以及预设的容灾处理模块的系统中。

具体可以参阅图1所示。上述服务器可以包括前端服务器和多个后端服务器。其中,上述前端服务器与用户使用的终端设备相连。多个后端服务器分别与前端服务器相连,分别用于在正常的情况下响应用户的数据处理请求进行在线处理,以为用户提供相应的后端服务。预设的容灾处理模块与前端服务器相连,并且存储有后端服务相关的静态业务数据,用于在异常的情况下,利用所存储的静态业务数据来处理用户的数据处理请求。上述前端服务器和多个后端服务器组合构成一个负责处理数据处理请求的服务器集群(例如,Nginx集群)。

在本实施例中,所述前端服务器、后端服务器具体可以包括一种应用于业务平台一侧,能够实现数据传输、数据处理等功能的后台服务器。具体的,所述前端服务器、后端服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述前端服务器、后端服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。

在本实施例中,所述终端设备具体可以包括一种应用于用户一侧,能够实现数据采集、数据传输等功能的电子设备。具体的,所述终端设备例如可以为台式电脑、平板电脑、笔记本电脑、智能手机等。或者,所述终端设备也可以为能够运行于上述电子设备中的软件应用。例如,可以是在智能手机上运行的某APP等。

具体实施时,用户可以通过终端设备向前端服务器发起数据处理请求(例如,交易数据处理请求)。其中,所述数据处理请求至少携带有与所请求的后端服务相关的URL地址参数。

前端服务器接收数据处理请求,并响应该数据处理请求,查询当前的容灾处理模式的开关状态。

前端服务器在查询到当前的容灾处理模式的开关状态为开启状态的情况下,进一步,可以查询预设的共享内存获取与所述URL地址参数相匹配的目标分流比例。其中,在所述预设的共享内存中存储的目标分流比例是根据后端服务的异常比例参数定时更新的。

进一步,前端服务器可以根据所述目标分流比例,对该数据处理请求进行分流,即,确定是将该数据处理请求发送至与所述后端服务对应的后端服务器进行相应处理,还是将该数据处理请求发送至与所述后端服务对应的预设的容灾处理模块进行相应处理。

具体的,例如,如果目标分流比例将大,有相对较大的概率将该数据处理请求发送至预设的容灾处理模块,以利用静态业务数据进行应急处理。相反,如果目标分流比例较小,有相对较大的概率将该数据处理请求发送至后端服务器,以进行正常处理。

前端服务器接收后端服务器或预设的容灾处理模块处理后反馈的处理结果,再将该处理结果反馈给终端设备。

终端设备向用户展示处理结果。

基于上述系统,在后端服务器出现异常的情况下,能够智能、合理对数据处理请求进行分流,并且精细地利用预设的容灾处理模块和后端服务器来响应数据处理请求,完成相应的数据处理。可以有效地避免像现有方法采用服务熔断方式进行粗犷处理所导致的处理不精细、用户使用体验差的技术问题。

参阅图2所示,本说明书实施例提供了一种数据处理方法。其中,该方法具体应用于服务器一侧。具体实施时,该方法可以包括以下内容。

S201:接收终端设备发送的数据处理请求;其中,所述数据处理请求携带有与所请求的后端服务相关的URL地址参数。

在本实施例中,终端设备可以接收并响应用户的相应操作,生成并向服务器发送对应的数据处理请求。其中,上述数据处理请求具体可以是交易数据处理请求,例如,订单查询请求、订单支付请求、账户余额查询请求等等。当然,需要说明的是,上述所列举的数据处理请求只是一种示意性说明。具体实施时,根据具体的应用场景和处理需要,上述数据处理请求还可以包括其他类型的数据处理请求。例如,上述数据处理请求可以是网页访问请求、账户登录请求等等。对此,本说明书不作限定。

在本实施例中,上述数据处理请求具体可以用于请求相应的后端服务器进行相关的数据处理,以提供对应的后端服务。

在本实施例中,上述数据处理请求具体还可以携带有与所请求的后端服务相关的URL(Uniform Resource Locator,统一资源定位)地址参数。利用上述URL地址参数,可以确定出该数据处理请求所请求的具体的后端服务,以及提供该后端服务的后端服务器。

S202:查询当前的容灾处理模式的开关状态。

在本实施例中,上述容灾处理模式具体可以理解为一种在后端服务器出现异常,且异常程度较严重的情况下才会触发的应急数据处理模式。

具体的,正常情况下,容灾处理模式的开关状态为关闭状态,这时服务器所接入的数据处理请求会被正常发送到对应的后端服务器进行处理。当后端服务出现异常,且异常比例较高,例如,高于某一个预设的异常比例阈值时,容灾处理模式的开关状态会变为开启状态,这时服务器会根据后端服务器的具体状态情况,智能地对所接入的数据处理请求进行分流,根据相匹配的目标分流比例将一部分的数据处理请求发送至后端服务器进行处理,将另一部分的数据处理请求发送至对应的预设的容灾处理模块进行处理,即,采用服务降级的方式来合理地处理所接入的数据处理请求。

其中,上述预设的容灾处理模块预先可以存储有与上述后端服务相关的静态业务数据。当预设的容灾处理模块接收到服务器分流来的数据处理请求后,可以响应该数据处理请求,利用所存储的静态业务数据进行数据处理,以及时地生成并向用户反馈相关的数据结果。

在一个实施例中,所述查询当前的容灾处理模式的开关状态,具体实施时,可以包括以下内容:查询所述预设的共享内存,以获取当前的开关标识;根据所述当前的开关标识,确定当前的容灾处理模式的开关状态。

其中,上述开关标识用于指示当前的容灾处理模式的开关状态是开启状态,还是关闭状态。

在一个实施例中,所述预设的共享内存具体可以包括Nginx共享内存。其中,上述Nginx具体可以理解为一种以高性能、高并发著称的开源Web服务器,支持HTTP(HyperTextTransfer Protocol,超文本传输协议)反向代理、TCP(Transmission Control Protocol,传输控制协议)代理、负载均衡、HTTP缓存及Web开发等。

S203:在查询到当前的容灾处理模式的开关状态为开启状态的情况下,查询预设的共享内存获取与所述URL地址参数相匹配的目标分流比例;其中,所述目标分流比例根据后端服务的异常比例参数定时更新。

在一个实施例中,上述预设的共享内存中还存储有与多种URL地址参数对应的目标分流比例。其中,上述目标分流比例是根据后端服务的异常比例参数定时更新的。

具体的,根据预设的容灾规则,在容灾处理模式的开关状态为开启状态时,后端服务的异常比例参数越大,目标分流比例的数值越大;相应的,数据处理请求将会有越高的概率被反流到预设的容灾处理模块进行处理。相反,后端服务器的异常比例参数越小,目标分流比例的数值越小;相应的,数据处理请求将会有越低的概率被反流到预设的容灾处理模块进行处理。

S204:根据所述目标分流比例,将所述数据处理请求发送至与所述后端服务对应的后端服务器,或,与所述后端服务对应的预设的容灾处理模块进行相应处理,以得到相应的处理结果;其中,所述预设的容灾处理模块预先存储有与所述后端服务相关的静态业务数据。

在本实施例中,具体实施时,服务器可以根据目标分流比例,将数据处理请求分流到相应的处理端(后端服务器或预设的容灾处理模块)进行处理。

具体的,例如,当前接收到的是批量数据处理请求时,服务器可以根据目标分流比例,从所述批量数据处理请求中随机抽取满足目标分流比例的数据处理请求发送到预设的容灾处理模块进行处理,将剩余的数据处理请求发送到后端服务器进行处理。

又例如,当前接收到的是单个数据处理请求,服务器可以根据目标分流比例,随机将该数据处理请求发送到后端服务器,或预设的容灾处理模块进行处理。

后端服务器在接收到上述数据处理请求后,可以在线处理该数据处理请求,生成并向服务器反馈对应的处理结果。

预设的容灾处理模块在接收到上述数据处理请求后,可以利用预先存储的静态业务数据来处理该数据处理请求,生成并向服务器反馈对应的处理结果。

S205:将所述处理结果发送至所述终端设备。

在本实施例中,服务器在接收到来自后端服务器或预设的容灾处理模块反馈的处理结果后,可以将该处理结果发至终端设备。相应的,终端设备可以向用户展示该处理结果。

在本实施例中,通过服务器在接收到携带有与后端服务相关的URL地址参数的数据处理请求后,先查询当前的容灾处理模式的开关状态,在确定为开启状态的情况下,可以查询预设的共享内存获取与URL地址参数相匹配的目标分流比例,其中,上述目标分流比例是定时更新的;服务器可以根据上述目标分流比例,将该数据处理请求分流到后端服务器,或,与后端服务对应的预先存储有与后端服务相关的静态业务数据的预设的容灾处理模块进行相应处理。从而可以在后端服务器出现异常的情况下,智能、合理对数据处理请求进行分流,并能精细地利用预设的容灾处理模块和后端服务器来响应数据处理请求,较好地完成相应的数据处理,提高用户的使用体验。

在一个实施例中,在查询当前的容灾处理模式的开关状态之后,所述方法具体实施时,还可以包括以下内容:在查询到当前的容灾处理模式的开关状态为关闭状态的情况下,将所述数据处理请求发送至与所述后端服务对应的后端服务器进行相应处理。

在一个实施例中,在将所述数据处理请求发送至与所述后端服务对应的后端服务器进行相应处理之后,所述方法具体实施时,还可以包括以下内容:检测是否接收到后端服务器反馈的针对所述数据处理请求的报错信息;在确定接收到后端服务器反馈的报错信息的情况下,将所述数据处理请求发送至预设的容灾处理模块进行相应处理。

在本实施例中,上述报错信息例如可以是“5xx”形式的用于指示异常的报错信息。

在本实施例中,通过上述方式服务器可以及时地发现之前没有发现的突然出现异常的后端服务器,进而可以及时地将数据处理请求转发到预设的容灾处理模块进行处理,以便能够及时地生成并向用户反馈对应的处理结果,提高用户的使用体验。

在一个实施例中,所述方法具体实施时,还可以包括以下内容。

S1:间隔预设的时间间隔,定时根据预设的容灾服务列表,获取相应的后端服务的状态日志;

S2:根据所述后端服务的状态日志,统计出后端服务的异常比例参数;

S3:根据所述后端服务的异常比例参数,和预设的容灾规则,确定容灾处理模式的开关状态。

在本实施例中,上述预设的容灾服务列表中具体可以包含有需要容灾的后端服务的URL地址参数。

具体实施之前,服务器可以通过终端设备向用户展示容灾参数配置界面。用户可以根据具体的应用场景,结合各个后端服务实时性要求、重要性程度等因素,在容灾参数配置界面上输入相应的设置参数。例如,需要容灾的后端服务的名称、编号,或者URL地址等。服务器可以通过容灾参数配置界面接收上述设置参数,并根据上述设置参数生成对应的预设的容灾服务列表。

进一步,服务器可以将上述预设的容灾服务列表存储在预设的共享内存中。相应的,后续服务器可以通过访问预设的共享内存,获取上述预设的容灾服务列表。

在本实施例中,服务器可以每间隔预设的时间间隔,根据容灾服务列表中所包含的后端服务的URL地址参数,定时获取相应的后端服务的状态日志;进而可以根据上述后端服务的状态日志,统计出后端服务的异常比例参数。

进一步,服务器可以根据后端服务的异常比例参数,和预设的容灾规则,确定出容灾处理模式的开关状态。具体的,根据预设的容灾规则确定出预设的异常比例阈值(例如,5%)。再比较后端服务的异常比例参数,和预设的异常比例阈值,得到比较结果。根据比较结果,在确定异常比例参数大于或等于预设的异常比例阈值的情况下,确定容灾处理模式的开关状态为开启状态。根据比较结果,在确定异常比例参数小于预设的异常比例阈值的情况下,确定容灾处理模式的开关状态为关闭状态。

在一个实施例中,所述方法具体实施时,还可以包括以下内容:在确定容灾处理模式的开关状态为开启状态的情况下,生成用于指示开启状态的开关标识;或,在确定容灾处理模式的开关状态为关闭状态的情况下,生成用于指示关闭状态的开关标识;将所述开关标识存储在预设的共享内存中;或,更新预设的共享内存中的开关标识。

在本实施例中,如果预设的共享内存中之前没有存储开关标识,服务器可以将上述开关标识发送并存储在预设的共享内存,以建立得到一个新的开关标识。如果预设的共享内存中已经存储有开关标识,服务器可以根据上述开关标识更新存储在预设的共享内存中的已有的开关标识。

通过将上述开关标识保存在预设的共享内存中,可以方便其他服务器更加高效地通过查询存储在预设的共享内存中的开关标识来确定出当前的容灾处理模式的开关状态。

在一个实施例中,在确定容灾处理模式的开关状态为开启状态的情况下,生成用于指示开启状态的开关标识之后,所述方法具体实施时,还可以包括以下内容:根据所述后端服务的异常比例参数,和预设的容灾规则,生成匹配的目标分流比例;将所述匹配的目标分流比例存储在预设的共享内存中;或,根据所述匹配的目标分流比例,更新所述预设的共享内存中的目标分流比例。

在本实施例中,在生成用于指示开启状态的开关标识之后,基于预设的容灾规则,服务器可以根据后端服务的异常比例参数,估算出后端服务器整体的健康状况;进而预测出后端服务器当前所能支持的数据处理请求的处理量;再根据上述处理量,结合后端服务的重要程度、实时性要求等因素,确定与当前后端服务器的健康状况相匹配的目标分流比例。

具体的,例如,当后端服务的异常比例参数相对较小,后端服务器整体的健康状况相对较好时,可以将匹配的目标分流比例的数值设置得相对较小,例如,将匹配的目标分流比例设置为30%,即,表示有30%的数据处理请求会被分流到预设的容灾处理模块进行处理,或,表示数据处理请求有30%的概率会被分流到预设的容灾处理模块进行处理。

当后端服务的异常比例参数相对较大,后端服务器整体的健康状况相对较差时,可以将匹配的目标分流比例的数值设置得相对较大,例如,将匹配的目标分流比例设置为80%,即,表示有80%的数据处理请求会被分流到预设的容灾处理模块进行处理,或,表示数据处理请求有80%的概率会被分流到预设的容灾处理模块进行处理。

当后端服务的异常比例参数特别大,后端服务器整体上已经无法支持处理新接入的数据处理请求时,可以将上述匹配的目标分流比例的数值设置为100%,即,表示所接入的数据处理请求都会被分流到预设的容灾处理模块进行处理,以避免再对后端服务器造成负担。

基于上述实施例,可以通过根据后端服务的异常比例参数调整、设置具体目标分流比例,来结合后端服务器的整体健康状况,灵活、智能地实现动态的服务降级,从而可以较为精细地处理所接入的数据处理请求。

在本实施例中,如果预设的共享内存中之前没有存储目标分流比例,服务器可以将上述匹配的目标分流比例发送并存储在预设的共享内存,以在预设的共享内存中建立得到一个新的目标分流比例。如果预设的共享内存中已经存储有目标分流比例,服务器可以根据上述匹配的目标分流比例更新存储在预设的共享内存中的已有的目标分流比例。

在一个实施例中,在将所述数据处理请求发送至与所述后端服务对应的预设的容灾处理模块进行相应处理之后,所述方法具体实施时,还可以包括以下内容:调用内置的预设复制模块复制所述数据处理请求,得到模拟请求;将所述模拟请求发送至与所述后端服务对应的后端服务器进行测试,以触发采集后端服务器的状态参数并生成相应的后端服务的状态日志。

在一个实施例中,上述状态参数具体可以包括(后端服务器)响应时间的平均值。

在实施例中,在容灾处理模式的开关状态为开启状态,减少或停止向相应的后端服务器分流数据处理请求的情况,为了能够及时地了解后端服务器的恢复情况,还可以采用上述方式根据真实的数据处理请求,生成对应的模拟的请求,并将上述模拟请求发送至后端服务器进行状态测试,以较真实地模拟出后端服务器以当前恢复状况处理数据处理请求时的场景。从而可以采集得到相对具有更高的参考价值的状态参数来生成后端服务的状态日志,后续可以根据上述后端服务的状态日志所记录的状态参数更加精准地判断当前的容灾处理模式的开关状态。

在一个实施例中,所述内置的预设复制模块具体可以包括:ngx_http_mirror_module模块。

在一个实施例中,具体实施时,服务器可以通过调用ngx_http_mirror_module模块生成数据处理请求的镜像请求,作为所述模拟请求。

在本实施例中,通过使用ngx_http_mirror_module模块来生成模拟请求,可以不用另外引入其他的第三方模块,不需要耗费时间和资源对另外引入的第三方模块进行监测和管理。从而可以降低处理成本,提高整体的处理效率。

在一个实施例中,所述调用内置的预设复制模块复制所述数据处理请求,得到模拟请求,具体实施时,可以包括以下内容:检测所述数据处理请求的类型;其中,所述数据处理请求的类型包括用户请求和爬虫请求;在确定数据处理请求为用户请求的情况下,调用内置的预设复制模块复制所述数据处理请求,得到模拟请求。

在本实施例中,具体实施时,可以检测数据处理请求中是否携带有预设的标记字段来判断该数据处理请求是否为爬虫请求。

在本实施例中,通过上述方式,可以区分爬虫请求和用户请求,并只对更为关注的用户请求进行复制,以生成要发送给后端服务器的模拟请求,可以使得后端服务器的状态测试更有针对性,后续所获取的后端服务的状态日志更有参考价值。通过上述方式,可以减轻后端服务器的处理压力,减少非真实用户请求对问题定位的干扰,提高处理效率。

在一个实施例中,在当前的容灾处理模式的开关状态为开启状态,服务器根据所述目标分流比例,对所接收的数据处理请求进行分流的同时,服务器还可以每间隔预设的时间间隔,定时根据预设的容灾服务列表,获取相应的后端服务的状态日志;根据所述后端服务的状态日志,统计出后端服务的异常比例参数;并根据所述后端服务的异常比例参数,和预设的容灾规则,确定容灾处理模式的开关状态。

具体的,例如,服务器在根据预设的容灾规则,比较最新的后端服务的异常比例参数,和预设的异常比例阈值时,发现异常比例参数已经小于预设的异常比例阈值,可以确定容灾处理模式的开关状态为关闭状态。进而可以生成用于指示关闭状态的关闭标识,并根据关闭标识更新存储在预设的共享内存中的开关标识,从而将当前的容灾处理模式的开关状态更新为关闭状态。

由上可见,本说明书实施例提供的数据处理方法,通过服务器在接收到携带有与后端服务相关的URL地址参数的数据处理请求后,先查询当前的容灾处理模式的开关状态,在确定为开启状态的情况下,可以查询预设的共享内存获取与URL地址参数相匹配的目标分流比例,其中,上述目标分流比例是定时更新的;服务器可以根据上述目标分流比例,将该数据处理请求分流到后端服务器,或,与后端服务对应的预先存储有与后端服务相关的静态业务数据的预设的容灾处理模块进行相应处理。从而可以在后端服务器出现异常的情况下,智能、合理对数据处理请求进行分流,并能精细地利用预设的容灾处理模块和后端服务器来响应数据处理请求,完成相应的数据处理,提高用户的使用体验。解决了现有方法在后端服务器出现异常的情况下,处理数据处理请求不精细,影响用户的使用体验的技术问题。还通过在将所述数据处理请求发送至与所述后端服务对应的预设的容灾处理模块进行相应处理之后,调用内置的预设复制模块复制所述数据处理请求,得到模拟请求;再将所述模拟请求发送至与所述后端服务对应的后端服务器进行测试,以触发采集后端服务器的状态参数并生成相应的后端服务的状态日志;进而后续可以根据定时获取的后端服务的状态日志及时、精准地确定出后端服务器的最新的健康状况,以便智能地对容灾处理模式的开关状态、目标分流比例进行针对性的调整,提高处理效果。

本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:接收终端设备发送的数据处理请求;其中,所述数据处理请求携带有与所请求的后端服务相关的URL地址参数;查询当前的容灾处理模式的开关状态;在查询到当前的容灾处理模式的开关状态为开启状态的情况下,查询预设的共享内存获取与所述URL地址参数相匹配的目标分流比例;其中,所述目标分流比例根据后端服务的异常比例参数定时更新;根据所述目标分流比例,将所述数据处理请求发送至与所述后端服务对应的后端服务器,或,与所述后端服务对应的预设的容灾处理模块进行相应处理,以得到相应的处理结果;其中,所述预设的容灾处理模块预先存储有与所述后端服务相关的静态业务数据;将所述处理结果发送至所述终端设备。

为了能够更加准确地完成上述指令,参阅图3所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口301、处理器302以及存储器303,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。

其中,所述网络通信端口301,具体可以用于接收终端设备发送的数据处理请求;其中,所述数据处理请求携带有与所请求的后端服务相关的URL地址参数。

所述处理器302,具体可以用于查询当前的容灾处理模式的开关状态;在查询到当前的容灾处理模式的开关状态为开启状态的情况下,查询预设的共享内存获取与所述URL地址参数相匹配的目标分流比例;其中,所述目标分流比例根据后端服务的异常比例参数定时更新;根据所述目标分流比例,将所述数据处理请求发送至与所述后端服务对应的后端服务器,或,与所述后端服务对应的预设的容灾处理模块进行相应处理,以得到相应的处理结果;其中,所述预设的容灾处理模块预先存储有与所述后端服务相关的静态业务数据;将所述处理结果发送至所述终端设备。

所述存储器303,具体可以用于存储相应的指令程序。

在本实施例中,所述网络通信端口301可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行FTP数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。

在本实施例中,所述处理器302可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。

在本实施例中,所述存储器303可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。

本说明书实施例还提供了一种基于上述数据处理方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:接收终端设备发送的数据处理请求;其中,所述数据处理请求携带有与所请求的后端服务相关的URL地址参数;查询当前的容灾处理模式的开关状态;在查询到当前的容灾处理模式的开关状态为开启状态的情况下,查询预设的共享内存获取与所述URL地址参数相匹配的目标分流比例;其中,所述目标分流比例根据后端服务的异常比例参数定时更新;根据所述目标分流比例,将所述数据处理请求发送至与所述后端服务对应的后端服务器,或,与所述后端服务对应的预设的容灾处理模块进行相应处理,以得到相应的处理结果;其中,所述预设的容灾处理模块预先存储有与所述后端服务相关的静态业务数据;将所述处理结果发送至所述终端设备。

在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。

在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。

参阅图4所示,在软件层面上,本说明书实施例还提供了一种数据处理装置,该装置具体可以包括以下的结构模块。

接收模块401,具体可以用于接收终端设备发送的数据处理请求;其中,所述数据处理请求携带有与所请求的后端服务相关的URL地址参数;

第一查询模块402,具体可以用于查询当前的容灾处理模式的开关状态;

第二查询模块403,具体可以用于在查询到当前的容灾处理模式的开关状态为开启状态的情况下,查询预设的共享内存获取与所述URL地址参数相匹配的目标分流比例;其中,所述目标分流比例根据后端服务的异常比例参数定时更新;

处理模块404,具体可以用于根据所述目标分流比例,将所述数据处理请求发送至与所述后端服务对应的后端服务器,或,与所述后端服务对应的预设的容灾处理模块进行相应处理,以得到相应的处理结果;其中,所述预设的容灾处理模块预先存储有与所述后端服务相关的静态业务数据;

反馈模块405,具体可以用于将所述处理结果发送至所述终端设备。

需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

由上可见,本说明书实施例提供的数据处理装置,可以在后端服务器出现异常的情况下,智能、合理对数据处理请求进行分流,并能精细地利用预设的容灾处理模块和后端服务器来响应数据处理请求,完成相应的数据处理,提高用户的使用体验。

在一个具体的场景示例中,可以应用本说明书提供的数据处理方法对用户请求进行容灾处理。

具体的,在本场景示例中建立了一种静态容灾的智能管理系统。可以参阅图5所示,该系统共包括四个模块,分别是反向代理模块、管理分析模块、日志分析模块、容灾缓存模块。

其中,上述反向代理模块用于负责对用户请求(例如,数据处理请求)进行分流,判断将用户请求发送到后端服务器还是去静态容灾系统。

参阅图6所示,当接入用户请求(例如,数据处理请求)时,应用上述反向代理模块时的处理流程,可以包括以下内容:

1.判断静态容灾系统开关状态(例如,容灾处理模式的开关状态,可以简称容灾开关);

2.如果开关状态为“开启”,且用户请求URL已配置容灾状态,确定提供容灾服务;可以根据参数,将部分请求代理到容灾缓存模块(例如,预设的容灾处理模块)中处理;

3.如果开关状态为“开启”,但用户请求URL未配置容灾状态,则反向代理到后端服务器中处理;

4.如果开关状态为“关闭”,但是后端服务器返回例如5xx错误等返回结果,可以根据参数,将部分请求反向代理到容灾缓存模块中;

5.如果开关状态为“关闭”,后端服务器返回结果正常,则可以将结果返回给用户。

上述管理分析模块具体可以理解为一种实现静态容灾智能管理的核心模块,通过定时任务的方式,对容灾服务更新比例参数(例如,目标分流比例),实现服务降级/恢复的功能。

参阅图7所示,应用上述管理分析模块时的处理流程,开始实施时,可以包括以下内容:

1.读取容灾资源列表,即容灾的URL服务列表(例如,预设的容灾服务列表),逐一处理;

2.通过日志分析系统,获取异常比例数据,具体的,可以获取对应URL服务的异常(例如慢响应或错误响应)百分比数据(例如,后端服务的异常比例参数);

3.发送请求修改反向代理模块中的Nginx共享内存,将异常百分比数据作为参数传入,例如p=30,代表有30%的服务异常,需要将30%的请求反向代理到容灾系统。从而可以更新反向代理模块参数。

直到确定列表处理完毕,结束数据处理;如果列表未处理完毕,则继续获取异常比例数据。

实际应用中,将根据实际业务要求,配置异常上限、下限阈值,当异常百分比数据低于下限阈值(例如5%)时,认为后端服务正常,关闭静态容灾处理;当异常百分比高于上限阈值(例如80%)时,认为后端服务已无能力提供响应,将全部用户请求发往静态容灾系统处理。

上述日志分析模块用于负责对访问日志(例如,后端服务的状态日志)进行统一采集、集中管理、分析,作用是监控URL服务的实时状态,例如,响应时间的平均值(一种状态参数),以及tp90、tp99等。具体的,例如,tp99一般用于体现服务的响应能力,即99%的请求可以在这个时间点以内获得响应。

上述容灾缓存模块用于存放缓存数据,当有用户请求进入容灾缓存模块时,代表后端服务存在异常状态,静态容灾系统处于开启状态。

为了使后端服务维持真实流量,方便研发团队定位、处理问题,需要将用户的请求复制一份,重新发回后端服务,实际应用中为了减少维护组件的数量,可以使用Nginx的ngx_http_mirror_module模块(例如,内置的预设复制模块),通过简单配置即可实现高保真模拟用户的请求。

注意,进入容灾缓存模块的请求包括客户端请求(例如,用户请求)和爬虫请求,只需要将客户端请求复制发送到后端服务中,因此需要采用一定方法,区分两种请求。

其中,利用ngx_http_mirror_module模块的配置可以分为两部分,分别是源地址配置和镜像地址配置,关键配置的设置可以参阅以下内容。

源地址配置:

镜像地址配置:

此外,在本场景示例中,具体实施时所使用到的相关软件可以参阅表1所示。

表1

通过上述场景示例,验证了基于本说明书所提供的数据处理方法所构建的静态容灾的智能管理系统,可以提供统一、智能的静态容灾管理方案,解决服务降级与恢复两个关键问题。具体的,首先,上述静态容灾智能管理系统的模块构成与分模块职责:本方案提出的静态容灾智能管理系统,划分为4个职责清晰、高内聚、低耦合的系统模块,实现了一种智能降级、恢复的静态容灾系统管理方案。其次,切换静态容灾后,维持服务健康监控真实可信的方案:本方案提出基于Nginx模块实现请求镜像复制,在不增加系统构成复杂度的前提下,实现了用户请求的高保真复制,维持后端服务流量,使切换静态容灾后的健康监控依然真实可信。此外,精细化实现服务降级/恢复的技术方案:本方案提出的基于服务异常百分比,结合业务上/下限阈值,定时更新Nginx共享内存参数,实现了用户请求数量层面的服务降级与恢复,提供了一种精细化管理静态容灾系统的解决方案。

虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

相关技术
  • 通信系统、数据处理装置、服务器、数据处理方法、执行数据处理方法的程序和记录程序的记录媒体
  • 一种服务器密码机的数据处理方法、装置及服务器密码机
技术分类

06120112410267