一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种业务请求的处理方法和装置与流程

2021-12-07 20:29:00 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种业务请求的处理方法和装置。


背景技术:

2.在数据通信网络中,服务器接收的业务请求量随着网络用户数量的增大而迅猛增大,使服务器承受着较大的并发压力,并且在出现由于网络、磁盘、软件等因素导致的服务器处理业务请求失败的情况时,终端常常会发起更多的业务请求;当服务器在短时间内的业务请求量超过自身所能承受的负荷程度时,容易发生服务器雪崩、系统瘫痪的现象。现有技术中,在服务器将要雪崩的情况下,常常采用限制客户端发出请求这种依赖客户端的机制,来防止服务器雪崩。
3.在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
4.1)在客户端种类较多的情况下,尤其考虑到恶意客户端的存在,目前依赖客户端的机制无法很好地实现对服务器的有效保护,服务器依然面临着接收大量业务请求而带来的雪崩风险;
5.2)对于处理失败的请求所产生的异常信息缺少统计分析,不利于从大数据的角度追溯可能导致服务器发生雪崩的原因。


技术实现要素:

6.有鉴于此,本发明实施例提供一种业务请求的处理方法和装置,能够通过预设的处理队列,从服务器端限制接收业务请求,实现对服务器的有效保护,进而预防雪崩的产生;并且还能对业务请求处理失败后产生的异常信息进行记录、统计、分析,为追溯可能导致服务器发生雪崩的原因提供数据支撑。
7.为实现上述目的,根据本发明实施例的一个方面,提供了一种业务请求的处理方法,包括:
8.接收业务请求;
9.判断是否将与所述业务请求对应的业务请求信息存储至预设的处理队列;
10.将所述业务请求信息存储至所述处理队列后,对所述处理队列中存储的业务请求进行处理,将业务请求处理失败产生的异常信息存储至所述处理队列,以供统计分析所述异常信息使用。
11.可选地,在判断是否将所述业务请求信息存储至预设的处理队列之前,还包括:
12.根据通信协议或语法解析规则判断所接收到的业务请求是否为异常请求;
13.若是,则拦截所述异常请求。
14.可选地,所述业务请求信息中至少包括:终端标识信息;
15.所述将所述业务请求信息存储至预设的处理队列,包括:
16.根据所述终端标识信息,确定用于存储所述业务请求的处理队列,所述处理队列具有长度阈值。
17.可选地,判断在单位时间内接收到的业务请求量是否超过阈值单位量;若否,则根据所述处理队列的长度阈值,将部分所述业务请求信息存储至所述处理队列;若是,则拦截所述业务请求。
18.可选地,在处理所述业务请求失败后,处理所述业务请求失败后产生的异常信息以及所述业务请求被对应地存储在所述处理队列,以使得所述业务请求对应的重试请求被拦截。
19.可选地,处理所述业务请求失败的次数达到次数阈值时,,从所述处理队列中删除所述业务请求。
20.可选地,所述异常信息包括以下至少之一:异常类型,终端标识信息,异常发生时间。
21.可选地,所述统计分析所述异常信息,包括:
22.获得所述异常类型、所述终端标识信息,所述异常发生时间之间任意两者的对应关系。
23.根据本发明实施例的再一个方面,提供了一种业务请求的处理装置,包括:
24.接收模块,用于接收业务请求;
25.队列管理模块,用于判断是否将与所述业务请求对应的业务请求信息存储至预设的处理队列;以及在将所述业务请求信息存储至所述处理队列后,对所述处理队列中存储的业务请求进行处理,将业务请求处理失败产生的异常信息存储至所述处理队列,以供统计分析所述异常信息使用。
26.可选地,所述队列管理模块在判断是否将所述业务请求信息存储至预设的处理队列之前,还包括:
27.根据通信协议或语法解析规则判断所接收到的业务请求是否为异常请求;
28.若是,则拦截所述异常请求。
29.可选地,所述业务请求信息中至少包括:终端标识信息;
30.所述队列管理模块将所述业务请求信息存储至预设的处理队列,包括:
31.根据所述终端标识信息,确定用于存储所述业务请求的处理队列,所述处理队列具有长度阈值。
32.可选地,判断在单位时间内接收到的业务请求量是否超过阈值单位量;若否,则根据所述处理队列的长度阈值,将部分所述业务请求信息存储至所述处理队列;若是,则拦截所述业务请求。
33.可选地,在服务器处理所述业务请求失败后,所述队列管理模块用于将处理所述业务请求失败后产生的异常信息以及所述业务请求对应地存储在所述处理队列,以使得所述业务请求对应的重试请求被拦截。
34.可选地,在服务器处理所述业务请求失败的次数达到次数阈值时,所述队列管理模块从所述处理队列中删除所述业务请求。
35.可选地,所述异常信息包括以下至少之一:异常类型,终端标识信息,异常发生时间。
36.可选地,所述装置还包括异常分析模块,所述异常分析模块统计分析所述异常信息,包括:
37.获得所述异常类型、所述终端标识信息,所述异常发生时间之间任意两者的对应关系。
38.根据本发明实施例的另一个方面,提供了一种业务请求的处理电子设备,包括:
39.一个或多个处理器;
40.存储装置,用于存储一个或多个程序,
41.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明提供的业务请求的处理方法。
42.根据本发明实施例的还一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的业务请求的处理方法。
43.上述发明中的一个实施例具有如下优点或有益效果:因为采用通过预设的处理队列,从服务器端限制接收业务请求,并对业务请求处理失败后产生的异常信息进行记录、统计、分析的技术手段,所以克服了现有技术中依赖客户端的机制导致的无法很好地实现对服务器的有效保护的技术问题,以及对处理失败的请求所产生的异常信息缺少记录分析的技术问题,能够达到从服务器端限制接收业务请求以实现服务器的自我保护,进而预防雪崩的产生的技术效果,以及对所述异常信息进行记录统计分析进而为追溯可能导致服务器发生雪崩的原因提供数据支撑的技术效果。
44.上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
45.附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
46.图1是根据本发明第一实施例的一种业务请求的处理方法的流程示意图;
47.图2是根据本发明第二实施例的一种业务请求的处理方法的流程示意图;
48.图3是根据本发明第三实施例的一种业务请求的处理方法的流程示意图;
49.图4是根据本发明第四实施例的一种业务请求的处理方法的流程示意图;
50.图5是根据本发明第五实施例的一种业务请求的处理方法的流程示意图;
51.图6是根据本发明第六实施例的一种业务请求的处理装置的主要模块的示意图;
52.图7是本发明实施例可以应用于其中的示例性系统架构图;
53.图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
54.以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
55.图1是根据本发明第一实施例的一种业务请求的处理方法的流程示意图,该业务请求的处理方法包括:
56.步骤s101、接收业务请求;
57.步骤s102、判断是否将与所述业务请求对应的业务请求信息存储至预设的处理队列;
58.步骤s103、将所述业务请求信息存储至所述处理队列后,对所述处理队列中存储的业务请求进行处理,将业务请求处理失败产生的异常信息存储至所述处理队列,以供统计分析所述异常信息使用。
59.所述业务请求可以是从客户端发出的对服务器的访问请求、调用资源请求等;
60.根据本发明中的方法,可以通过预设的处理队列,从服务器端限制接收业务请求,实现对服务器的有效保护,进而预防雪崩的产生;并且还能对业务请求处理失败后产生的异常信息进行记录、统计、分析,为追溯可能导致服务器发生雪崩的原因提供数据支撑。
61.在一些实施例中,在判断是否将所述业务请求信息存储至预设的处理队列之前,还包括:
62.根据通信协议或语法解析规则判断所接收到的业务请求是否为异常请求;若是,则拦截所述异常请求。
63.可以在接收请求的入口,根据通信协议或语法解析规则对业务请求进行初步过滤,快速地将不符合通信协议或不符合语法解析规则的业务请求作为异常请求过滤掉,以避免在后续流程中耗费或占用不必要的资源来处理这些异常请求;在本发明可选的实施例中,所述拦截所述异常请求可以是不将所述异常请求存储至处理队列,直接丢弃所述异常请求。例如,对于基于sip(会话发起协议,session initial protocol)的消息(业务请求),如果该消息中的、用于标识session的id(diag-id)与已存储的id不同,并且该消息也并不是用于创建新session的消息,那么可以认为该业务请求不符合通信协议(即,本示例中的sip),被丢弃。再例如,对于基于xml(可扩展标记语言,extensible markup language)的业务请求,如果其存在xml相关的语法规则,及无法根据xml解析规则对该业务请求进行解析,那么该业务请求也将被丢弃。
64.在一些实施例中,所述业务请求信息中至少包括:终端标识信息;
65.所述将所述业务请求信息存储至预设的处理队列,包括:
66.根据所述终端标识信息,确定用于存储所述业务请求的处理队列,所述处理队列具有长度阈值。
67.进一步地,在一些实施例中,判断在单位时间内接收到的业务请求量是否超过阈值单位量;若否,则根据所述处理队列的长度阈值,将部分所述业务请求信息存储至所述处理队列;若是,则拦截所述业务请求。
68.终端标识信息可以看作是一种可识别的用户终端特征;具体地,可以表征业务请求所对应的终端系统类型或渠道类型,例如,可以根据终端标识信息确定该业务请求是来自android手机应用、ios手机应用、手机端浏览器或pc端浏览器等;再例如,可以根据终端标识信息确定该业务请求是来自哪些终端厂商,即该终端标识信息指示了手机厂商标识符;在一些实际应用场景中,终端标识信息还可以用于识别预先约定好的具有一定权限的用户终端,例如,可以根据终端标识信息确定用户id;终端标识信息可以在后续步骤中用于对业务请求以及处理业务请求产生的异常信息进行统计分析,进而为构建与服务器相关的大数据提供数据支撑。
69.在一些实际应用场景中,还可以在根据通信协议或语法解析规则对业务请求进行
初步过滤之前,在接收请求的入口记录接收到的所有业务请求的信息,如发送时间信息、终端标识信息等,以用来统计分析来自于不同类型终端的业务请求在时间分布上的特征。
70.相应地,可以按照终端标识的具体分类,为每一类终端标识配置至少一个处理队列,用于存储与之对应的业务请求,以供被服务器处理;可以为处理队列设置长度阈值,该长度阈值可以根据实际情况而设定,可以用于与队列当前长度作比较,以判断是否将业务请求信息存储至与之对应的处理队列中,具体可以是:若与业务请求对应的队列的当前长度还未超过长度阈值,则可以将该业务请求信息存储至处理队列中;若与业务请求对应的队列的当前长度已达到长度阈值,则可以拦截该业务请求,不将该业务请求存储至处理队列,直接丢弃;通过设置处理队列,可以有效缓解服务器处理业务请求的压力,实现对服务器的有效保护;
71.所述阈值单位量可以根据服务器的实际处理能力来设置。在一个实施例中,可以根据服务器的i/o能力来设置阈值单位量;例如,服务器的i/o能力为100qps(即,每秒可接收100个业务请求),则可以将阈值单位量设置为等于或略小于100qps的值,以实现对服务器的保护。在一些优选的实施例中,可以在判断是否将业务请求存储至处理队列之前,先判断在单位时间内接收到的业务请求量是否超过阈值单位量;若超过,可以认为此种情况很可能对服务器正常处理业务请求带来压力进而可能导致服务器崩溃,在此种情况下可以通过直接对业务请求进行拦截以限制服务器接收业务请求,进而可以避免耗费或占用不必要的资源,实现对服务器的有效保护;若不超过,可以认为在此种情况下从客户端发来的业务请求量还不会导致服务器的崩溃,可以使用处理队列来限制服务器接收和处理业务请求,以实现对服务器的有效保护。
72.图2是根据本发明第二实施例的一种业务请求的处理方法的流程示意图,如图2所示,包括:
73.步骤s201、接收客户端发送的业务请求;
74.步骤s202、判断业务请求是否为异常请求;其中,可以根据通信协议或语法解析规则进行;若是,则执行步骤s203;若否,则执行步骤s206;
75.步骤s203、判断在单位时间内接收到的业务请求量是否超过阈值单位量;若否,则执行步骤s204;若是,则执行步骤s206;
76.步骤s204、判断是否将业务请求信息存储至处理队列;例如,判断处理队列的当前长度是否适应于存储接收到的业务请求等;其中,所述处理队列可以是基于业务请求的终端标识信息类型而设置的;若是,则执行步骤s205;若否,则执行步骤s206;
77.步骤s205、将业务请求信息存储至处理队列,以供服务器处理这些业务请求;
78.步骤s206、拦截相应的业务请求,不将业务请求存储至处理队列,可以直接丢弃;具体地,被拦截的业务请求包括:步骤s202中被判断为异常请求的业务请求,步骤s203中在单位时间内接收到的业务请求量超过阈值单位量的情况下接收到的业务请求,以及步骤s204中被判断为不存储至处理队列的业务请求。
79.在一些实施例中,在处理所述业务请求失败后,处理所述业务请求失败后产生的异常信息以及所述业务请求被对应地存储在所述处理队列,以使得所述业务请求对应的重试请求被拦截。
80.进一步地,在一些实施例中,处理所述业务请求失败的次数达到次数阈值时,从所
述处理队列中删除所述业务请求。
81.当处理队列中的业务请求被服务器处理失败后,可以对处理失败后产生的异常信息进行记录,以供在本发明后续步骤中进行统计分析,同时还可以为该处理失败的业务请求设置重试机制;
82.所述重试机制具体可以是:为业务请求设置重试的次数阈值,对于处理失败的业务请求可以先判断其被处理失败的次数是否达到次数阈值,若未达到,可以将该业务请求重新存入处理队列或留在处理队列,以使得服务器可继续尝试处理该业务请求;若业务请求被处理失败的次数已达到次数阈值,则可以将该业务请求从其所在的处理队列中删除;
83.其中,所述次数阈值可以根据实际情况进行设置,可以对所有业务请求设置相同的次数阈值,也可以根据终端标识信息对业务请求设置不同的次数阈值,如:对于一些具有特定终端标识信息的业务请求可以设置较高的次数阈值,以增加这些业务请求被处理的次数进而增加其被处理成功的可能性;或对于另一些具有特定终端标识信息的业务请求(如:恶意客户端发送的业务请求)可以设置较低的次数阈值,以减少这些业务请求被处理的次数,进而避免耗费或占用不必要的资源,达到减轻服务器处理压力的效果;
84.并且,还可以设置:当接收到新的业务请求、确定好与之对应的处理队列时,可以先判断该处理队列中是否已存在同一业务请求,若存在,可以对所述新的业务请求进行拦截,不将其存入处理队列,进而可以使该处理队列中不出现重复相同的业务请求,以避免耗费或占用不必要的资源,可以减轻服务器的处理压力。可以理解的是,也可以将该新的业务请求依然存储至相应的处理队列,本公开对此不做限制。
85.为方便理解上述实施例中的方法流程,可以参考以下图3和图4:
86.图3是根据本发明第三实施例的一种业务请求的处理方法的流程示意图;具体地,图3是根据业务请求中的终端标识信息确定处理队列,以及在这之后判断是否将业务请求信息存储至处理队列的方法的主要步骤示意图,如图3所示,包括:
87.步骤s301、根据业务请求信息中的终端标识信息确定与之对应的处理队列;
88.步骤s302、判断处理队列的当前长度是否小于该处理队列的长度阈值;若是,则执行步骤s303;若否,则执行步骤s305;
89.步骤s303、判断处理队列中是否有未达到上述次数阈值的同一业务请求,也即判断该业务请求是否已被服务器失败处理过;若否,则说明该业务请求为新的业务请求,因而将执行步骤s304;若是,则说明服务器已尝试处理过该业务请求,但并未处理成功,因而将执行步骤s305;
90.步骤s304、将业务请求存储至处理队列,以供服务器进行处理;
91.步骤s305、拦截相应的业务请求,不将业务请求存储至处理队列,可以直接丢弃。
92.在一些实际情况中,步骤s302和步骤s303这两种判断步骤的先后顺序可以不固定,可以先执行步骤s302的判断后执行步骤s303的判断,也可以先执行步骤s303的判断后执行步骤s302的判断,也可以同时执行步骤s302的判断和步骤s303的判断;只有当步骤s302中判断为是以及步骤s303中判断为否时,才执行步骤s304,否则都执行步骤s305。
93.图4是根据本发明第四实施例的一种业务请求的处理方法的流程示意图;具体地,图4是将业务请求存储至处理队列后服务器对业务请求的处理方法的主要步骤示意图,如图4所示,包括:
94.步骤s401、将业务请求信息存储至处理队列;
95.步骤s402、处理队列中的业务请求被服务器处理;
96.步骤s403、服务器是否成功处理业务请求;若是,则执行步骤s404;若否,则执行步骤s405;
97.步骤s404、服务器对客户端的业务请求做出响应;
98.步骤s405、服务器将业务请求被处理失败后产生的异常信息记录至处理队列;
99.步骤s406、判断该业务请求被处理失败的次数是否达到次数阈值;若是,则执行步骤s407;若否,则不删除该业务请求,可以将其留在处理队列中,以供服务器再次对其进行处理;
100.步骤s407、将步骤s406中被判断为是的业务请求从其所在的处理队列中删除。
101.在一些实施例中,所述异常信息包括以下至少之一:异常类型,终端标识信息,异常发生时间。
102.进一步地,在一些实施例中,所述统计分析所述异常信息可以包括:获得所述异常类型、所述终端标识信息,所述异常发生时间之间任意两者的对应关系。
103.对业务请求被处理失败后产生的异常信息进行记录、统计、分析,可以从大数据的角度追溯可能导致服务器发生雪崩的原因;
104.其中,异常信息中的异常类型可以表征出一些具体的异常问题,如:若异常类型与“请求资源不存在”相关,可以考虑是否是数据库资源部分存在异常,或业务请求所请求的资源存在异常;若异常类型与“服务器内部错误”相关,可以考虑是否是网络堵塞因素,或是服务器本身存在异常;异常信息中的终端标识信息可以表征出终端系统类型的异常原因或渠道类型的异常原因,如:若大批量的来自于同一种终端系统的业务请求被处理失败,可以认为对于该种类型的终端系统存在相关问题;异常信息中的异常发生时间可以表征出时间相关的异常原因,如:若某一时段中发生大批量的具有不同种类终端标识的各种业务请求被处理失败的情况,可以认为该时段可能存在网络异常;
105.统计分析获得所述异常类型、所述终端标识信息,所述异常发生时间这三者中任意两者的对应关系,可以获得更多的分析结果,追溯更明确的导致业务请求被处理失败的问题原因,进而对问题进行处理以使得服务器能够对业务请求处理成功,减少终端因业务请求被处理失败而重新发出的大量的业务请求,从而降低服务器雪崩的可能性。
106.图5是根据本发明第五实施例的一种业务请求的处理方法的流程示意图,如图3所示,包括:
107.步骤s501、获得业务请求被处理失败后产生的异常信息,异常信息至少包括:异常类型,终端标识信息,异常发生时间;
108.步骤s502、获得异常类型、终端标识信息,异常发生时间之间任意两者的对应关系。
109.可以理解的是,本公开图2-4所示的流程示意图中,并不限定具体步骤的执行顺序,例如可以先判断队列的当前长度是否适应于存储业务请求(步骤s204),再判断业务请求是否为异常请求(步骤s202),或者可以先判断处理队列中是否已存有相同的业务请求(步骤s303),再判断队列的当前长度是否适应于存储业务请求(步骤s302)。本领域的技术人员可以理解,上述顺序的变更并不影响本公开的思想。
110.图6是根据本发明第六实施例的一种业务请求的处理装置的主要模块的示意图,如图6所示,业务请求的处理装置600包括:
111.接收模块601,用于接收业务请求;
112.队列管理模块602,用于判断是否将与所述业务请求对应的业务请求信息存储至预设的处理队列;以及在将所述业务请求信息存储至所述处理队列后,对所述处理队列中存储的业务请求进行处理,将业务请求处理失败产生的异常信息存储至所述处理队列,以供统计分析所述异常信息使用。
113.所述业务请求可以是从客户端发出的对服务器的访问请求、调用资源请求等;
114.根据本发明中的方法和装置,可以通过预设的处理队列,从服务器端限制接收业务请求,实现对服务器的有效保护,进而预防雪崩的产生;并且还能对业务请求处理失败后产生的异常信息进行记录、统计、分析,为追溯可能导致服务器发生雪崩的原因提供数据支撑。
115.在一些实施例中,所述队列管理模块602在判断是否将所述业务请求信息存储至预设的处理队列之前,还包括:
116.根据通信协议或语法解析规则判断所接收到的业务请求是否为异常请求;若是,则拦截所述异常请求。
117.可以在服务器接收请求的入口,根据通信协议或语法解析规则对业务请求进行初步过滤,快速地将不符合通信协议或不符合语法解析规则的业务请求作为异常请求过滤掉,以避免耗费或占用不必要的资源来处理这些异常请求;在本发明可选的实施例中中,所述拦截所述异常请求可以是不将所述异常请求存储至处理队列,也可以是直接丢弃所述异常请求。例如,对于基于sip(会话发起协议,session initial protocol)的消息(业务请求),如果该消息中的、用于标识session的id(diag-id)与已存储的id不同,并且该消息也并不是用于创建新session的消息,那么可以认为该业务请求不符合通信协议(即,本示例中的sip),被丢弃。再例如,对于基于xml(可扩展标记语言,extensible markup language)的业务请求,如果其存在xml相关的语法规则,及无法根据xml解析规则对该业务请求进行解析,那么该业务请求也将被丢弃。
118.在一些实施例中,所述业务请求信息中至少包括:终端标识信息;
119.所述队列管理模块602将所述业务请求信息存储至预设的处理队列,包括:根据所述终端标识信息,确定用于存储所述业务请求的处理队列,所述处理队列具有长度阈值。
120.在一些实施例中,判断在单位时间内接收到的业务请求量是否超过阈值单位量;若否,所述队列管理模块602则根据所述处理队列的长度阈值,将部分所述业务请求信息存储至所述处理队列;若是,所述队列管理模块602则拦截所述业务请求。
121.终端标识信息可以看作是一种可识别的用户终端特征;具体地,可以表征业务请求所对应的终端系统类型或渠道类型,例如,可以根据终端标识信息确定该业务请求是来自android手机应用、ios手机应用、手机端浏览器或pc端浏览器等;再例如,可以根据终端标识信息确定该业务请求是来自哪些终端厂商,即该终端标识信息指示了手机厂商标识符;在一些实际应用场景中,终端标识信息还可以用于识别预先约定好的具有一定权限的用户终端,例如,可以根据终端标识信息确定用户id;终端标识信息可以在后续步骤中用于对业务请求以及处理业务请求产生的异常信息进行统计分析,进而为构建与服务器相关的
大数据提供数据支撑;
122.在一些实际应用场景中,还可以在根据通信协议或语法解析规则对业务请求进行初步过滤之前,在接收请求的入口记录接收到的所有业务请求的信息,如发送时间信息、终端标识信息等,以用来统计分析来自于不同类型终端的业务请求在时间分布上的特征。
123.相应地,可以按照终端标识的具体分类,为每一类终端标识配置至少一个处理队列,用于存储与之对应的业务请求,以供被服务器处理;可以为处理队列设置长度阈值,该长度阈值可以根据实际情况而设定,可以用于与队列当前长度作比较,以判断是否将业务请求信息存储至与之对应的处理队列中,具体可以是:若与业务请求对应的队列的当前长度还未超过长度阈值,则可以将该业务请求信息存储至处理队列中;若与业务请求对应的队列的当前长度已达到长度阈值,则可以拦截该业务请求,不将该业务请求存储至处理队列,直接丢弃;通过设置处理队列,可以有效缓解服务器处理业务请求的压力,实现对服务器的有效保护;
124.所述阈值单位可以根据服务器的实际处理能力来设置,在一些优选的实施例中,可以在判断是否将业务请求存储至处理队列之前,先判断在单位时间内接收到的业务请求量是否超过阈值单位量;若超过,可以认为此种情况将对服务器正常处理业务请求带来压力进而可能导致服务器崩溃,在此种情况下可以使用本发明中的方法继续判断是否将业务请求存储至处理队列,以供被服务器处理;若不超过,可以认为在此种情况下从客户端发来的业务请求量还不会导致服务器的崩溃,可以不使用处理队列来限制服务器接收处理业务请求,进而可以避免耗费或占用不必要的资源。
125.在一些实施例中,在服务器处理所述业务请求失败后,所述队列管理模块602用于将处理所述业务请求失败后产生的异常信息以及所述业务请求对应地存储在所述处理队列,以使得所述业务请求对应的重试请求被拦截。
126.在一些实施例中,在服务器处理所述业务请求失败的次数达到次数阈值时,所述队列管理模块602从所述处理队列中删除所述业务请求。
127.当处理队列中的业务请求被服务器处理失败后,可以对处理失败后产生的异常信息进行记录,以供在本发明后续步骤中进行统计分析,同时还可以为该处理失败的业务请求设置重试机制;
128.所述重试机制具体可以是:为业务请求设置重试的次数阈值,对于处理失败的业务请求可以先判断其被处理失败的次数是否达到次数阈值,若未达到,可以将该业务请求重新存入处理队列,以使得当下一次轮到该业务请求时继续被服务器处理;若业务请求被处理失败的次数已达到次数阈值,则可以将该业务请求从其所在的处理队列中删除;
129.其中,所述次数阈值可以根据实际情况进行设置,可以对所有业务请求设置相同的次数阈值,也可以根据终端标识信息对业务请求设置不同的次数阈值,如:对于一些具有特定终端标识信息的业务请求可以设置较高的次数阈值,以增加这些业务请求被处理的次数进而增加其被处理成功的可能性;或对于另一些具有特定终端标识信息的业务请求(如:恶意客户端发送的业务请求)可以设置较低的次数阈值,以减少这些业务请求被处理的次数,进而避免耗费或占用不必要的资源,达到减轻服务器处理压力的效果;
130.并且,还可以设置:当接收到新的业务请求、确定好与之对应的处理队列时,可以先判断该处理队列中是否已存在同一业务请求,若存在,可以对所述新的业务请求进行拦
截,不将其存入处理队列,进而可以使该处理队列中不出现重复相同的业务请求,以避免耗费或占用不必要的资源,可以减轻服务器的处理压力。
131.在一些实施例中,所述异常信息包括以下至少之一:异常类型,终端标识信息,异常发生时间;所述装置还包括异常分析模块603,
132.在一些实施例中,所述异常分析模块603统计分析所述异常信息,包括:获得所述异常类型、所述终端标识信息,所述异常发生时间之间任意两者的对应关系。
133.对业务请求被处理失败后产生的异常信息进行记录、统计、分析,可以从大数据的角度追溯可能导致服务器发生雪崩的原因;
134.其中,异常信息中的异常类型可以表征出一些具体的异常问题,如:若异常类型与“请求资源不存在”相关,可以考虑是否是数据库资源部分存在异常,或业务请求所请求的资源存在异常;若异常类型与“服务器内部错误”相关,可以考虑是否是网络堵塞因素,或是服务器本身存在异常;异常信息中的终端标识信息可以表征出终端系统类型的异常原因或渠道类型的异常原因,如:若大批量的来自于同一种终端系统的业务请求被处理失败,可以认为对于该种类型的终端系统存在相关问题;异常信息中的异常发生时间可以表征出时间相关的异常原因,如:若某一时段中发生大批量的具有不同种类终端标识的各种业务请求被处理失败的情况,可以认为该时段可能存在网络异常;
135.统计分析获得所述异常类型、所述终端标识信息,所述异常发生时间这三者中任意两者的对应关系,可以获得更多的分析结果,追溯更明确的导致业务请求被处理失败的问题原因,进而对问题进行处理以使得服务器能够对业务请求处理成功,减少终端因业务请求被处理失败而重新发出的大量的业务请求,从而降低服务器雪崩的可能性。
136.图7示出了可以应用本发明实施例的业务请求的处理方法或业务请求的处理装置的示例性系统架构700。
137.如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
138.用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
139.终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
140.服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。
141.需要说明的是,本发明实施例所提供的业务请求的处理方法一般由服务器705执行,相应地,业务请求的处理装置一般设置于服务器705中。
142.应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
143.下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范
围带来任何限制。
144.如图8所示,计算机系统800包括中央处理单元(cpu)801,其可以根据存储在只读存储器(rom)802中的程序或者从存储部分808加载到随机访问存储器(ram)803中的程序而执行各种适当的动作和处理。在ram 803中,还存储有系统800操作所需的各种程序和数据。cpu 801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
145.以下部件连接至i/o接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至i/o接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
146.特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(cpu)801执行时,执行本发明的系统中限定的上述功能。
147.需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
148.附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要
注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
149.描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、队列管理模块、异常分析模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
150.作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:步骤s101、接收业务请求;步骤s102、判断是否将与所述业务请求对应的业务请求信息存储至预设的处理队列;步骤s103、将所述业务请求信息存储至所述处理队列后,对所述处理队列中存储的业务请求进行处理,将业务请求处理失败产生的异常信息存储至所述处理队列,以供统计分析所述异常信息使用。
151.根据本发明实施例的技术方案,因为采用通过预设的处理队列,从服务器端限制接收业务请求,并对业务请求处理失败后产生的异常信息进行记录、统计、分析的技术手段,所以克服了现有技术中依赖客户端的机制导致的无法很好地实现对服务器的有效保护的技术问题,以及对处理失败的请求所产生的异常信息缺少记录分析的技术问题,能够达到从服务器端限制接收业务请求以实现服务器的自我保护,进而预防雪崩的产生的技术效果,以及对所述异常信息进行记录统计分析进而为追溯可能导致服务器发生雪崩的原因提供数据支撑的技术效果。
152.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献