一种请求处理方法、装置及系统的制作方法

文档序号:6504079阅读:144来源:国知局
一种请求处理方法、装置及系统的制作方法
【专利摘要】本发明实施例公开了一种请求处理方法,用于根据请求的处理时间动态地调整请求的执行优先级和资源分配。本发明实施例方法包括:接收业务分配服务器发送的远程过程调用RPC请求,将所述RPC请求加入服务请求队列;根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。
【专利说明】一种请求处理方法、装置及系统

【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种请求处理方法、装置及系统。

【背景技术】
[0002]互联网应用如电子邮件、搜索、网络购物、社交网络、在线视频、网络地图等,已经成为人们生活的一部分。这些应用往往要为上亿用户服务,意味着互联网应用已变成一种社会公共服务,而支撑拥有海量用户互联网应用的数据中心也成为社会核心基础设施。
[0003]活跃用户数与用户访问量是影响互联网公司营收的主要因素,快速的服务响应时间是让用户满意、留住用户的关键。互联网公司一般都采用免费服务吸引用户,所以响应时间是衡量服务质量(Quality of Service, QoS)的关键指标。由于互联网应用需要同时为上亿用户提供服务,所以出于性能与扩展性的考虑,它们大都采用分布式的方式实现,将一个应用分解为许多服务部署在多个业务处理服务器上,因此一个用户的请求最终会被分配到多个不同的业务处理服务器上进行处理。顺序/依赖模式一种典型的服务聚合模式,在这种模式下,上一阶段服务的输出是下一阶段服务的输入,相邻两个阶段的服务具有依赖关系。
[0004]受到数据中心内请求特征、网络、后台操作等多种因素的影响,每个服务阶段的响应时间是会不断发生波动变化的;同时互联网公司为了追求低成本目标,在数据中心运营时通常采用资源共享方式提高资源利用率,这种共享在降低成本的同时也会带来应用之间相互干扰问题,加剧应用响应时间的波动。更严重的是,上一阶段服务在业务处理服务器的响应时间的延时,可能会在下一阶段服务处理过程中进一步的放大,在顺序/依赖服务聚合模式中,每一级的响应时间的延时会被逐级的叠加,使得最终用户请求的响应时间存在很大的延时。这种响应时间的延时会严重影响许多延迟敏感型应用(如搜索、在线购物等)的服务质量。
[0005]在现有技术中,技术人员在部署共享应用之前,对大量的现有应用进行预分析和测试,选择相互干扰最小的应用进行混合部署,从而降低应用之间的相互干扰对响应时间的影响,尽可能的避免响应时间的延时。
[0006]但是,这种现有技术在部署前需要对大量的现有应用进行预分析和测试,操作难度较大,并且,由于现有应用的种类繁多和不确定性,就算在部署前对应用进行分析,也只能降低部分应用之间的相互干扰,很多应用之间还是存在较大的干扰,避免响应时间延时的效果不佳。


【发明内容】

[0007]本发明实施例提供了一种请求处理方法,用于根据请求的处理时间动态地调整请求的执行优先级和资源分配。
[0008]本发明实施例第一方面提供的请求处理方法,包括:
[0009]业务处理服务器接收业务分配服务器发送的远程过程调用RPC请求,所述RPC请求包括:响应时间约束信息;所述响应时间约束信息用于标记与所述RPC请求对应的用户请求的处理约束时间和已发生处理时间;所述业务处理服务器将所述RPC请求加入服务请求队列;所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。
[0010]在第一方面的第一种可能实现的方法中,
[0011]若所述业务处理服务器能够同时处理所述服务请求队列中所有的RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行资源;
[0012]若所述业务处理服务器仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级;
[0013]若所述业务处理服务器既无法同时处理所述服务请求队列中所有的RPC请求,也不是仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置各个RPC请求的执行优先级,并分配所述各个RPC请求的执行资源。
[0014]结合第一方面或第一方面的第一种实现方法,在第一方面的第二种可能实现的方法中,当业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级时,所述根据服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,包括:
[0015]根据所述响应时间约束信息获取所述各个RPC请求的处理约束时间的约束剩余时间;根据预定义规则设置所述各个RPC请求的执行优先级,所述预定义规则包括:所述约束剩余时间越少,则设置的执行优先级越高。
[0016]结合第一方面或第一方面的第一种实现方法,在第一方面的第三种可能实现的方法中,当业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行资源时,所述根据服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行资源,包括:
[0017]根据所述响应时间约束信息获取所述各个RPC请求的处理约束时间的剩余时间;根据预定义规则分配所述各个RPC请求的执行资源,所述预定义规则包括:所述约束剩余时间越少,则分配的执行资源越多。
[0018]结合第一方面的第二种或第一方面的第三种实现方法,在第一方面的第四种可能实现的方法中,所述预定义规则还包括:若所述处理约束时间的剩余时间小于所述RPC请求的预测完成时间,则放弃为所述RPC请求设置执行优先级和分配执行资源。
[0019]结合第一方面的第二种或第一方面的第三种实现方法,在第一方面的第五种可能实现的方法中,所述预定义规则还包括:若有两个以上的RPC请求的约束剩余时间相等,则获取所述约束剩余时间与所述处理约束时间的比值,为所述比值小的RPC请求设置较高的执行优先级,和/或分配较多的执行资源。
[0020]结合第一方面或第一方面的第一至三任意一种实现方法,在第一方面的第六种可能实现的方法中,所述接收业务分配服务器发送的远程过程调用RPC请求之后,包括:
[0021]根据所述响应时间约束信息和紧急阈值选择所述RPC请求的处理策略,所述处理策略包括:第一处理策略和第二处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急阈值,则选择执行所述第一处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急阈值,则选择执行所述第二处理策略,所述第一处理策略的处理复杂度大于所述第二处理策略。
[0022]结合第一方面或第一方面的第一至三任意一种实现方法,在第一方面的第七种可能实现的方法中,所述根据服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源之后,包括:
[0023]所述业务处理服务器对优先级最高的RPC请求进行处理,记录所述RPC请求的处理时间,并根据所述处理时间更新所述RPC请求的响应时间约束信息;所述业务处理服务器向所述业务分配服务器反馈完成处理的RPC请求的响应时间约束信息。
[0024]本发明实施例第二方面提供的请求处理方法,包括:
[0025]业务分配服务器接收用户请求;所述业务分配服务器为所述用户请求分配响应时间约束信息,所述响应时间约束信息用于标记所述用户请求的处理约束时间和已发生处理时间;所述业务分配服务器根据所述用户请求生成远程过程调用RPC请求;所述业务分配服务器向业务处理服务器发送RPC请求,所述RPC请求携带有所述响应时间约束信息;使得所述业务处理服务器根据所述响应时间约束信息为所述RPC请求设置执行优先级,和/或分配执行资源。
[0026]在第二方面的第一种可能实现的方法中,所述分配所述用户请求的响应时间约束信息,包括:
[0027]根据所述响应时间约束信息的历史值以及所述业务处理服务器的硬件信息为所述用户请求分配响应时间约束信息。
[0028]结合第二方面的第一种可能实现的方法,在第二方面的第二种可能实现的方法中,若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时发生了改变,则所述根据响应时间约束信息的历史值以及所述业务处理服务器的硬件信息为所述用户请求分配响应时间约束信息,包括:
[0029]获取第一处理速度与第二处理速度的比值,将所述响应时间约束信息的历史值乘于所述比值,得到当前为所述用户请求分配的响应时间约束信息;所述第一处理速度为当前的业务处理服务器的硬件性能对所述RPC请求的处理速度,所述第二处理速度为记录所述响应时间约束信息的历史值时的业务处理服务器的硬件性能对所述RPC请求的处理速度;
[0030]若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时没有发生改变,则所述根据响应时间约束信息的历史值以及所述业务处理服务器的硬件信息为所述用户请求分配响应时间约束信息,包括:
[0031]将所述响应时间约束信息的历史值作为当前为所述用户请求分配的响应时间约束信息。
[0032]结合第二方面或第二方面的第一至二任意一种实现方法,在第二方面的第三种可能实现的方法中,所述根据用户请求生成远程过程调用RPC请求,包括:
[0033]提取完成所述用户请求所需的业务参数;根据预置的业务逻辑确定完成所述用户请求需要执行的步骤,根据所述需要执行的步骤确定需要调用的业务处理服务器;分别为所述需要调用的业务处理服务器分配相应的所述业务参数,生成与所述业务处理服务器对应的RPC请求。
[0034]结合第二方面或第二方面的第一至二任意一种实现方法,在第二方面的第四种可能实现的方法中,所述向业务处理服务器发送RPC请求之后,包括:
[0035]接收所述业务处理服务器反馈的响应时间约束信息;使用所述响应时间约束信息更新相应的RPC请求的响应时间约束信息。
[0036]结合第二方面的第四种实现方法,在第二方面的第五种可能实现的方法中,所述接收所述业务处理服务器反馈的响应时间约束信息之后,包括:
[0037]根据所述响应时间约束信息和紧急分配阈值选择所述用户请求对应的分配处理策略,所述分配处理策略包括:第一分配处理策略和第二分配处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急处理阈值,则选择执行所述第一分配处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急处理阈值,则选择执行所述第二分配处理策略,所述第一分配处理策略的处理复杂度大于所述第二分配处理策略。
[0038]本发明实施例第三方面提供的业务处理服务器,包括:
[0039]请求接收单元,用于接收业务分配服务器发送的远程过程调用RPC请求,所述RPC请求包括:响应时间约束信息;所述响应时间约束信息用于标记与所述RPC请求对应的用户请求的处理约束时间和已发生处理时间;存储单元,用于将所述RPC请求加入服务请求队列;设置单元,用于根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。
[0040]本发明实施例第四方面提供的业务处理服务器,包括:
[0041]用户请求接收单元,用于接收用户请求;信息分配单元,用于为所述用户请求分配响应时间约束信息,所述响应时间约束信息用于标记所述用户请求的处理约束时间和已发生处理时间;请求生成单元,用于根据所述用户请求生成远程过程调用RPC请求;请求发送单元,用于向业务处理服务器发送RPC请求,所述RPC请求携带有所述响应时间约束信息;使得所述业务处理服务器根据所述响应时间约束信息为所述RPC请求设置执行优先级,和/或分配执行资源。
[0042]本发明实施例第五方面提供的业务处理服务器,包括:
[0043]业务分配服务器和业务处理服务器;
[0044]所述业务分配服务器用于接收用户请求;为所述用户请求分配响应时间约束信息,所述响应时间约束信息用于标记所述用户请求的处理约束时间和已发生处理时间;根据所述用户请求生成远程过程调用RPC请求;向业务处理服务器发送RPC请求;所述RPC请求携带有所述响应时间约束信息;
[0045]所述业务处理服务器用于接收业务分配服务器发送的远程过程调用RPC请求,将所述RPC请求加入服务请求队列;根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。
[0046]从以上技术方案可以看出,本发明实施例具有以下优点:
[0047]在本发明实施例中,业务处理服务器接收的远程过程调用(Remote ProcedureCall, RPC)请求中携带有响应时间约束信息,该响应时间约束信息用于标记与所述RPC请求对应的用户请求的处理约束时间和已发生处理时间,使得业务处理服务器在处理RPC请求之前,可以根据服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行优先级和/或执行资源,从而使得时间紧急的RPC请求可以得到优先处理。

【专利附图】

【附图说明】
[0048]图1是本发明实施例请求处理方法的一个流程示意图;
[0049]图2是本发明实施例请求处理方法的另一个流程示意图;
[0050]图3是本发明实施例请求处理方法的另一个流程示意图;
[0051]图4是本发明实施例请求处理方法的另一个流程示意图;
[0052]图5是本发明实施例业务处理服务器的一个结构示意图;
[0053]图6是本发明实施例业务分配服务器的一个结构示意图;
[0054]图7是本发明实施例请求处理系统的一个结构示意图;
[0055]图8是本发明实施例计算机设备的结构示意图。

【具体实施方式】
[0056]本发明实施例提供了一种请求处理方法,用于根据请求的处理时间动态地调整请求的执行优先级和资源分配。
[0057]请参阅图1,本发明实施例中请求处理方法的一个实施例包括:
[0058]101、业务处理服务器接收业务分配服务器发送的RPC请求;
[0059]业务处理服务器接收业务分配服务器发送的RPC请求,所述RPC请求包括:响应时间约束信息;所述响应时间约束信息用于标记与所述RPC请求对应的用户请求的处理约束时间和已发生处理时间。
[0060]示例性的,在获取到该响应时间约束信息之后,可以将该响应时间约束信息存储在业务处理服务器的线程局部存储器(Thread Local Storage, TLS)。
[0061]在实际应用中,业务分配服务器会接收用户发送的用户请求,并为该用户请求分配一个响应时间约束信息,该响应时间约束信息包括有一个与该用户请求的应用或服务相对应的处理约束时间,用于限定所述用户请求在整个处理过程中的最大响应时间(即该用户请求需在处理约束时间内处理完成),还有一个初始状态为零的已发生处理时间,用于统计该用户请求在各个业务处理服务器的处理阶段一共产生的处理时间。
[0062]在业务分配服务器为用户请求分配了响应时间约束信息之后,业务分配服务器根据该用户请求生成RPC请求,并向目标的业务处理服务器(即与RPC请求所请求的应用或服务相对应的业务处理服务器)发送该RPC请求,该RPC请求中携带有与该用户请求对应的响应时间约束信息,该RPC请求用于向目标的业务处理服务器请求业务处理。在实际应用中,完成一个用户请求可能需要分多个阶段进行处理,其中,业务分配服务器会为每个阶段生成一个RPC请求,各个RPC请求会依次发送到相应的业务分配服务器进行处理,同时,每个阶段的RPC请求都会携带当前的响应时间约束信息,每完成一个RPC请求,响应时间约束信息就会被更新一次,当前的响应时间约束信息同时反映了该用户请求的处理约束时间,以及之前各个阶段一共产生的处理时间。
[0063]可选的,由于处理约束时间与已发生处理时间的差值等于处理约束时间的处理剩余时间,所述已发生处理时间这个参数也可以用处理约束时间的处理剩余时间代替,参数之间显而易见的替换不应理解为对本发明的限定。
[0064]102、业务处理服务器将所述RPC请求加入服务请求队列;
[0065]业务处理服务器将所述RPC请求加入服务请求队列,所述服务请求队列用于存储不同的RPC请求。
[0066]在实际应用中,为了降低运营的成本,提高资源利用率,一个业务处理服务器中的资源可能会被多个业务分配服务器共享利用,因此,业务处理服务器在同一时间很可能需要处理多个RPC请求,而这些RPC请求会被加入到服务请求队列中等待分配处理。
[0067]103、业务处理服务器为RPC请求分配执行优先级和/或执行资源。
[0068]业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。
[0069]可选的,分配所述各个RPC请求的执行资源可以包括:调整线程的中央处理器(Central Processing Unit, CPU)调度优先级,调整线程的输入/输出(I/O)优先级等。
[0070]在本发明实施例中,业务处理服务器接收的RPC请求中携带有响应时间约束信息,该响应时间约束信息用于标记与所述RPC请求对应的用户请求的处理约束时间和已发生处理时间,使得业务处理服务器在处理RPC请求之前,可以根据服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行优先级和/或执行资源,从而使得时间紧急的RPC请求可以得到优先处理。
[0071]在实际应用中,业务处理服务器根据响应时间约束信息的调控可以有多种策略,请参阅图2,本发明实施例中请求处理方法的另一个实施例包括:
[0072]201、业务处理服务器接收业务分配服务器发送的RPC请求;
[0073]业务处理服务器接收业务分配服务器发送的远程过程调用RPC请求,所述RPC请求包括:响应时间约束信息;所述响应时间约束信息用于标记与所述RPC请求对应的用户请求的处理约束时间和已发生处理时间。
[0074]202、业务处理服务器根据所述响应时间约束信息和紧急阈值选择所述RPC请求的处理策略;
[0075]业务处理服务器根据所述响应时间约束信息和紧急阈值选择所述RPC请求的处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急阈值,则选择执行所述第一处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急阈值,则选择执行所述第二处理策略,所述处理策略包括:第一处理策略和第二处理策略,所述第一处理策略的处理复杂度大于所述第二处理策略。
[0076]所述紧急阈值为业务处理服务器选择RPC请求的处理策略的判断阈值,具体可以为一个时间阈值。
[0077]示例性的,在实际应用中,所述第一处理策略具体可以包括根据用户的请求通过数据挖掘分析的方式推荐用户可能关心的内容;所述第二处理策略具体可以包括直接向用户推荐当前关注度高的内容;由于第一处理策略的处理复杂度大于第二处理策略,因此,当处理时间紧急(具体通过约束剩余时间小于或等于紧急阈值体现)时,业务处理服务器可以选择处理复杂度较小的第二处理策略,以节省处理时间。
[0078]可以理解的是,所述第一处理策略和第二处理策略所表示的仅是处理复杂度不同的两类策略,不特指任意两个策略,并且,第一处理策略可以表示处理复杂度相同或相似的两个以上的处理策略,第二处理策略也可以表示处理复杂度相同或相似的两个以上的处理策略。
[0079]进一步的,业务处理服务器还可以设置多级的紧急阈值,以分别对应多种复杂度类型的处理策略,此处具体不作限定。
[0080]203、业务处理服务器将所述RPC请求加入服务请求队列;
[0081]业务处理服务器将所述RPC请求加入服务请求队列,所述服务请求队列用于存储不同的RPC请求。
[0082]在实际应用中,为了降低运营的成本,提高资源利用率,一个业务处理服务器中的资源可能会被多个业务分配服务器共享利用,因此,业务处理服务器在同一时间很可能需要处理多个RPC请求,而这些RPC请求会被加入到服务请求队列中等待分配处理。
[0083]可以理解的是,本发明实施例在实际应用中,步骤202和步骤203没有严格的先后关系,即也可以执行“将所述RPC请求加入服务请求队列”,再执行“根据所述响应时间约束信息和紧急阈值选择所述RPC请求的处理策略”。
[0084]204、业务处理服务器为RPC请求分配执行优先级和/或执行资源;
[0085]业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。
[0086]可选的,分配执行优先级和/或执行资源可以通过在操作系统或超级管理程序(Hypervisor)调整不同请求处理线程的资源使用量的方案,如调整线程的CPU调度优先级、调整线程的I/O优先级等;也可以通过支持优先级的硬件对请求处理线程的执行优先级进行调整,如,在CPU的高速缓存存储器、内存控制器或系统总线上根据响应时间约束信息所确定的优先级对各处理线程所使用的硬件资源进行分配。
[0087]在实际应用中,业务处理服务器在处理RPC请求之前,会根据设备自身的处理能力,以及服务请求队列中RPC请求的数量和类型,确定RPC请求的处理方式;若所述业务处理服务器能够同时处理所述服务请求队列中所有的RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行资源;若所述业务处理服务器仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级;若所述业务处理服务器即无法同时处理所述服务请求队列中所有的RPC请求,也不仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,并分配所述各个RPC请求的执行资源。
[0088]进一步的,当业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级时,业务处理服务器可以根据所述响应时间约束信息获取所述各个RPC请求的处理约束时间的约束剩余时间;再根据预定义规则设置所述各个RPC请求的执行优先级,所述预定义规则包括:所述约束剩余时间越少,则设置的执行优先级越高。
[0089]当业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行资源时,业务处理服务器可以根据所述响应时间约束信息获取所述各个RPC请求的处理约束时间的剩余时间;根据预定义规则分配所述各个RPC请求的执行资源,所述预定义规则包括:所述约束剩余时间越少,则分配的执行资源越多。
[0090]再进一步的,当业务处理服务器获取到各个RPC请求的约束剩余时间之后,若发现有两个以上的RPC请求的约束剩余时间相等,则获取所述约束剩余时间与所述处理约束时间的比值,为所述比值小的RPC请求设置较高的执行优先级,和/或分配较多的执行资源。
[0091]再进一步的,当业务处理服务器获取到处理约束时间的约束剩余时间之后,可以先对该约束剩余时间进行判断,若所述处理约束时间的剩余时间小于所述RPC请求的预测完成时间,则放弃为所述RPC请求设置执行优先级和分配执行资源,以节省业务处理服务器的处理资源;可选的,此时的业务处理服务器可以选择向业务分配服务器发送请求失败响应,业务分配服务器向用户反馈该用户请求的处理失败,使得重新发送业务请求。
[0092]在实际应用中,业务处理服务器可以获知用户请求在各个处理阶段的最小处理时间(可以由业务分配服务器告知),当前的业务处理服务器将所述用户请求的剩余各个处理阶段的最小处理时间相加,即可得到所述预测完成时间。
[0093]205、业务处理服务器向所述业务分配服务器反馈完成处理的RPC请求的响应时间约束信息。
[0094]在完成执行优先级的设置和/或执行资源的分配之后,业务处理服务器对优先级最高的RPC请求进行处理,记录所述RPC请求的处理时间,并根据所述处理时间更新所述RPC请求的响应时间约束信息(即将所述处理时间加上响应时间约束信息中的已发生处理时间,得到更新后的已发生处理时间)。
[0095]业务处理服务器向所述业务分配服务器反馈完成处理的RPC请求的响应时间约束信息(即更新后的响应时间约束信息),使得业务分配服务器更新相应用户请求的响应时间约束信息。
[0096]上面是从业务处理服务器的角度对本发明实施例中的请求处理方法进行了描述,下面从业务分配服务器侧对本发明实施例中的请求处理方法进行描述,请参阅图3,本发明实施例中的请求处理方法另一实施例包括:
[0097]301、业务分配服务器接收用户请求;
[0098]业务分配服务器接收用户请求,该用户请求为用户向网络侧提出的服务需求或应用需求,该服务需求或应用需求可以包括:搜索、在线购物等。
[0099]302、业务分配服务器为所述用户请求分配响应时间约束信息;
[0100]业务分配服务器为所述用户请求分配响应时间约束信息,所述响应时间约束信息用于标记所述用户请求的处理约束时间和已发生处理时间。
[0101]示例性的,该响应时间约束信息可以存储在业务分配服务器的TLS。
[0102]该响应时间约束信息包括有一个与该用户请求的应用或服务相对应的处理约束时间,用于限定所述用户请求在整个处理过程中的最大响应时间(即该用户请求需在处理约束时间内处理完成),还有一个初始状态为零的已发生处理时间,用于统计该用户请求在各个业务处理服务器的处理阶段一共产生的处理时间。
[0103]可选的,该响应时间约束信息可以由管理员根据不同用户请求的服务或应用类型进行设置,当完成初始化设置后,业务分配服务器可以根据相应用户请求的响应时间约束信息的历史值自动进行分配。
[0104]303、业务分配服务器根据所述用户请求生成RPC请求;
[0105]在业务分配服务器为用户请求分配了响应时间约束信息之后,业务分配服务器根据该用户请求生成RPC请求,该RPC请求中携带有与该用户请求对应的响应时间约束信息,该RPC请求用于向目标的业务处理服务器请求业务处理。在实际应用中,完成一个用户请求可能需要分多个阶段进行处理,其中,业务分配服务器会为每个阶段生成一个RPC请求,各个RPC请求会依次发送到相应的业务分配服务器进行处理,同时,每个阶段的RPC请求都会携带当前的响应时间约束信息,每完成一个RPC请求,响应时间约束信息就会被更新一次,当前的响应时间约束信息同时反映了该用户请求的处理约束时间,以及之前各个阶段一共产生的处理时间。
[0106]304、业务分配服务器向业务处理服务器发送RPC请求。
[0107]业务分配服务器向业务处理服务器发送RPC请求,所述RPC请求携带有所述响应时间约束信息;使得所述业务处理服务器根据所述响应时间约束信息为所述RPC请求设置执行优先级,和/或分配执行资源。
[0108]在本发明实施例中,业务分配服务器向业务处理服务器发送的RPC请求中携带有响应时间约束信息,该响应时间约束信息用于标记所述用户请求的处理约束时间和已发生处理时间,使得业务处理服务器在处理RPC请求之前,可以根据服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行优先级和/或执行资源,从而使得时间紧急的RPC请求可以得到优先处理。
[0109]下面对业务分配服务器执行请求处理方法再进行详细描述,请参阅图4,本发明实施例中的请求处理方法另一实施例包括:
[0110]401、业务分配服务器接收用户请求;
[0111]业务分配服务器接收用户请求,该用户请求为用户向网络侧提出的服务需求或应用需求,该服务需求或应用需求可以包括:搜索、在线购物等。
[0112]402、业务分配服务器为所述用户请求分配响应时间约束信息;
[0113]业务分配服务器为所述用户请求分配响应时间约束信息,所述响应时间约束信息用于标记所述用户请求的处理约束时间和已发生处理时间;
[0114]该响应时间约束信息包括有一个与该用户请求的应用或服务相对应的处理约束时间,用于限定所述用户请求在整个处理过程中的最大响应时间(即该用户请求需在处理约束时间内处理完成),还有一个初始状态为零的已发生处理时间,用于统计该用户请求在各个业务处理服务器的处理阶段一共产生的处理时间。
[0115]可选的,该响应时间约束信息可以由管理员根据不同用户请求的服务或应用类型进行设置,当完成初始化设置后,业务分配服务器可以根据相应用户请求的响应时间约束信息的历史值自动进行分配。
[0116]可选的,业务分配服务器可以根据所述响应时间约束信息的历史值以及所述业务处理服务器的硬件信息为所述用户请求分配响应时间约束信息;具体的,若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时发生了改变,则获取第一处理速度与第二处理速度的比值,将所述响应时间约束信息的历史值乘于所述比值,得到当前为所述用户请求分配的响应时间约束信息;所述第一处理速度为当前的业务处理服务器的硬件性能对所述RPC请求的处理速度,所述第二处理速度为记录所述响应时间约束信息的历史值时的业务处理服务器的硬件性能对所述RPC请求的处理速度;若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时没有发生改变,则将所述响应时间约束信息的历史值作为当前为所述用户请求分配的响应时间约束信息。
[0117]403、业务分配服务器根据所述用户请求生成RPC请求;
[0118]在业务分配服务器为用户请求分配了响应时间约束信息之后,业务分配服务器根据该用户请求生成RPC请求,该RPC请求中携带有与该用户请求对应的响应时间约束信息,该RPC请求用于向目标的业务处理服务器请求业务处理。在实际应用中,完成一个用户请求可能需要分多个阶段进行处理,其中,业务分配服务器会为每个阶段生成一个RPC请求,各个RPC请求会依次发送到相应的业务分配服务器进行处理,同时,每个阶段的RPC请求都会携带当前的响应时间约束信息,每完成一个RPC请求,响应时间约束信息就会被更新一次,当前的响应时间约束信息同时反映了该用户请求的处理约束时间,以及之前各个阶段一共产生的处理时间。
[0119]示例性的,RPC请求生成方法可以为:提取完成所述用户请求所需的业务参数(如请求类型、用户标识、商品标识等);根据预置的业务逻辑确定完成所述用户请求需要执行的步骤,根据所述需要执行的步骤确定需要调用的业务处理服务器;分别为所述需要调用的业务处理服务器分配相应的所述业务参数,生成与所述业务处理服务器对应的RPC请求。
[0120]404、业务分配服务器向业务处理服务器发送RPC请求;
[0121]业务分配服务器向业务处理服务器发送RPC请求,所述RPC请求携带有所述响应时间约束信息;使得所述业务处理服务器根据所述响应时间约束信息为所述RPC请求设置执行优先级,和/或分配执行资源。
[0122]405、业务分配服务器接收业务处理服务器反馈的响应时间约束信息;
[0123]业务分配服务器接收业务处理服务器反馈的响应时间约束信息,并使用所述响应时间约束信息更新相应的RPC请求的响应时间约束信息。
[0124]406、业务分配服务器根据更新后的响应时间约束信息选择相应用户请求的分配处理策略。
[0125]业务分配服务器根据所述响应时间约束信息和紧急分配阈值选择所述用户请求对应的分配处理策略,所述分配处理策略包括:第一分配处理策略和第二分配处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急处理阈值,则选择执行所述第一分配处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急处理阈值,则选择执行所述第二分配处理策略,所述第一分配处理策略的处理复杂度大于所述第二分配处理策略。
[0126]所述紧急分配阈值为业务分配服务器选择用户请求的处理策略的判断阈值,具体可以为一个时间阈值。
[0127]示例性的,在实际应用中,所述第一分配处理策略具体可以包括完成用户请求所必要的业务处理流程,以及可选的用于提升服务质量的数据挖掘、统计、分析流程内容;所述第二分配处理策略具体可以包括只包含完成用户请求所必要的业务处理流程内容;由于第一分配处理策略的处理复杂度大于第二分配处理策略,因此,当处理时间紧急(具体通过约束剩余时间小于或等于紧急阈值体现)时,业务分配服务器可以选择处理复杂度较小的第二分配处理策略,以节省处理时间。
[0128]可以理解的是,所述第一分配处理策略和第二分配处理策略所表示的仅是处理复杂度不同的两类策略,不特指任意两个策略,并且,第一分配处理策略可以表示处理复杂度相同或相似的两个以上的处理策略,第二分配处理策略也可以表示处理复杂度相同或相似的两个以上的处理策略。
[0129]进一步的,业务分配服务器还可以设置多级的紧急分配阈值,以分别对应多种复杂度类型的分配处理策略,此处具体不作限定。
[0130]下面对用于执行上述请求处理方法的本发明业务处理服务器的实施例进行说明,其逻辑结构请参考图5,本发明实施例中的业务处理服务器一个实施例包括:
[0131]请求接收单元501,用于接收业务分配服务器发送的远程过程调用RPC请求,所述RPC请求包括:响应时间约束信息;所述响应时间约束信息用于标记与所述RPC请求对应的用户请求的处理约束时间和已发生处理时间;
[0132]存储单元502,用于将所述RPC请求加入服务请求队列;
[0133]设置单元503,用于根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。
[0134]进一步的,本发明实施例中的设置单元具体503用于:
[0135]若所述业务处理服务器能够同时处理所述服务请求队列中所有的RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行资源;
[0136]若所述业务处理服务器仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级;
[0137]若所述业务处理服务器即无法同时处理所述服务请求队列中所有的RPC请求,也不是仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,并分配所述各个RPC请求的执行资源。
[0138]进一步的,本发明实施例中的所述设置单元503可以包括:
[0139]资源分配模块5031,用于根据所述响应时间约束信息获取所述各个RPC请求的处理约束时间的约束剩余时间;根据预定义规则设置所述各个RPC请求的执行优先级,所述预定义规则包括:所述约束剩余时间越少,则设置的执行优先级越高;
[0140]优先级设置模块5032,用于根据所述响应时间约束信息获取所述各个RPC请求的处理约束时间的剩余时间;根据预定义规则分配所述各个RPC请求的执行资源,所述预定义规则包括:所述约束剩余时间越少,则分配的执行资源越多。
[0141]进一步的,本发明实施例中的业务处理服务器还可以包括:
[0142]处理策略选择单元504,用于根据所述响应时间约束信息和紧急阈值选择所述RPC请求的处理策略,所述处理策略包括:第一处理策略和第二处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急阈值,则选择执行所述第一处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急阈值,则选择执行所述第二处理策略,所述第一处理策略的处理复杂度大于所述第二处理策略。
[0143]进一步的,本发明实施例中的业务处理服务器还包括:
[0144]请求处理单元505,用于对优先级最高的RPC请求进行处理,记录所述RPC请求的处理时间,并根据所述处理时间更新所述RPC请求的响应时间约束信息;
[0145]信息反馈单元506,用于向所述业务分配服务器反馈完成处理的RPC请求的响应时间约束信息。
[0146]本发明实施例中业务分配服务器的各个单元具体的交互过程如下:
[0147]请求接收单元501接收业务分配服务器发送的RPC请求,所述RPC请求包括:响应时间约束信息;所述响应时间约束信息用于标记与所述RPC请求对应的用户请求的处理约束时间和已发生处理时间。示例性的,在获取到该响应时间约束信息之后,可以将该响应时间约束信息存储在业务处理服务器的线程局部存储器。
[0148]接收到该RPC请求之后,存储单元502将所述RPC请求加入服务请求队列,所述服务请求队列用于存储不同的RPC请求。在实际应用中,为了降低运营的成本,提高资源利用率,一个业务处理服务器中的资源可能会被多个业务分配服务器共享利用,因此,业务处理服务器在同一时间很可能需要处理多个RPC请求,而这些RPC请求会被加入到服务请求队列中等待分配处理。
[0149]可选的,在获取到该响应时间约束信息之后,可以由处理策略选择单元504根据所述响应时间约束信息和紧急阈值选择所述RPC请求的处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急阈值,则选择执行所述第一处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急阈值,则选择执行所述第二处理策略,所述处理策略包括:第一处理策略和第二处理策略,所述第一处理策略的处理复杂度大于所述第二处理策略。
[0150]所述紧急阈值为业务处理服务器选择RPC请求的处理策略的判断阈值,具体可以为一个时间阈值。
[0151]示例性的,在实际应用中,所述第一处理策略具体可以包括根据用户的请求通过数据挖掘分析的方式推荐用户可能关心的内容;所述第二处理策略具体可以包括直接向用户推荐当前关注度高的内容;由于第一处理策略的处理复杂度大于第二处理策略,因此,当处理时间紧急(具体通过约束剩余时间小于或等于紧急阈值体现)时,业务处理服务器可以选择处理复杂度较小的第二处理策略,以节省处理时间。
[0152]在将RPC请求加入到服务请求队列之后,设置单元503根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。
[0153]具体的,在处理RPC请求之前,会根据设备自身的处理能力,以及服务请求队列中RPC请求的数量和类型,确定RPC请求的处理方式;若所述业务处理服务器能够同时处理所述服务请求队列中所有的RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行资源;若所述业务处理服务器仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级;若所述业务处理服务器即无法同时处理所述服务请求队列中所有的RPC请求,也不仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,并分配所述各个RPC请求的执行资源。
[0154]进一步的,可以由设置单元503的资源分配模块5031根据所述响应时间约束信息获取所述各个RPC请求的处理约束时间的约束剩余时间;根据预定义规则设置所述各个RPC请求的执行优先级,所述预定义规则包括:所述约束剩余时间越少,则设置的执行优先级越高;由优先级设置模块5032根据所述响应时间约束信息获取所述各个RPC请求的处理约束时间的剩余时间;根据预定义规则分配所述各个RPC请求的执行资源,所述预定义规则包括:所述约束剩余时间越少,则分配的执行资源越多。
[0155]在完成执行优先级的设置和/或执行资源的分配之后,请求处理单元505对优先级最高的RPC请求进行处理,记录所述RPC请求的处理时间,并根据所述处理时间更新所述RPC请求的响应时间约束信息(即将所述处理时间加上响应时间约束信息中的已发生处理时间,得到更新后的已发生处理时间)。
[0156]信息反馈单元506向所述业务分配服务器反馈完成处理的RPC请求的响应时间约束信息(即更新后的响应时间约束信息),使得业务分配服务器更新相应用户请求的响应时间约束信息。
[0157]下面对用于执行上述请求处理方法的本发明业务分配服务器的实施例进行说明,其逻辑结构请参考图6,本发明实施例中的业务分配服务器一个实施例包括:
[0158]用户请求接收单元601,用于接收用户请求;
[0159]信息分配单元602,用于为所述用户请求分配响应时间约束信息,所述响应时间约束信息用于标记所述用户请求的处理约束时间和已发生处理时间;
[0160]请求生成单元603,用于根据所述用户请求生成远程过程调用RPC请求;
[0161]请求发送单元604,用于向业务处理服务器发送RPC请求,所述RPC请求携带有所述响应时间约束信息;使得所述业务处理服务器根据所述响应时间约束信息为所述RPC请求设置执行优先级,和/或分配执行资源。
[0162]进一步的,本发明实施例中的信息分配单元602具体用于:
[0163]根据所述响应时间约束信息的历史值以及所述业务处理服务器的硬件信息为所述用户请求分配响应时间约束信息。
[0164]进一步的,本发明实施例中的信息分配单元602包括:
[0165]第一分配模块6021,用于若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时发生了改变,则获取第一处理速度与第二处理速度的比值,将所述响应时间约束信息的历史值乘于所述比值,得到当前为所述用户请求分配的响应时间约束信息;所述第一处理速度为当前的业务处理服务器的硬件性能对所述RPC请求的处理速度,所述第二处理速度为记录所述响应时间约束信息的历史值时的业务处理服务器的硬件性能对所述RPC请求的处理速度;
[0166]第二分配模块6022,用于若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时没有发生改变,则将所述响应时间约束信息的历史值作为当前为所述用户请求分配的响应时间约束信息。
[0167]进一步的,本发明实施例中的请求生成单元603包括:
[0168]参数提取模块6031,用于提取完成所述用户请求所需的业务参数;
[0169]逻辑分析模块6032,用于根据预置的业务逻辑确定完成所述用户请求需要执行的步骤,根据所述需要执行的步骤确定需要调用的业务处理服务器;
[0170]请求生成模块6033,用于分别为所述需要调用的业务处理服务器分配相应的所述业务参数,生成与所述业务处理服务器对应的RPC请求。
[0171]进一步的,本发明实施例中的业务处理服务器还包括:
[0172]信息接收单元605,用于接收所述业务处理服务器反馈的响应时间约束信息;
[0173]信息更新单元606,用于使用所述响应时间约束信息更新相应的RPC请求的响应时间约束信息。
[0174]分配策略选择单元607,用于根据所述响应时间约束信息和紧急分配阈值选择所述用户请求对应的分配处理策略,所述分配处理策略包括:第一分配处理策略和第二分配处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急处理阈值,则选择执行所述第一分配处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急处理阈值,则选择执行所述第二分配处理策略,所述第一分配处理策略的处理复杂度大于所述第二分配处理策略。
[0175]本发明实施例中业务分配服务器的各个单元具体的交互过程如下:
[0176]用户请求接收单元601接收用户请求,该用户请求为用户向网络侧提出的服务需求或应用需求,该服务需求或应用需求可以包括:搜索、在线购物。
[0177]在接收到用户请求之后,信息分配单元602为所述用户请求分配响应时间约束信息,所述响应时间约束信息用于标记所述用户请求的处理约束时间和已发生处理时间。
[0178]可选的,若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时发生了改变,则第一分配模块6021获取第一处理速度与第二处理速度的比值,将所述响应时间约束信息的历史值乘于所述比值,得到当前为所述用户请求分配的响应时间约束信息;所述第一处理速度为当前的业务处理服务器的硬件性能对所述RPC请求的处理速度,所述第二处理速度为记录所述响应时间约束信息的历史值时的业务处理服务器的硬件性能对所述RPC请求的处理速度;若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时没有发生改变,则第二分配模块6022将所述响应时间约束信息的历史值作为当前为所述用户请求分配的响应时间约束信息。
[0179]在业务分配服务器为用户请求分配了响应时间约束信息之后,请求生成单元603根据该用户请求生成RPC请求,该RPC请求中携带有与该用户请求对应的响应时间约束信息,该RPC请求用于向目标的业务处理服务器请求业务处理。
[0180]具体的,参数提取模块6031提取完成所述用户请求所需的业务参数(如请求类型、用户标识、商品标识等);逻辑分析模块6032根据预置的业务逻辑确定完成所述用户请求需要执行的步骤,根据所述需要执行的步骤确定需要调用的业务处理服务器;请求生成模块6033分别为所述需要调用的业务处理服务器分配相应的所述业务参数,生成与所述业务处理服务器对应的RPC请求。
[0181]在生成RPC请求之后,请求发送单元604向业务处理服务器发送RPC请求,所述RPC请求携带有所述响应时间约束信息;使得所述业务处理服务器根据所述响应时间约束信息为所述RPC请求设置执行优先级,和/或分配执行资源。
[0182]信息接收单元605接收业务处理服务器反馈的响应时间约束信息,并触发信息更新单元606使用所述响应时间约束信息更新相应的RPC请求的响应时间约束信息。
[0183]在更新了响应时间约束信息之后,分配策略选择单元607根据所述响应时间约束信息和紧急分配阈值选择所述用户请求对应的分配处理策略,所述分配处理策略包括:第一分配处理策略和第二分配处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急处理阈值,则选择执行所述第一分配处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急处理阈值,则选择执行所述第二分配处理策略,所述第一分配处理策略的处理复杂度大于所述第二分配处理策略。
[0184]所述紧急分配阈值为业务分配服务器选择用户请求的处理策略的判断阈值,具体可以为一个时间阈值。
[0185]示例性的,在实际应用中,所述第一分配处理策略具体可以包括完成用户请求所必要的业务处理流程,以及可选的用于提升服务质量的数据挖掘、统计、分析流程内容;所述第二分配处理策略具体可以包括只包含完成用户请求所必要的业务处理流程内容;由于第一分配处理策略的处理复杂度大于第二分配处理策略,因此,当处理时间紧急(具体通过约束剩余时间小于或等于紧急阈值体现)时,业务分配服务器可以选择处理复杂度较小的第二分配处理策略,以节省处理时间。
[0186]下面对用于执行上述请求处理方法的本发明请求处理系统的实施例进行说明,其逻辑结构请参考图7,本发明实施例中的请求处理系统一个实施例包括:
[0187]业务分配服务器701和业务处理服务器702 ;
[0188]所述业务分配服务器701用于接收用户请求;为所述用户请求分配响应时间约束信息,所述响应时间约束信息用于标记所述用户请求的处理约束时间和已发生处理时间;根据所述用户请求生成远程过程调用RPC请求;向业务处理服务器发送RPC请求;所述RPC请求携带有所述响应时间约束信息;
[0189]所述业务处理服务器702用于接收业务分配服务器发送的远程过程调用RPC请求,将所述RPC请求加入服务请求队列;根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。
[0190]本发明实施例中的业务分配服务器701和业务处理服务器702所执行的具体步骤可以参阅上述方法实施例,此处不再赘述。
[0191]本发明实施例还提供了一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的请求处理方法的部分或全部步骤。
[0192]请参见图8,本发明实施例还提供了一种业务处理服务器,具体可包括:
[0193]接收器801,发送器802,存储器803和处理器804 (业务处理服务器中的处理器的数量可以为一个或多个,图8中以一个处理器为例)在本发明的一些实施例中,接收器801,发送器802,存储器803和处理器804可通过总线或其它方式连接,其中,图8中以通过总线连接为例。
[0194]其中,所述存储器803可以用于存储如下内容:
[0195]所述RPC请求包括:响应时间约束信息;所述响应时间约束信息用于标记与所述RPC请求对应的用户请求的处理约束时间和已发生处理时间;
[0196]预定义规则:所述约束剩余时间越少,则设置的执行优先级越高;所述约束剩余时间越少,则分配的执行资源越多;若所述处理约束时间的剩余时间小于所述RPC请求的预测完成时间,则放弃为所述RPC请求设置执行优先级和分配执行资源;若有两个以上的RPC请求的约束剩余时间相等,则获取所述约束剩余时间与所述处理约束时间的比值,为所述比值小的RPC请求设置较高的执行优先级,和/或分配较多的执行资源。
[0197]以及第一处理策略和第二处理策略的具体内容。
[0198]接收器801用于接收接收业务分配服务器发送的远程过程调用RPC请求。
[0199]发送器802用于向所述业务分配服务器反馈完成处理的RPC请求的响应时间约束信息。
[0200]处理器804用于执行如下步骤:
[0201 ] 在接收器801接收业务分配服务器发送的远程过程调用RPC请求之后,将所述RPC请求加入服务请求队列;根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。具体的,可以根据预定义规则进行执行优先级的设置,和/或执行资源的分配。
[0202]若所述业务处理服务器能够同时处理所述服务请求队列中所有的RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行资源;
[0203]若所述业务处理服务器仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级;
[0204]若所述业务处理服务器即无法同时处理所述服务请求队列中所有的RPC请求,也不是仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,并分配所述各个RPC请求的执行资源。
[0205]根据所述响应时间约束信息和紧急阈值选择所述RPC请求的处理策略,所述处理策略包括:第一处理策略和第二处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急阈值,则选择执行所述第一处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急阈值,则选择执行所述第二处理策略,所述第一处理策略的处理复杂度大于所述第二处理策略。
[0206]还请参见图8,本发明实施例还提供了一种业务分配服务器,具体可包括:
[0207]接收器801,发送器802,存储器803和处理器804 (业务分配服务器中的处理器的数量可以为一个或多个,图8中以一个处理器为例)在本发明的一些实施例中,接收器801,发送器802,存储器803和处理器804可通过总线或其它方式连接,其中,图8中以通过总线连接为例。
[0208]其中,业务分配服务器的存储器803可以用于存储如下内容:
[0209]所述RPC请求包括:响应时间约束信息;所述响应时间约束信息用于标记与所述RPC请求对应的用户请求的处理约束时间和已发生处理时间;
[0210]所述响应时间约束信息的历史值以及所述业务处理服务器的硬件信息。
[0211]业务分配服务器的接收器801用于接收用户请求,以及接收所述业务处理服务器反馈的响应时间约束信息。
[0212]业务分配服务器的发送器802用于向业务处理服务器发送RPC请求。
[0213]业务分配服务器的处理器804用于执行如下步骤:
[0214]在接收接收器801用户请求之后;为所述用户请求分配响应时间约束信息,根据所述用户请求生成远程过程调用RPC请求。
[0215]进一步的,在为所述用户请求分配响应时间约束信息时,若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时发生了改变,则获取第一处理速度与第二处理速度的比值,将所述响应时间约束信息的历史值乘于所述比值,得到当前为所述用户请求分配的响应时间约束信息;所述第一处理速度为当前的业务处理服务器的硬件性能对所述RPC请求的处理速度,所述第二处理速度为记录所述响应时间约束信息的历史值时的业务处理服务器的硬件性能对所述RPC请求的处理速度;若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时没有发生改变,则将所述响应时间约束信息的历史值作为当前为所述用户请求分配的响应时间约束信息。
[0216]进一步的,接收所述业务处理服务器反馈的响应时间约束信息之后,根据所述响应时间约束信息和紧急分配阈值选择所述用户请求对应的分配处理策略,所述分配处理策略包括:第一分配处理策略和第二分配处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急处理阈值,则选择执行所述第一分配处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急处理阈值,则选择执行所述第二分配处理策略,所述第一分配处理策略的处理复杂度大于所述第二分配处理策略。
[0217]在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0218]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0219]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0220]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0221]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种请求处理方法,其特征在于,包括: 业务处理服务器接收业务分配服务器发送的远程过程调用RPC请求,所述RPC请求包括:响应时间约束信息;所述响应时间约束信息用于标记与所述RPC请求对应的用户请求的处理约束时间和已发生处理时间; 所述业务处理服务器将所述RPC请求加入服务请求队列; 所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。
2.根据权利要求1所述的方法,其特征在于, 若所述业务处理服务器能够同时处理所述服务请求队列中所有的RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行资源; 若所述业务处理服务器仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级; 若所述业务处理服务器既无法同时处理所述服务请求队列中所有的RPC请求,也不是仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置各个RPC请求的执行优先级,并分配所述各个RPC请求的执行资源。
3.根据权利要求1或2所述的方法,其特征在于,当业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级时,所述根据服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,包括: 根据所述响应时间约束信息获取所述各个RPC请求的处理约束时间的约束剩余时间; 根据预定义规则设置所述各个RPC请求的执行优先级,所述预定义规则包括:所述约束剩余时间越少,则设置的执行优先级越高。
4.根据权利要求1或2所述的方法,其特征在于,当业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行资源时,所述根据服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行资源,包括: 根据所述响应时间约束信息获取所述各个RPC请求的处理约束时间的剩余时间; 根据预定义规则分配所述各个RPC请求的执行资源,所述预定义规则包括:所述约束剩余时间越少,则分配的执行资源越多。
5.根据权利要求3或4所述的方法,其特征在于,所述预定义规则还包括:若所述处理约束时间的剩余时间小于所述RPC请求的预测完成时间,则放弃为所述RPC请求设置执行优先级和分配执行资源。
6.根据权利要求3或4所述的方法,其特征在于,所述预定义规则还包括:若有两个以上的RPC请求的约束剩余时间相等,则获取所述约束剩余时间与所述处理约束时间的比值,为所述比值小的RPC请求设置较高的执行优先级,和/或分配较多的执行资源。
7.根据权利要求1至4任意一项所述的方法,其特征在于,所述接收业务分配服务器发送的远程过程调用RPC请求之后,包括: 根据所述响应时间约束信息和紧急阈值选择所述RPC请求的处理策略,所述处理策略包括:第一处理策略和第二处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急阈值,则选择执行所述第一处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急阈值,则选择执行所述第二处理策略,所述第一处理策略的处理复杂度大于所述第二处理策略。
8.根据权利要求1至4任意一项所述的方法,其特征在于,所述根据服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源之后,包括: 所述业务处理服务器对优先级最高的RPC请求进行处理,记录所述RPC请求的处理时间,并根据所述处理时间更新所述RPC请求的响应时间约束信息; 所述业务处理服务器向所述业务分配服务器反馈完成处理的RPC请求的响应时间约束信息。
9.一种请求处理方法,其特征在于,包括: 业务分配服务器接收用户请求; 所述业务分配服务器为所述用户请求分配响应时间约束信息,所述响应时间约束信息用于标记所述用户请求的处理约束时间和已发生处理时间; 所述业务分配服务器根据所述用户请求生成远程过程调用RPC请求; 所述业务分配服务器向业务处理服务器发送RPC请求,所述RPC请求携带有所述响应时间约束信息;使得所述业务处理服务器根据所述响应时间约束信息为所述RPC请求设置执行优先级,和/或分配执行资源。
10.根据权利要求9所述的方法,其特征在于,所述分配所述用户请求的响应时间约束信息,包括: 根据所述响应时间约束信息的历史值以及所述业务处理服务器的硬件信息为所述用户请求分配响应时间约束信息。
11.根据权利要求10所述的方法,其特征在于, 若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时发生了改变,则所述根据响应时间约束信息的历史值以及所述业务处理服务器的硬件信息为所述用户请求分配响应时间约束信息,包括: 获取第一处理速度与第二处理速度的比值,将所述响应时间约束信息的历史值乘于所述比值,得到当前为所述用户请求分配的响应时间约束信息;所述第一处理速度为当前的业务处理服务器的硬件性能对所述RPC请求的处理速度,所述第二处理速度为记录所述响应时间约束信息的历史值时的业务处理服务器的硬件性能对所述RPC请求的处理速度; 若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时没有发生改变,则所述根据响应时间约束信息的历史值以及所述业务处理服务器的硬件信息为所述用户请求分配响应时间约束信息,包括: 将所述响应时间约束信息的历史值作为当前为所述用户请求分配的响应时间约束信肩、O
12.根据权利要求9至11任意一项所述的方法,其特征在于,所述根据用户请求生成远程过程调用RPC请求,包括: 提取完成所述用户请求所需的业务参数; 根据预置的业务逻辑确定完成所述用户请求需要执行的步骤,根据所述需要执行的步骤确定需要调用的业务处理服务器; 分别为所述需要调用的业务处理服务器分配相应的所述业务参数,生成与所述业务处理服务器对应的RPC请求。
13.根据权利要求9至11任意一项所述的方法,其特征在于,所述向业务处理服务器发送RPC请求之后,包括: 接收所述业务处理服务器反馈的响应时间约束信息; 使用所述响应时间约束信息更新相应的RPC请求的响应时间约束信息。
14.根据权利要求13所述的方法,其特征在于,所述接收所述业务处理服务器反馈的响应时间约束信息之后,包括: 根据所述响应时间约束信息和紧急分配阈值选择所述用户请求对应的分配处理策略,所述分配处理策略包括:第一分配处理策略和第二分配处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急处理阈值,则选择执行所述第一分配处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急处理阈值,则选择执行所述第二分配处理策略,所述第一分配处理策略的处理复杂度大于所述第二分配处理策略。
15.一种业务处理服务器,其特征在于,包括: 请求接收单元,用于接收业务分配服务器发送的远程过程调用RPC请求,所述RPC请求包括:响应时间约束信息;所述响应时间约束信息用于标记与所述RPC请求对应的用户请求的处理约束时间和已发生处理时间; 存储单元,用于将所述RPC请求加入服务请求队列; 设置单元,用于根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。
16.根据权利要求15所述的业务处理服务器,其特征在于,所述设置单元具体用于: 若所述业务处理服务器能够同时处理所述服务请求队列中所有的RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息分配所述各个RPC请求的执行资源; 若所述业务处理服务器仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级; 若所述业务处理服务器即无法同时处理所述服务请求队列中所有的RPC请求,也不是仅能单独处理所述服务请求队列中的任意一个RPC请求,则所述业务处理服务器根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,并分配所述各个RPC请求的执行资源。
17.根据权利要求15或16所述的业务处理服务器,其特征在于,所述设置单元包括: 资源分配模块,用于根据所述响应时间约束信息获取所述各个RPC请求的处理约束时间的约束剩余时间;根据预定义规则设置所述各个RPC请求的执行优先级,所述预定义规则包括:所述约束剩余时间越少,则设置的执行优先级越高; 优先级设置模块,用于根据所述响应时间约束信息获取所述各个RPC请求的处理约束时间的剩余时间;根据预定义规则分配所述各个RPC请求的执行资源,所述预定义规则包括:所述约束剩余时间越少,则分配的执行资源越多。
18.根据权利要求15至17任意一项所述的业务处理服务器,其特征在于,所述业务处理服务器还包括: 处理策略选择单元,用于根据所述响应时间约束信息和紧急阈值选择所述RPC请求的处理策略,所述处理策略包括:第一处理策略和第二处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急阈值,则选择执行所述第一处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急阈值,则选择执行所述第二处理策略,所述第一处理策略的处理复杂度大于所述第二处理策略。
19.根据权利要求15至17任意一项所述的业务处理服务器,其特征在于,所述业务处理服务器还包括: 请求处理单元,用于对优先级最高的RPC请求进行处理,记录所述RPC请求的处理时间,并根据所述处理时间更新所述RPC请求的响应时间约束信息; 信息反馈单元,用于向所述业务分配服务器反馈完成处理的RPC请求的响应时间约束信息。
20.一种业务分配服务器,其特征在于,包括: 用户请求接收单元,用于接收用户请求; 信息分配单元,用于为所述用户请求分配响应时间约束信息,所述响应时间约束信息用于标记所述用户请求的处理约束时间和已发生处理时间; 请求生成单元,用于根据所述用户请求生成远程过程调用RPC请求; 请求发送单元,用于向业务处理服务器发送RPC请求,所述RPC请求携带有所述响应时间约束信息;使得所述业务处理服务器根据所述响应时间约束信息为所述RPC请求设置执行优先级,和/或分配执行资源。
21.根据权利要求20所述的业务分配服务器,其特征在于,所述信息分配单元具体用于: 根据所述响应时间约束信息的历史值以及所述业务处理服务器的硬件信息为所述用户请求分配响应时间约束信息。
22.根据权利要求21所述的业务分配服务器,其特征在于,信息分配单元包括: 第一分配模块,用于若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时发生了改变,则获取第一处理速度与第二处理速度的比值,将所述响应时间约束信息的历史值乘于所述比值,得到当前为所述用户请求分配的响应时间约束信息;所述第一处理速度为当前的业务处理服务器的硬件性能对所述RPC请求的处理速度,所述第二处理速度为记录所述响应时间约束信息的历史值时的业务处理服务器的硬件性能对所述RPC请求的处理速度; 第二分配模块,用于若当前的业务处理服务器的硬件性能,相对于记录所述响应时间约束信息的历史值时没有发生改变,则将所述响应时间约束信息的历史值作为当前为所述用户请求分配的响应时间约束信息。
23.根据权利要求20至22任意一项所述的业务分配服务器,其特征在于,所述请求生成单元包括: 参数提取模块,用于提取完成所述用户请求所需的业务参数; 逻辑分析模块,用于根据预置的业务逻辑确定完成所述用户请求需要执行的步骤,根据所述需要执行的步骤确定需要调用的业务处理服务器; 请求生成模块,用于分别为所述需要调用的业务处理服务器分配相应的所述业务参数,生成与所述业务处理服务器对应的RPC请求。
24.根据权利要求20至22任意一项所述的业务分配服务器,其特征在于,所述业务处理服务器还包括: 信息接收单元,用于接收所述业务处理服务器反馈的响应时间约束信息; 信息更新单元,用于使用所述响应时间约束信息更新相应的RPC请求的响应时间约束信息。
25.根据权利要求24所述的业务分配服务器,其特征在于,所述业务分配服务器还包括: 分配策略选择单元,用于根据所述响应时间约束信息和紧急分配阈值选择所述用户请求对应的分配处理策略,所述分配处理策略包括:第一分配处理策略和第二分配处理策略,若所述响应时间约束信息的约束剩余时间大于所述紧急处理阈值,则选择执行所述第一分配处理策略,若所述响应时间约束信息的约束剩余时间小于或等于所述紧急处理阈值,则选择执行所述第二分配处理策略,所述第一分配处理策略的处理复杂度大于所述第二分配处理策略。
26.—种请求处理系统,其特征在于,包括: 业务分配服务器和业务处理服务器; 所述业务分配服务器用于接收用户请求;为所述用户请求分配响应时间约束信息,所述响应时间约束信息用于标记所述用户请求的处理约束时间和已发生处理时间;根据所述用户请求生成远程过程调用RPC请求;向业务处理服务器发送RPC请求;所述RPC请求携带有所述响应时间约束信息; 所述业务处理服务器用于接收业务分配服务器发送的远程过程调用RPC请求,将所述RPC请求加入服务请求队列;根据所述服务请求队列中各个RPC请求的响应时间约束信息设置所述各个RPC请求的执行优先级,和/或分配所述各个RPC请求的执行资源。
【文档编号】G06F9/54GK104243405SQ201310228246
【公开日】2014年12月24日 申请日期:2013年6月8日 优先权日:2013年6月8日
【发明者】马久跃, 包云岗, 隋秀峰, 任睿 申请人:华为技术有限公司, 中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1