处理数据请求的方法、装置及服务集群与流程

文档序号:11206609阅读:486来源:国知局
处理数据请求的方法、装置及服务集群与流程

本申请涉及计算机应用技术领域,具体而言,涉及处理数据请求的方法、装置及服务集群。



背景技术:

随着互联网的逐渐发展,上网的成本和门槛变的越来越低,网站的流量随之快速的增长,网站的服务器经常会遇到在某天的某个时刻流量突然增大的情况例如在秒杀开始前一刻,突然增大的流量会导致后台服务器处理不及时,部分请求用户会出现超时或者失败等情况,无法成功获取数据会导致页面上出现空白一片的情况,严重影响用户体验。如果不及时降低服务器的压力,甚至会造成整个接口挂掉,所有的用户请求失败的严重事故。

一种相关技术是通过增加服务器机器数量来提高后台的处理能力。但是流量峰值通常都是在特定的时候和特定的场景下出现,如果按照最大流量的标准配置服务器,会导致平时大量服务器的闲置。

还有一种相关技术是通常是在后台缓存一份兜底数据,然后在redis(是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库)等缓存中设置一个开关,服务器每隔一段时间去获取一下开关,管理员一旦发现流量超过阈值后打开降级开关,所有用户的请求直接返回兜底数据,不再进行后台的逻辑处理,降低对服务器的压力。但是,这种方案是将降级开关放在缓存中,每隔一段时间去获取一次缓存,因此开关为开标识之后需要隔一段时间才能生效,其次,一旦开关为开标识之后,所有的用户都只能得到兜底数据,不能根据流量和服务器情况灵活配置。另外,如果后台服务挂了,用户仍然可能获取不到数据,出现空白页面的情况,因此降级不实时,不够灵活,可靠性也不高。



技术实现要素:

本申请公开处理数据请求的方法,能够实现后台服务动态降级,能够根据流量和服务器情况灵活配置。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明的第二方面,提供一种处理数据请求的方法,包括:

http和反向代理服务器接收客户端的http访问请求,根据所述http访问请求获取访问信息,向服务集群发送包含所述访问信息的数据请求;

所述服务集群用于获取包含访问信息的数据请求,根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级,若需要降级,则从兜底缓存中获取请求结果,若不需要降级,则根据所述数据请求获取实时数据。

根据一些实施例,所述http和反向代理服务器根据所述http访问请求获取访问信息包括:

所述http和反向代理服务器获取所述http访问请求的用户标识信息、以及获取接收所述http访问请求的时间戳。

根据一些实施例,所述方法还包括:

通知服务器监听用于存储所述降级比例开关的redis缓存是否有修改,若监听到所述redis缓存有修改,向所述服务集群发送通知消息;

所述服务集接收到所述通知消息时从所述redis缓存中读取所述降级比例开关,将所述降级比例开关存放到所述服务集群的本地缓存中。

根据一些实施例,所述方法还包括:所述http和反向代理服务器根据配置信息获取静态兜底开关,若所述静态兜底开关为关标识则根据管理员预先配置的静态兜底数据获取请求结果;

若所述静态兜底开关为开标识则根据所述http访问请求获取访问信息,向所述服务集群发送包含所述访问信息的数据请求,并将所述服务集群返回的请求结果存储到所述静态兜底数据中。

根据一些实施例,所述方法还包括,若所述客户端向所述http和反向代理服务器请求所述http访问请求失败,则根据本地缓存获取请求结果;若向所述http和反向代理服务器请求所述http访问请求成功,将获取的请求结果存储到所述本地缓存中。

根据一些实施例,所述http和反向代理服务器为nginx集群。

根据本发明的第二方面,提供一种处理数据请求的方法,包括:

获取包含访问信息的数据请求;

根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级;

若需要降级,则从兜底缓存中获取请求结果,若不需要降级,则根据所述数据请求获取实时数据。

根据一些实施例,所述降级比例开关包括元素为开标识或关标识的数组。

根据一些实施例,根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级包括:

根据所述访问信息进行hash运算得到hash值;

以所述hash值为索引从所述数组中获取对应的元素;

若获取的元素为开标识,则确定不需要对所述数据请求进行降级,若获取的元素为关标识,则确定需要对所述数据请求进行降级。

根据一些实施例,所述访问信息包括用户标识信息和/或访问时间戳。

根据一些实施例:

当通知服务器监听到用于存储所述降级比例开关的redis缓存有修改时发送通知消息;

接收所述通知服务器发送的通知消息时,从所述redis缓存中读取所述降级比例开关,将所述降级比例开关存放到本地缓存中。

根据一些实施例,接收所述通知服务器发送的通知消息包括:接收所述通知服务器通过zookeeper发送的通知消息。

根据一些实施例,http和反向代理服务器用于根据客户端的http访问请求获取所述访问信息;

获取包含访问信息的数据请求包括:从所述http和反向代理服务器接收包含所述访问信息的数据请求。

根据一些实施例,所述http和反向代理服务器还用于根据配置信息获取静态兜底开关,若所述静态兜底开关为关标识则根据管理员预先配置的静态兜底数据获取请求结果,不向服务集群发送所述包含所述访问信息的数据请求。

根据一些实施例,所述http和反向代理服务器为nginx集群。

需要说明的是,nginx集群接受客户端的请求之后,可以使用服务器集群的实时数据或者管理员预先配置好的静态兜底数据。

根据一些实施例,所述客户端用于:若向所述http和反向代理服务器请求所述http访问请求失败,则根据本地缓存获取请求结果;若向所述http和反向代理服务器请求所述http访问请求成功,则将获取的请求结果存储到所述本地缓存中。

根据本发明的第三方面,提供一种处理数据请求的装置,其包括:

请求获取单元,用于获取包含访问信息的数据请求;

降级判定单元,用于根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级;

请求处理单元,用于若需要降级,则从兜底缓存中获取请求结果,若不需要降级,则根据所述数据请求获取实时数据。

根据一些实施例,所述降级比例开关包括元素为开标识或关标识的数组。

根据一些实施例,所述降级判定单元用于:

根据所述访问信息进行hash运算得到hash值;

以所述hash值为索引从所述数组中获取对应的元素;

若获取的元素为开标识,则确定不需要对所述数据请求进行降级,若获取的元素为关标识,则确定需要对所述数据请求进行降级。

根据一些实施例,所述访问信息包括用户标识信息和/或访问时间戳。

根据一些实施例:

当通知服务器监听到用于存储所述降级比例开关的redis缓存有修改时发送通知消息;

所述装置还包括开关更新单元,用于接收所述通知服务器发送的通知消息时,从所述redis缓存中读取所述降级比例开关,将所述降级比例开关存放到本地缓存中。

根据一些实施例,所述开关更新单元用于:接收所述通知服务器通过zookeeper发送的通知消息。

根据一些实施例,http和反向代理服务器用于根据客户端的http访问请求获取所述访问信息;

所述请求获取单元用于:从所述http和反向代理服务器接收包含所述访问信息的数据请求。

根据一些实施例,所述http和反向代理服务器还用于根据配置信息获取静态兜底开关,若所述静态兜底开关为关标识则根据管理员预先配置的静态兜底数据获取请求结果,不向服务集群发送所述包含所述访问信息的数据请求。

根据一些实施例,所述http和反向代理服务器为nginx集群。

根据一些实施例,所述客户端用于:若向所述http和反向代理服务器请求所述http访问请求失败,则根据本地缓存获取请求结果;若向所述http和反向代理服务器请求所述http访问请求成功,则将获取的请求结果存储到所述本地缓存中。

根据本发明的第四方面,提供一种处理数据请求的系统,包括http和反向代理服务器、以及服务集群,其特征在于:

所述http和反向代理服务器用于接收http访问请求,根据所述http访问请求获取访问信息,向所述服务集群发送包含所述访问信息的数据请求;

所述服务集群用于获取包含访问信息的数据请求,根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级,若需要降级,则从兜底缓存中获取请求结果,若不需要降级,则根据所述数据请求获取实时数据。

根据一些实施例,所述http和反向代理服务器根据所述http访问请求获取访问信息包括:

所述http和反向代理服务器获取所述http访问请求的用户标识信息、以及获取接收所述http访问请求的时间戳。

根据一些实施例,所述系统还包括通知服务器;

所述通知服务器用于:监听用于存储所述降级比例开关的redis缓存是否有修改,若监听到所述redis缓存有修改,向所述服务集群发送通知消息;

所述服务集群用于:接收到所述通知消息时从所述redis缓存中读取所述降级比例开关,将所述降级比例开关存放到所述服务集群的本地缓存中。

根据一些实施例,所述http和反向代理服务器还用于根据配置信息获取静态兜底开关,若所述静态兜底开关为关标识则根据管理员预先配置的静态兜底数据获取请求结果;

若所述静态兜底开关为开标识则根据所述http访问请求获取访问信息,向所述服务集群发送包含所述访问信息的数据请求,并将所述服务集群返回的请求结果存储到所述静态兜底数据中。

根据一些实施例,所述系统还包括客户端,所述客户端用于,若向所述http和反向代理服务器请求所述http访问请求失败,则根据本地缓存获取请求结果;若向所述http和反向代理服务器请求所述http访问请求成功,将获取的请求结果存储到所述本地缓存中。

根据一些实施例,所述http和反向代理服务器为nginx集群。

根据本发明的第五方面,提供一种服务集群,包括:处理器;存储器,存储用于处理器控制如第一方任一项所述操作的指令。

根据本发明的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如如第一方任一项所述操作的步骤。

本申请的实施例提供的技术方案可以包括以下有益效果:

本申请的实施例提供的技术方案能够实现后台服务动态降级,能够根据流量和服务器情况灵活配置。应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

通过参照附图详细描述其示例实施例,本发明的上述和其它特征及优点将变得更加明显。

图1示出了根据本发明一实施例的处理数据请求的方法;

图2示出了根据本发明一实施例的处理数据请求的方法;

图3示出了根据本发明另一实施例的处理数据请求的方法;

图4示出了根据本发明另一实施例的处理数据请求的系统示意图;

图5示出了根据本发明一实施例的处理数据请求的系统中客户端处理罗辑流程图;

图6示出了根据本发明一实施例的处理数据请求的系统中http和反向代理服务器处理罗辑流程图;

图7示出了根据本发明一实施例的处理数据请求的系统中通知服务器处理罗辑流程图;

图8示出了根据本发明一实施例的处理数据请求的系统中服务集群处理罗辑流程图;

图9示出了根据本发明一实施例的处理数据请求的系统中服务集群进行hash运算过程示意图;

图10示出了根据本发明一实施例的处理数据请求的装置的框图;

图11示出了根据本发明另一实施例的处理数据请求的装置的框图;

图12示出了根据本发明一实施例的服务集群。

具体实施方式

现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

图1示出了根据本发明一实施例的处理数据请求的方法,如图1所示,本实施例所述的处理数据请求的方法包括:

在步骤s110中,http和反向代理服务器接收客户端的http访问请求,根据所述http访问请求获取访问信息,向服务集群发送包含所述访问信息的数据请求。

其中,所述http和反向代理服务器包括但不限于nginx集群。

在步骤s120中,所述服务集群用于获取包含访问信息的数据请求,根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级,若需要降级,则从兜底缓存中获取请求结果,若不需要降级,则根据所述数据请求获取实时数据。

其中,所述http和反向代理服务器根据所述http访问请求获取访问信息可包括:所述http和反向代理服务器获取所述http访问请求的用户标识信息、以及获取接收所述http访问请求的时间戳。

所述通知服务器还可监听用于存储所述降级比例开关的redis缓存是否有修改,若监听到所述redis缓存有修改,向所述服务集群发送通知消息;所述服务集接收到所述通知消息时从所述redis缓存中读取所述降级比例开关,将所述降级比例开关存放到所述服务集群的本地缓存中。

另外,所述http和反向代理服务器根据配置信息获取静态兜底开关,若所述静态兜底开关为关标识则根据管理员预先配置的静态兜底数据获取请求结果,若所述静态兜底开关为开标识则根据所述http访问请求获取访问信息,向所述服务集群发送包含所述访问信息的数据请求,并将所述服务集群返回的请求结果存储到所述静态兜底数据中。

需要说明提,若所述客户端向所述http和反向代理服务器请求所述http访问请求失败,还可根据本地缓存获取请求结果;若向所述http和反向代理服务器请求所述http访问请求成功,则可将获取的请求结果存储到所述本地缓存中。

图2示出了根据本发明一实施例的处理数据请求的方法,本实施例可适用于服务集群处理http和反向代理服务器转发的客户端http请求的情况,方法的执行主体为服务集群。如图2所示,本实施例所述的处理数据请求的方法包括:

在步骤s210中,获取包含访问信息的数据请求。

例如所述访问信息为用户标识信息、或者访问时间戳、或者为用户标识信息和访问时间戳。

在步骤s220中,根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级。

所述降级比例开关是管理员设置的开关,可用以控制允许当前用户访问时获取实时数据的比例。

为了应对在秒杀促销等特殊时间流量突然增大导致后台服务器挂掉、对请求处理不及时、或返回页面开天窗等情况,相关技术通过管理员设置流量阈值开关,管理员一旦发现流量超过该阈值后打开降级开关,所有用户的请求直接返回兜底数据。

而本实施例的技术方案与上述相关技术相比,在开关设置和降级处理上均有区别。本实施例是通过降级比例开关,以动态灵活地控制后台服务的降级比例。

所述降级比例开关需要满足管理员根据预期流量灵活设置降级比例的需求,其具体形式本实施例对此不作限定。例如元素为开标识或关标识的数组,例如将降级比例开关设置为元素为0或1的数组,将0定义为关标识,表示需要降级,将1定义为开标识表示不需要降级。

例如,根据所述访问信息进行hash运算得到hash值,将所述hash值与所述降级比例开关进行比对确定是否需要对所述数据请求进行降级。

在步骤s230中,若需要降级,则从兜底缓存中获取请求结果,若不需要降级,则根据所述数据请求获取实时数据。

本实施例通过在服务集群端获取到数据请求之后,根据访问信息和降级比例开关确定是否需要对所述数据请求进行降级,从而选择从兜底缓存中获取请求结果或根据所述数据请求获取实时数据,能够实现后台服务动态降级,能够根据流量和服务器情况灵活配置。

图3示出了根据本发明另一实施例的处理数据请求的方法,本实施例可适用于服务集群处理http和反向代理服务器转发的客户端http请求的情况,方法的执行主体为服务集群。如图3所示,本实施例所述的处理数据请求的方法包括:

在步骤s310中,当接收到通知服务器发送的通知消息时,从redis缓存中读取降级比例开关,将所述降级比例开关存放到本地缓存中。

本实施例设置了通知服务器进行通知处理,当通知服务器监听到用于存储所述降级比例开关的redis缓存有修改时发送通知消息。

因此,服务集群接收所述通知服务器发送的通知消息时,从所述redis缓存中读取所述降级比例开关,将所述降级比例开关存放到本地缓存中。

需要说明的是,通知服务器向服务集群发送通知消息可具体通过zookeeper来发送。

在步骤s320中,获取包含访问信息的数据请求。

对于大型电子商务网站来说,一般在服务集群与客户端之间,会设置http和反向代理服务器,例如nginx集群、apach、或haproxy等。

因此,通常是所述http和反向代理服务器接收客户端发送的http访问请求,根据所述http访问请求获取访问信息,向服务集群发送包含所述访问信息的数据请求。

在步骤s330中,从所述本地缓存中读取所述降级比例开关。

需要说明的是,因为通过步骤s210中,降级比例开关一旦有修改,服务集群能及时将最新的降级比例开关更新到本地缓存中,因此服务集群的本地缓存中的降级比例开关均为最新的降级比例开关。

在步骤s340中,根据所述访问信息以及所述降级比例开关确定是否需要对所述数据请求进行降级。

在步骤s350中,若需要降级,则从兜底缓存中获取请求结果,若不需要降级,则根据所述数据请求获取实时数据。

进一步地,为了避免服务集群罢工出现客户端返回结果而出现空白页的情况,所述http和反向代理服务器还可根据配置信息获取静态兜底开关,若所述静态兜底开关为关标识则根据管理员预先配置的静态兜底数据获取请求结果,不向服务集群发送所述包含所述访问信息的数据请求。

更进一步地,为了避免客户端向所述http和反向代理服务器请求失败而出面空白页的情况,所述客户端还可用于:若向所述http和反向代理服务器请求所述http访问请求失败,则根据本地缓存获取请求结果;若向所述http和反向代理服务器请求所述http访问请求成功,则将获取的请求结果存储到所述本地缓存中。

本实施例在前述实施例的基础之上,进一步采用通知的方法,一旦管理员修改了阶级比例开关,则通知服务器从redis缓存中读取降级比例开关,能保证降级处理的实时性。

图4示出了根据本发明另一实施例的处理数据请求的系统示意图,如图4所示,对后台系统来说,该处理数据请求的系统包括http和反向代理服务器(例如nginx集群410,图4中以nginx集群作为示例)、服务集群420、以及通知服务器430。

所述nginx集群410用于接收http访问请求,根据所述http访问请求获取访问信息(例如获取所述http访问请求的用户标识信息、以及获取接收所述http访问请求的时间戳),向所述服务集群420发送包含所述访问信息的数据请求;

所述服务集群420用于获取包含访问信息的数据请求,根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级,若需要降级,则从兜底缓存中获取请求结果,若不需要降级,则根据所述数据请求获取实时数据。

所述通知服务器430用于:监听用于存储所述降级比例开关的redis缓存是否有修改,若监听到所述redis缓存有修改,向所述服务集群420发送通知消息。

所述服务集群420还用于:接收到所述通知消息时从所述redis缓存中读取所述降级比例开关,将所述降级比例开关存放到所述服务集群420的本地缓存中。

进一步地,进一步地,为了避免服务集群420罢工出现客户端440返回结果而出现空白页的情况,所述nginx集群410还用于根据配置信息获取静态兜底开关,若所述静态兜底开关为关标识则根据管理员预先配置的静态兜底数据获取请求结果。

若所述静态兜底开关为开标识则根据所述http访问请求获取访问信息,向所述服务集群420发送包含所述访问信息的数据请求,并将所述服务集群420返回的请求结果存储到所述静态兜底数据中。

进一步地,为了避免客户端440向所述http和反向代理服务器请求失败而出面空白页的情况,所述客户端440还可进一步改进,例如若向所述nginx集群410请求所述http访问请求失败,则根据本地缓存获取请求结果;若向所述nginx集群410请求所述http访问请求成功,将获取的请求结果存储到所述本地缓存中。

本面通过逻辑流程图分别描述系统中各模块的处理逻辑。

图5示出了根据本发明一实施例的处理数据请求的系统中客户端处理罗辑流程图,如图5所示,本实施例所述的客户端处理罗辑包括:

在步骤s510中,客户端向后台请求数据。

在步骤s520中,判断请求数据是否成功,若是则执行步骤s540,否则执行步骤s530。

即如果请求成功则将请求结果缓存在本地,如果请求失败则使用上次请求成功的本地缓存。

在步骤s530中,使用上次缓存结果,执行步骤s550。

在步骤s540中,将本次成功请求结果缓存到本地,执行步骤s550。

在步骤s550中,进行展示,结束。

图6示出了根据本发明一实施例的处理数据请求的系统中http和反向代理服务器处理罗辑流程图,如图6所示,本实施例所述的http和反向代理服务器处理罗辑包括:

在步骤s610中,判断是否使用静态兜底,若是则执行步骤s630,否则执行步骤s620。

读取nginx配置,判断是否需要使用静态兜底数据,如果静态兜底开关已经打开则直接读取静态兜底数据,静态兜底数据是管理员预先配置好的数据,一旦服务集群不可用,则使用静态兜底数据,否则向服务集群请求数据,返回结果

在步骤s620中,请求服务集群,执行步骤s640。

在步骤s630中,使用静态兜底数据,执行步骤s640。

在步骤s640中,返回结果。

图7示出了根据本发明一实施例的处理数据请求的系统中通知服务器处理罗辑流程图,如图7所示,本实施例所述的通知服务器处理罗辑包括:

在步骤s710中,将降级比例开关写入redis。

即管理员修改降级比例开关后,将降级比例开关写入redis中。

在步骤s720中,监听开关是否有变化,若是则执行步骤s630,否则重复执行本步骤s720。

通知中心监控到降级比例开关有变化,通知中心通过zookeeper通知服务集群更新降级比例开关。

在步骤s730中,通知服务集群降级比例开关变化。

在步骤s740中,服务集群从redis中读取降级比例开关存入本地缓存。

服务集群收到通知中心的更新,则从redis中读取降级比例开关,放入服务器本地缓存。

图8示出了根据本发明一实施例的处理数据请求的系统中服务集群处理罗辑流程图,如图8所示,本实施例所述的服务集群处处理罗辑包括:

在步骤s810中,接收客户端请求。

在步骤s820中,将用户uuid和时间戳进行hash运算。

例如,每个客户端都有一个唯一标识符uuid,将uuid和当前系统时间合在一起进行hash,hash值的范围为0到100。

在步骤s830中,将hash运算结果和降级比例开关进行匹配运算。

例如将hash计算得到的值和系统本地缓存的信息进行对比,判断是否需要降级,如果需要降级,则获取兜底缓存中的数据;如果不需要降级,则请求服务计算模块获取实时数据,并将成功获取到的数据放入兜底缓存中,作为最新的动态兜底数据。

在步骤s840中,确定是否需要降级,若是则执行步骤s770,否则重复执行本步骤s850。

在步骤s850中,获取实时数据。

在步骤s860中,将实时数据放入兜底缓存。

在步骤s870中,获取兜底缓存数据。

在步骤s880中,返回结果。

图9示出了一种处理数据请求的系统中服务集群进行hash运算过程示意图,用户的每个请求都会带上uuid,uuid是用户的唯一标示,每个用户拥有一个唯一的标识,ttime表示服务器的当前时间,将两者合在一起进行hash得到hash值,并将得到的hash值和降级比例开关对比,降级比例开关为下标0到99的数组,数组的值为0和1,0表示获取实时数据,1表示使用动态兜底数据。例如0b0a2e7e152410eae7a09276211bdde3e141df5d表示用户的uuid,1488857570表示当前服务器的unix时间戳,两者相加并hash得到的值为2,从开关数组中获取下标为2的值,为1则表示需要使用兜底数据。

上述实施例的技术方案的示例具有如下特点:

首先,采用三级兜底的技术方案:后台动态降级,后台静态降级和客户端缓存降级,每一级对用户体验的友好程度依次降低,可靠性依次增高,降级优先级依次下降。

前端采用本地缓存的兜底方式,后台采用动态兜底和静态兜底相结合的方式,三级兜底保证了服务的高可用性,避免了用户出现空白页面的情况。

其次,通过将用户uuid和时间戳结合,并用哈希函数映射到0到99范围内,可以动态灵活控制后台服务的降级比例。实现了后台服务的动态降级,管理员可以灵活控制服务的降级比例,在降低服务器压力的同时保证了用户的体验。

另外,采用zookeeper通知的方法,一旦用户修改了降级比例开关,则通知服务器从redis缓存中读取降级比例开关,保证了兜底开关的实时性和统一性。

图10示出了根据本发明一实施例的处理数据请求的装置的框图,如图10所示,本实施例所述的处理数据请求的装置包括请求获取单元1010、降级判定单元1020、以及请求处理单元1030。

该请求获取单元1010,用于获取包含访问信息的数据请求;

该降级判定单元1020,用于根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级;

该请求处理单元1030,用于若需要降级,则从兜底缓存中获取请求结果,若不需要降级,则根据所述数据请求获取实时数据。

根据一些实施例,所述降级比例开关包括元素为开标识或关标识的数组。

根据一些实施例,所述降级判定单元1020用于:

根据所述访问信息进行hash运算得到hash值;

以所述hash值为索引从所述数组中获取对应的元素;

若获取的元素为开标识,则确定不需要对所述数据请求进行降级,若获取的元素为关标识,则确定需要对所述数据请求进行降级。

根据一些实施例,所述访问信息包括用户标识信息和/或访问时间戳。

关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本实施例提供的处理数据请求的装置可执行本发明方法实施例所提供的处理数据请求的方法,具备执行方法相应的功能模块和有益效果。

图11示出了根据本发明另一实施例的处理数据请求的装置的框图,如图11所示,本实施例所述的处理数据请求的装置包括:请求获取单元1110、开关更新单元1120、降级判定单元1130、以及请求处理单元1140。

该请求获取单元1110被配置为,用于获取包含访问信息的数据请求。

该开关更新单元1120被配置为,用于接收所述通知服务器发送的通知消息时,从所述redis缓存中读取所述降级比例开关,将所述降级比例开关存放到本地缓存中。

该降级判定单元1130被配置为,用于根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级。

该请求处理单元1140被配置为,用于若需要降级,则从兜底缓存中获取请求结果,若不需要降级,则根据所述数据请求获取实时数据。

需要说明的是,当通知服务器监听到用于存储所述降级比例开关的redis缓存有修改时发送通知消息。

根据一些实施例,所述降级比例开关包括元素为开标识或关标识的数组。

根据一些实施例,所述降级判定单元1130用于:

根据所述访问信息进行hash运算得到hash值;

以所述hash值为索引从所述数组中获取对应的元素;

若获取的元素为开标识,则确定不需要对所述数据请求进行降级,若获取的元素为关标识,则确定需要对所述数据请求进行降级。

根据一些实施例,所述访问信息包括用户标识信息和/或访问时间戳。

根据一些实施例,所述开关更新单元1120用于:接收所述通知服务器通过zookeeper发送的通知消息。

根据一些实施例,http和反向代理服务器用于根据客户端的http访问请求获取所述访问信息;

所述请求获取单元1110用于:从所述http和反向代理服务器接收包含所述访问信息的数据请求。

根据一些实施例,所述http和反向代理服务器还用于根据配置信息获取静态兜底开关,若所述静态兜底开关为关标识则根据管理员预先配置的静态兜底数据获取请求结果,不向服务集群发送所述包含所述访问信息的数据请求。

根据一些实施例,所述http和反向代理服务器为nginx集群。

根据一些实施例,所述客户端用于:若向所述http和反向代理服务器请求所述http访问请求失败,则根据本地缓存获取请求结果;若向所述http和反向代理服务器请求所述http访问请求成功,则将获取的请求结果存储到所述本地缓存中。

本实施例提供的处理数据请求的装置可执行本发明方法实施例所提供的处理数据请求的方法,具备执行方法相应的功能模块和有益效果。

图12示出了根据本发明一实施例的服务集群,如图12所示,服务集群1200可包括处理器1210、存储器1220、发射器1230及接收器1240。

存储器1220可存储用于处理器1210控制操作处理的指令。存储器1220可包括易失性或非易失性存储器,如静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)等,本发明对此没有限制。

处理器1210可调用存储器1220中存储的指令控制相关操作。根据一实施例,存储器1220存储用于处理器1210控制以下操作的指令:

获取包含访问信息的数据请求;

根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级;

若需要降级,则从兜底缓存中获取请求结果,若不需要降级,则根据所述数据请求获取实时数据。

易于理解,存储器1220还可存储用于处理器1210控制根据本发明实施例的其他操作的指令,这里不再赘述。

处理器1210还可控制发射器1230和接收器1240进行信号收发等。

通过以上的详细描述,本领域的技术人员易于理解,根据本发明实施例的系统和方法具有以下优点中的一个或多个。

根据本发明的实施例,所述降级比例开关包括元素为开标识或关标识的数组。

根据本发明的一些实施例,根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级包括:

根据所述访问信息进行hash运算得到hash值;

以所述hash值为索引从所述数组中获取对应的元素;

若获取的元素为开标识,则确定不需要对所述数据请求进行降级,若获取的元素为关标识,则确定需要对所述数据请求进行降级。

根据本发明的一些实施例,当通知服务器监听到用于存储所述降级比例开关的redis缓存有修改时发送通知消息;

接收所述通知服务器发送的通知消息时,从所述redis缓存中读取所述降级比例开关,将所述降级比例开关存放到本地缓存中。

根据一些实施例,本发明还提供一种非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。当存储介质中的指令由终端的处理器执行时,使得终端能够执行下述方法:获取包含访问信息的数据请求;根据所述访问信息和降级比例开关确定是否需要对所述数据请求进行降级;

若需要降级,则从兜底缓存中获取请求结果,若不需要降级,则根据所述数据请求获取实时数据。

本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。

本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

以上具体地示出和描述了本发明的示例性实施例。应该理解,本发明不限于所公开的实施例,相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效布置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1