服务请求处理方法、装置、计算机设备及存储介质与流程
未命名
09-07
阅读:98
评论:0
1.本发明实施例涉及数据处理技术领域,具体涉及一种服务请求处理方法、装置、计算机设备及计算机可读存储介质。
背景技术:
2.目前,对于一个服务,其接收不同的访问请求时,对所有的访问请求,通过调用不同的子接口或组件来处理该访问请求。由于访问请求量较大,服务程序处理访问请求时,如图1所示,一般将服务内建立多个并发的请求处理队列,将请求并发分发到各个队列,各个队列中的请求再调用不同的子接口或组件来处理该请求。由于每个队列均可以存储对各个接口调用的请求,如果该服务下的某个接口出现阻塞,则对这个接口的持续不断的请求可能会扩散到各个队列,最终导致整个服务不可用。
技术实现要素:
3.鉴于上述问题,本发明实施例提供了一种服务请求处理方法、装置、计算机设备及计算机可读存储介质,用于解决现有技术中存在的并发请求分发到各个队列,如果该服务下的某个接口出现阻塞,这个接口持续不断的请求可能会扩散到各个队列,最终导致整个服务不可用的问题。
4.根据本发明实施例的一个方面,提供了一种服务请求处理方法,所述方法包括:
5.接收访问端对目标服务的当前服务请求;
6.确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务组件所对应的接口;
7.根据所述服务信息,从多个隔离队列中确定目标请求发送队列;其中,所述多个隔离队列包括多个请求发送队列,各个所述请求发送队列相互隔离,每个所述请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;各个所述请求发送队列根据所述子服务接口的重要程度或服务组件类别建立;
8.将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理。
9.在一种可选的方式中,所述根据所述服务信息,从多个请求发送队列中确定目标请求发送队列之前,所述方法还包括:根据所述子服务接口的重要程度,确定子服务接口的权重类别;根据所述权重类别为各个子服务接口配置对应的请求发送队列。
10.在一种可选的方式中,所述根据权重类别为各个子服务接口配置对应的请求发送队列,包括:分别为权重类别高于第一阈值的各个子服务接口配置单独的请求发送队列;为权重低类别于第一阈值的各个子服务接口配置相同的请求发送队列。
11.在一种可选的方式中,所述根据所述服务信息,从多个请求发送队列中确定目标
请求发送队列之前,所述方法还包括:确定各服务组件类别;根据所述服务组件类别,构建对应的请求发送队列。
12.在一种可选的方式中,所述隔离队列还包括多个响应接收队列;各个所述响应接收队列之间、各个所述响应接收队列与各个所述请求发送队列之间均相互隔离;所述响应接收队列根据所述子服务接口的重要程度或服务组件类别建立;所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理之后,所述方法还包括:接收所述目标子服务接口返回的服务响应;将所述服务响应添加至所述目标子服务接口对应的目标响应接收队列中。
13.在一种可选的方式中,所述根据所述服务信息,从多个隔离队列中确定目标请求发送队列,包括:根据所述服务信息,确定是否将所述当前服务请求拆分为多个子服务请求;当需要拆分为多个子服务请求时,确定各个子服务请求对应的目标请求发送队列;所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,包括:将各个所述子服务请求分别添加至对应的所述目标请求发送队列中,以使各个所述目标请求发送队列对应的目标线程池通过对应的目标服务接口调用目标服务对所述当前服务请求进行处理。
14.在一种可选的方式中,所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,包括:统计各个所述请求发送队列中服务请求的请求量;当根据所述请求量,动态调整各个所述请求发送队列对应的线程池的大小。
15.在一种可选的方式中,所述方法还包括:确定每个请求发送队列中服务请求量的上限和服务请求的请求时间;当所述请求发送队列中服务请求量达到上限时,拒绝接收新的服务请求;当所述请求时间超过预设的超时时间时,丢弃超时的服务请求。
16.根据本发明实施例的另一方面,提供了一种服务请求处理装置,包括:
17.接收模块,用于接收访问端对目标服务的当前服务请求;
18.第一确定模块,用于确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息和/或至少一个所访问的服务组件的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务组件所对应的接口;所述至少一个所访问的服务组件为所述目标服务下的至少一个组件;
19.第二确定模块,用于根据所述服务信息,从多个隔离队列中确定目标请求发送队列;其中,所述多个隔离队列包括多个请求发送队列,各个所述请求发送队列相互隔离,每个所述请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;各个所述请求发送队列根据所述子服务接口的重要程度或服务组件类别建立;
20.添加模块,用于将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理。
21.根据本发明实施例的另一方面,提供了一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互
间的通信;
22.所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行所述的服务请求处理方法的操作。
23.根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在计算机设备上运行时,使得计算机设备执行所述的服务请求处理方法的操作。
24.本发明实施例通过接收访问端对目标服务的当前服务请求;确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息和/或至少一个所访问的服务组件的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务所对应的接口;所述至少一个所访问的服务组件为所述目标服务下的至少一个组件;根据所述服务信息,从多个隔离队列中确定目标请求发送队列;其中,所述多个隔离队列包括多个请求发送队列,各个所述请求发送队列相互隔离,每个所述请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;各个所述请求发送队列根据所述子服务接口的重要程度或服务组件类别建立;将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,能够将对不同服务接口或组件调用的服务请求进行区分,放到不同的请求发送队列中,使得在一个接口出现问题时,不会影响对其他接口或组件的调用,使得服务可用。
25.上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
26.附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
27.图1示出了现有技术中服务程序处理服务请求的方法示意图;
28.图2示出了本发明实施例提供的服务请求处理方法的流程示意图;
29.图3示出了本发明实施例提供的服务请求处理方法对应的服务程序的请求发送队列的结构示意图;
30.图4示出了本发明实施例提供的服务请求处理方法对应的请求发送队列及响应接收队列的结构示意图;
31.图5示出了本发明实施例提供的服务请求处理装置的结构示意图;
32.图6示出了本发明实施例提供的计算机设备的结构示意图。
具体实施方式
33.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
34.图2示出了本发明实施例提供的服务请求处理方法的流程图,该方法由计算机设
备执行。该计算机设备可以是个人计算机、台式计算机、笔记本电脑、智能终端、分布式设备、云计算设备等。如图2所示,该方法包括以下步骤:
35.步骤110:接收访问端对目标服务的当前服务请求。
36.其中,该目标服务可以指的是集合了一类功能的服务程序,例如可以是应用程序,该应用程序内包括多个子功能模块,也即多个子服务。该访问端可以是应用程序的客户端,还可以是接入访问的第三方系统。其中,目标服务统一接收所有的服务请求,再根据不同的服务请求调用不同的子服务接口或组件对服务请求进行处理。本发明实施例中,该当前服务请求可以是对目标服务内各个子服务的请求。
37.例如,该目标服务可以是证券交易服务,该当前服务请求可以是证券交易服务请求,在证券交易服务中可以包括多个证券交易的子功能,如股票交易子功能、基金交易子功能等,当证券交易服务请求为股票交易服务请求时,目标服务首先将股票交易服务请求放至队列中,再通过股票交易子服务对应的子服务接口调用股票交易子服务进行请求的处理。如图1所示,现有的服务请求处理方法中,该股票交易服务请求可以放至4个列队中的任意一个列队(如放至队列1中),再排队等待处理。由于股票交易服务请求可能分布在1-4任意一个队列中,这使得当该股票交易子服务故障时,所有队列中都会造成阻塞,从而导致服务不可用。
38.步骤120:确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息和/或至少一个所访问的服务组件的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务组件所对应的接口;所述至少一个所访问的服务组件为所述目标服务下的至少一个组件。
39.其中,该当前服务请求是对该目标服务的请求,该目标服务下对应有多个子服务组件。其中,当前服务请求中的服务信息包括子服务接口的信息或所访问的服务组件的信息,根据当前服务请求中的服务信息,可以确定该当前服务请求是否需要通过子服务接口传递给某个子服务组件进行处理。其中,本发明实施例根据所述服务信息,确定是否将所述当前服务请求拆分为多个子服务请求;其中,当服务信息中包括多个子服务接口的信息或所访问的服务组件的信息时,确定需要将当前服务请求拆分为多个子服务请求。
40.本发明实施例在根据所述服务信息,从多个请求发送队列中确定目标请求发送队列之前,还预先根据预设的规则对各个子服务接口和/或服务组件进行分类;建立不同类型的子服务接口和/或服务组件与对应的请求发送队列的对应关系。具体地,在本发明一个实施例中,该预设的规则为按子服务接口重要程度分类。根据所述子服务接口的重要程度,确定子服务接口的权重类别,根据所述权重类别为各个子服务接口配置对应的请求发送队列。分别为权重类别高于第一阈值的各个子服务接口配置单独的请求发送队列;为权重低类别于第一阈值的各个子服务接口配置相同的请求发送队列。其中,第一阈值可以是根据具体场景进行相应设置的。例如,可以为各个子服务接口进行多维度评分,如功能是否是核心功能,该子服务接口与其他子服务接口之间的依赖关系等确定各子服务接口的评分。其中,也可将该权重类别设置为高或低两类。将权重类别为高的子服务接口配置子服务接口配置单独的请求发送队列,将权重类别为低的子服务接口配置为相同的请求发送队列。在本发明另一个实施例中,预设的规则为按服务组件的类别进行分类,建立所述服务组件与对应的请求发送队列的对应关系。其中,将一个服务请求对应的组件设置为同一请求发送
队列。其中,本发明实施例还可以根据访问端所访问的分库分表来构建不同的请求发送队列,分别为各个分库分表建立请求发送队列。如图3所示,为不同子服务接口和/或服务组件建立对应的请求发送队列,通过将相同分类的接口限定在同一个队列,其他队列仍能正常工作;通过将访问不同组件的请求限定在同一个队列中,某一个组件异常,不会波及其他的请求,将异常限定在较小的范围;根据接口的重要程度进行分类,非核心重要的接口出现阻塞时,不会影响到核心重要的接口,实现核心功能正常运行。
41.在构建完成对应的请求发送队列后,当接收到当前服务请求后,可以确定该服务请求对应的至少一个子服务接口的信息和/或至少一个所访问的服务组件的信息。
42.步骤130:根据所述服务信息,从多个隔离队列中确定目标请求发送队列;其中,所述多个隔离队列包括多个请求发送队列,各个所述请求发送队列相互隔离,每个所述请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;各个所述请求发送队列根据所述子服务接口的重要程度或服务组件类别建立。
43.其中,在确定该服务请求对应的至少一个子服务接口的信息和/或至少一个所访问的服务组件的信息后,可以根据子服务接口和/或服务组件与请求发送队列的对应关系,确定该当前服务请求对应的目标请求发送队列。
44.其中,当需要将当前服务请求拆分为多个子服务请求时,根据每个子服务请求对应的子服务接口信息确定对应的目标请求发送队列。
45.本发明实施例中,为不同的请求发送队列分别构建不同的线程池,各个请求发送队列分别独立处理服务请求。
46.步骤140:将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理。
47.其中,将当前服务请求添加至目标请求发送队列中,等待目标请求发送队列对应的线程池对该当前服务请求进行处理。当其他任何一个请求发送队列对应的子服务接口或组件故障,导致出现阻塞时,并不影响对该当前服务请求的处理,通过这种方式减少了对整个目标服务的影响,达到同一应用程序内服务隔离。
48.本发明实施例中,当当前服务请求拆分为多个子服务请求时,将各个所述子服务请求分别添加至对应的所述目标请求发送队列中,以使各个所述目标请求发送队列对应的目标线程池通过对应的目标服务接口调用目标服务对所述当前服务请求进行处理。其中,多个子服务请求可以并发进行,同时访问,以提高处理效率。
49.本发明实施例还统计各个所述请求发送队列中服务请求的请求量;当根据所述请求量,动态调整各个所述请求发送队列对应的线程池的大小。通过这种方式,可以在请求量过大的时候,动态对线程池进行调整,以适应其当前请求量,提高请求处理效率。
50.其中,如图4所示,本发明实施例的隔离队列还包括多个响应接收队列。各个所述响应接收队列之间、各个所述响应接收队列与各个所述请求发送队列之间均相互隔离;所述响应接收队列根据所述子服务接口的重要程度或服务组件类别建立。其中,独立的请求发送队列与响应接收队列充分应用状态标记管理内存,减少反复动态申请和释放内存,提高内存使用效率。
51.因此,在将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请
求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理之后,本发明实施例还接收所述目标服务接口返回的子服务响应;将所述服务响应添加至所述目标子服务接口对应的目标响应接收队列中。其中,当目标服务接收到一个服务请求时,该服务请求可能需要访问多个子服务组件,因此将服务请求拆分为多个子服务请求,由于每个子服务组件对各自子服务请求的处理时间可能不一样,因此每个子服务组件的子服务请求会生成一个唯一子请求标识,子服务组件响应该子服务请求,并返回子服务响应时也会带上这个唯一子请求标识,用于识别该子服务响应对应的子服务请求,并将该服务响应存放至该子服务组件对应的目标响应接收队列中。当所有的子服务响应均已返回并存放至各自的子响应接收队列后,目标服务从各个子响应接收队列中取出子服务响应,并进行组装和处理,得到该当前服务请求对应的处理结果,并将该处理结果返回给访问端。其中,本发明实施例中,目标服务对各个子服务组件对应的子服务请求进行状态标记,当接收到某个子服务请求的子服务响应后,将所述子服务请求的状态标记为响应就绪状态。当全部并发发出的子服务请求都处于响应就绪状态后,目标服务从各个子响应接收队列中取出子服务响应进行组装和处理,得到该当前服务请求对应的处理结果。
52.本发明实施例通过接收访问端对目标服务的当前服务请求;确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息和/或至少一个所访问的服务组件的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务所对应的接口;所述至少一个所访问的服务组件为所述目标服务下的至少一个组件;根据所述服务信息,从多个请求发送队列中确定目标请求发送队列;其中,各个所述请求发送队列相互隔离,每个所述请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,能够将对不同服务接口或组件调用的服务请求进行区分,放到不同的请求发送队列中,使得在一个接口出现问题时,不会影响对其他接口或组件的调用,使得服务可用。
53.图5示出了本发明实施例提供的服务请求处理装置的结构示意图。如图5所示,该装置300包括:
54.接收模块310,用于接收访问端对目标服务的当前服务请求;
55.第一确定模块320,用于确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息和/或至少一个所访问的服务组件的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务组件所对应的接口;所述至少一个所访问的服务组件为所述目标服务下的至少一个组件;
56.第二确定模块330,用于根据所述服务信息,从多个隔离队列中确定目标请求发送队列;其中,所述多个隔离队列包括多个请求发送队列,各个所述请求发送队列相互隔离,每个所述请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;各个所述请求发送队列根据所述子服务接口的重要程度或服务组件类别建立;
57.添加模块340,用于将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理。
58.在一种可选的方式中,所述装置还包括:
59.第三确定模块,用于根据所述子服务接口的重要程度,确定子服务接口的权重类别;
60.配置模块,用于根据所述权重类别为各个子服务接口配置对应的请求发送队列。
61.在一种可选的方式中,所述根据权重类别为各个子服务接口配置对应的请求发送队列,包括:分别为权重类别高于第一阈值的各个子服务接口配置单独的请求发送队列;为权重低类别于第一阈值的各个子服务接口配置相同的请求发送队列。
62.在一种可选的方式中,预设的规则为按服务组件的类别进行分类;所述建立不同类型的子服务接口和/或服务组件与对应的请求发送队列的对应关系,包括:建立所述服务组件与对应的请求发送队列的对应关系。
63.在一种可选的方式中,所述隔离队列还包括多个响应接收队列;各个所述响应接收队列之间、各个所述响应接收队列与各个所述请求发送队列之间均相互隔离;所述响应接收队列根据所述子服务接口的重要程度或服务组件类别建立;
64.所述装置还包括:
65.响应接收模块,用于接收所述目标子服务接口返回的服务响应;
66.响应添加模块,用于将所述服务响应添加至所述目标子服务接口对应的目标响应接收队列中。
67.在一种可选的方式中,所述根据所述服务信息,从多个隔离队列中确定目标请求发送队列,包括:根据所述服务信息,确定是否将所述当前服务请求拆分为多个子服务请求;当需要拆分为多个子服务请求时,确定各个子服务请求对应的目标请求发送队列。所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,包括:将各个所述子服务请求分别添加至对应的所述目标请求发送队列中,以使各个所述目标请求发送队列对应的目标线程池通过对应的目标服务接口调用目标服务对所述当前服务请求进行处理。
68.在一种可选的方式中,所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,包括:统计各个所述请求发送队列中服务请求的请求量;
69.当根据所述请求量,动态调整各个所述请求发送队列对应的线程池的大小。
70.在一种可选的方式中,所述装置还包括:第三确定模块,用于确定每个请求发送队列中服务请求量的上限和服务请求的请求时间;拒绝模块,用于当所述请求发送队列中服务请求量达到上限时,拒绝接收新的服务请求;丢弃模块,用于当所述请求时间超过预设的超时时间时,丢弃超时的服务请求。
71.该装置的具体工作过程与上述方法实施例的具体步骤大体一致,此处不再赘述。
72.本发明实施例通过接收访问端对目标服务的当前服务请求;确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息和/或至少一个所访问的服务组件的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务所对应的接口;所述至少一个所访问的服务组件为所述目标服务下的至少一个组件;根据所述服务信息,从多个请求发送队列中确定目标请求发送队列;其中,各个所述请求发送队列相互隔离,每个所述请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;将所
述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,能够将对不同服务接口或组件调用的服务请求进行区分,放到不同的请求发送队列中,使得在一个接口出现问题时,不会影响对其他接口或组件的调用,使得服务可用。
73.图6示出了本发明实施例提供的计算机设备的结构示意图,本发明具体实施例并不对计算机设备的具体实现做限定。
74.如图6所示,该计算机设备可以包括:处理器(processor)402、通信接口(communications interface)404、存储器(memory)406、以及通信总线408。
75.其中:处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。通信接口404,用于与其它设备比如访问端或其它服务器等的网元通信。处理器402,用于执行程序410,具体可以执行上述用于服务请求处理方法实施例中的相关步骤。
76.具体地,程序410可以包括程序代码,该程序代码包括计算机可执行指令。
77.处理器402可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算机设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
78.存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
79.程序410具体可以被处理器402调用使计算机设备执行以下操作:
80.接收访问端对目标服务的当前服务请求;
81.确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务组件所对应的接口;
82.根据所述服务信息,从多个隔离队列中确定目标请求发送队列;其中,所述多个隔离队列包括多个请求发送队列,各个所述请求发送队列相互隔离,每个所述请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;各个所述请求发送队列根据所述子服务接口的重要程度或服务组件类别建立;
83.将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理。
84.在一种可选的方式中,所述根据所述服务信息,从多个请求发送队列中确定目标请求发送队列之前,所述方法还包括:根据所述子服务接口的重要程度,确定子服务接口的权重类别;根据所述权重类别为各个子服务接口配置对应的请求发送队列。
85.在一种可选的方式中,所述根据权重类别为各个子服务接口配置对应的请求发送队列,包括:分别为权重类别高于第一阈值的各个子服务接口配置单独的请求发送队列;为权重低类别于第一阈值的各个子服务接口配置相同的请求发送队列。
86.在一种可选的方式中,所述根据所述服务信息,从多个请求发送队列中确定目标请求发送队列之前,所述方法还包括:确定各服务组件类别;根据所述服务组件类别,构建对应的请求发送队列。
87.在一种可选的方式中,所述隔离队列还包括多个响应接收队列;各个所述响应接收队列之间、各个所述响应接收队列与各个所述请求发送队列之间均相互隔离;所述响应接收队列根据所述子服务接口的重要程度或服务组件类别建立;所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理之后,所述方法还包括:接收所述目标子服务接口返回的服务响应;将所述服务响应添加至所述目标子服务接口对应的目标响应接收队列中。
88.在一种可选的方式中,所述根据所述服务信息,从多个隔离队列中确定目标请求发送队列,包括:根据所述服务信息,确定是否将所述当前服务请求拆分为多个子服务请求;当需要拆分为多个子服务请求时,确定各个子服务请求对应的目标请求发送队列;所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,包括:将各个所述子服务请求分别添加至对应的所述目标请求发送队列中,以使各个所述目标请求发送队列对应的目标线程池通过对应的目标服务接口调用目标服务对所述当前服务请求进行处理。
89.在一种可选的方式中,所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,包括:统计各个所述请求发送队列中服务请求的请求量;当根据所述请求量,动态调整各个所述请求发送队列对应的线程池的大小。
90.在一种可选的方式中,所述方法还包括:确定每个请求发送队列中服务请求量的上限和服务请求的请求时间;当所述请求发送队列中服务请求量达到上限时,拒绝接收新的服务请求;当所述请求时间超过预设的超时时间时,丢弃超时的服务请求。
91.本发明实施例通过接收访问端对目标服务的当前服务请求;确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息和/或至少一个所访问的服务组件的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务所对应的接口;所述至少一个所访问的服务组件为所述目标服务下的至少一个组件;根据所述服务信息,从多个请求发送队列中确定目标请求发送队列;其中,各个所述请求发送队列相互隔离,每个所述请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,能够将对不同服务接口或组件调用的服务请求进行区分,放到不同的请求发送队列中,使得在一个接口出现问题时,不会影响对其他接口或组件的调用,使得服务可用。
92.本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在计算机设备上运行时,使得所述计算机设备执行上述任意方法实施例中的服务请求处理方法。
93.可执行指令具体可以用于使得计算机设备执行以下操作:
94.接收访问端对目标服务的当前服务请求;
95.确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务组件所对应的接
口;
96.根据所述服务信息,从多个隔离队列中确定目标请求发送队列;其中,所述多个隔离队列包括多个请求发送队列,各个所述请求发送队列相互隔离,每个所述请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;各个所述请求发送队列根据所述子服务接口的重要程度或服务组件类别建立;
97.将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理。
98.在一种可选的方式中,所述根据所述服务信息,从多个请求发送队列中确定目标请求发送队列之前,所述方法还包括:根据所述子服务接口的重要程度,确定子服务接口的权重类别;根据所述权重类别为各个子服务接口配置对应的请求发送队列。
99.在一种可选的方式中,所述根据权重类别为各个子服务接口配置对应的请求发送队列,包括:分别为权重类别高于第一阈值的各个子服务接口配置单独的请求发送队列;为权重低类别于第一阈值的各个子服务接口配置相同的请求发送队列。
100.在一种可选的方式中,所述根据所述服务信息,从多个请求发送队列中确定目标请求发送队列之前,所述方法还包括:确定各服务组件类别;根据所述服务组件类别,构建对应的请求发送队列。
101.在一种可选的方式中,所述隔离队列还包括多个响应接收队列;各个所述响应接收队列之间、各个所述响应接收队列与各个所述请求发送队列之间均相互隔离;所述响应接收队列根据所述子服务接口的重要程度或服务组件类别建立;所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理之后,所述方法还包括:接收所述目标子服务接口返回的服务响应;将所述服务响应添加至所述目标子服务接口对应的目标响应接收队列中。
102.在一种可选的方式中,所述根据所述服务信息,从多个隔离队列中确定目标请求发送队列,包括:根据所述服务信息,确定是否将所述当前服务请求拆分为多个子服务请求;当需要拆分为多个子服务请求时,确定各个子服务请求对应的目标请求发送队列;所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,包括:将各个所述子服务请求分别添加至对应的所述目标请求发送队列中,以使各个所述目标请求发送队列对应的目标线程池通过对应的目标服务接口调用目标服务对所述当前服务请求进行处理。
103.在一种可选的方式中,所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,包括:统计各个所述请求发送队列中服务请求的请求量;当根据所述请求量,动态调整各个所述请求发送队列对应的线程池的大小。
104.在一种可选的方式中,所述方法还包括:确定每个请求发送队列中服务请求量的上限和服务请求的请求时间;当所述请求发送队列中服务请求量达到上限时,拒绝接收新的服务请求;当所述请求时间超过预设的超时时间时,丢弃超时的服务请求。
[0105][0106]
本发明实施例提供一种服务请求处理装置,用于执行上述服务请求处理方法。
[0107]
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使计算机设备执行上述任意方法实施例中的服务请求处理方法。
[0108]
本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的服务请求处理方法。
[0109]
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0110]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0111]
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
[0112]
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0113]
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
技术特征:
1.一种服务请求处理方法,其特征在于,所述方法包括:接收访问端对目标服务的当前服务请求;确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务组件所对应的接口;根据所述服务信息,从多个隔离队列中确定目标请求发送队列;其中,所述多个隔离队列包括多个请求发送队列,各个所述请求发送队列相互隔离,每个所述请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;各个所述请求发送队列根据所述子服务接口的重要程度或服务组件类别建立;将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理。2.根据权利要求1所述的方法,其特征在于,所述根据所述服务信息,从多个请求发送队列中确定目标请求发送队列之前,所述方法还包括:根据所述子服务接口的重要程度,确定子服务接口的权重类别;根据所述权重类别为各个子服务接口配置对应的请求发送队列。3.根据权利要求2所述的方法,其特征在于,所述根据权重类别为各个子服务接口配置对应的请求发送队列,包括:分别为权重类别高于第一阈值的各个子服务接口配置单独的请求发送队列;为权重低类别于第一阈值的各个子服务接口配置相同的请求发送队列。4.根据权利要求1所述的方法,其特征在于,所述隔离队列还包括多个响应接收队列;各个所述响应接收队列之间、各个所述响应接收队列与各个所述请求发送队列之间均相互隔离;所述响应接收队列根据所述子服务接口的重要程度或服务组件类别建立;所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理之后,所述方法还包括:接收所述目标子服务接口返回的服务响应;将所述服务响应添加至所述目标子服务接口对应的目标响应接收队列中。5.根据权利要求1所述的方法,其特征在于,所述根据所述服务信息,从多个隔离队列中确定目标请求发送队列,包括:根据所述服务信息,确定是否将所述当前服务请求拆分为多个子服务请求;当需要拆分为多个子服务请求时,确定各个子服务请求对应的目标请求发送队列;所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,包括:将各个所述子服务请求分别添加至对应的所述目标请求发送队列中,以使各个所述目标请求发送队列对应的目标线程池通过对应的目标服务接口调用目标服务对所述当前服务请求进行处理。6.根据权利要求1所述的方法,其特征在于,所述将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理,包括:
统计各个所述请求发送队列中服务请求的请求量;当根据所述请求量,动态调整各个所述请求发送队列对应的线程池的大小。7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:确定每个请求发送队列中服务请求量的上限和服务请求的请求时间;当所述请求发送队列中服务请求量达到上限时,拒绝接收新的服务请求;当所述请求时间超过预设的超时时间时,丢弃超时的服务请求。8.一种服务请求处理装置,其特征在于,所述装置包括:接收模块,用于接收访问端对目标服务的当前服务请求;第一确定模块,用于确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息和/或至少一个所访问的服务组件的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务所对应的接口;所述至少一个所访问的服务组件为所述目标服务下的至少一个组件;第二确定模块,用于根据所述服务信息,从多个请求发送队列中确定目标请求发送队列;其中,各个所述请求发送队列相互隔离,每个所述请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;添加模块,用于将所述当前服务请求添加至所述目标请求发送队列中,以使所述目标请求发送队列对应的目标线程池通过目标子服务接口调用目标子服务组件对所述当前服务请求进行处理。9.一种计算机设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7任意一项所述的服务请求处理方法的操作。10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令在计算机设备上运行时,使得计算机设备执行如权利要求1-7任意一项所述的服务请求处理方法的操作。
技术总结
本发明实施例涉及数据处理技术领域,公开了一种服务请求处理方法,该方法包括:接收访问端对目标服务的当前服务请求;确定所述当前服务请求对应的服务信息;所述服务信息包括至少一个子服务接口的信息,其中,至少一个子服务接口为所述目标服务下的至少一个子服务组件所对应的接口;根据服务信息从多个请求发送队列中确定目标请求发送队列;各个请求发送队列相互隔离,每个请求发送队列分别对应不同的线程池、子服务接口和/或服务组件;将当前服务请求添加至目标请求发送队列中,以使目标请求发送队列对应的目标线程池通过目标服务接口调用目标服务对当前服务请求进行处理。本发明实施例实现了服务请求的相互隔离,提高了数据处理效率。处理效率。处理效率。
技术研发人员:范子果 刘阳 郑粤栋 杨建立 薛仲义
受保护的技术使用者:国信证券股份有限公司
技术研发日:2023.06.16
技术公布日:2023/9/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
