链路处理方法及装置与流程

文档序号:30952141发布日期:2022-07-30 08:06阅读:127来源:国知局
链路处理方法及装置与流程

1.本技术属于计算机领域,具体涉及一种链路处理方法及装置。


背景技术:

2.在计算机领域中,为了提高开发效率,单个应用程序可以由多个松散耦合且可独立部署的服务组成,而实现各个独立的服务之间的互联是十分重要的。
3.相关技术为了实现服务之间的互联,一般利用远程过程调用(remote procedure call,rpc)框架或超文本传输协议(hyper text transfer protocol,http)将一个服务的请求简单地转发至另一个服务的请求上,这种方式中待执行的请求链路由单个请求组成,无法使用请求链路处理复杂业务。


技术实现要素:

4.本技术实施例提供一种链路处理方法及装置,解决相关技术中无法使用请求链路处理复杂业务的问题。
5.第一方面,本技术实施例提出了一种链路处理方法,包括:
6.接收目标请求;
7.从请求链路成品库中获取与所述目标请求对应的目标请求链路,其中,所述目标请求链路包括请求支路,所述请求支路包括至少一个,所述请求支路中的每一个请求支路为基于链路构造规则得到的请求支路,所述链路构造规则包括分发规则、编排规则和增强规则中的至少一种;
8.确定所述目标请求链路的目标执行通路;
9.按照所述目标执行通路执行所述目标请求链路。
10.第二方面,本技术实施例提出了一种链路处理装置,包括:接收模块、获取模块、确定模块以及执行模块;
11.所述接收模块,用于接收目标请求;
12.所述获取模块,用于从请求链路成品库中获取与所述目标请求对应的目标请求链路,其中,所述目标请求链路包括请求支路,所述请求支路包括至少一个,所述请求支路中的每一个请求支路为基于链路构造规则得到的请求支路,所述链路构造规则包括分发规则、编排规则和增强规则中的至少一种;
13.所述确定模块,用于确定所述目标请求链路的目标执行通路;
14.所述执行模块,用于按照所述目标执行通路执行所述目标请求链路。
15.第三方面,本技术实施例提出了一种电子设备,包括:存储器和处理器,存储器存储计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的方法。
16.第四方面,本技术实施例提出了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时实现如第一方面所述的方法。
17.在本技术实施例中,通过接收目标请求;从请求链路成品库中获取与所述目标请求对应的目标请求链路,其中,所述目标请求链路包括请求支路,所述请求支路包括至少一个,所述请求支路中的每一个请求支路为基于链路构造规则得到的请求支路,所述链路构造规则包括分发规则、编排规则和增强规则中的至少一种;确定所述目标请求链路的目标执行通路;按照所述目标执行通路执行所述目标请求链路。这样,由于目标请求链路包括请求支路,且所述请求支路中的每一个请求支路均是由分发规则、编排规则和增强规则中的至少一种构造得到的,可以保证得到的目标请求链路可以更加多样化,通过执行多样化的目标请求链路可以应对更加复杂多变的业务场景,有效地解决了相关技术中无法使用请求链路处理复杂业务的问题。
附图说明
18.本技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
19.图1-1是本技术实施例提供的一种链路处理方法的示意性流程图;
20.图1-2是本技术实施例提供的一种链路处理方法的示意性流程图;
21.图2是本技术实施例提供的另一种链路处理方法的示意性流程图;
22.图3-1是本技术实施例提供的另一种链路处理方法的示意性流程图;
23.图3-2是本技术实施例提供的确定目标请求链路的目标执行通路的步骤的示意性流程图;
24.图4是本技术实施例提供的另一种链路处理方法的示意性流程图;
25.图5-1是本技术实施例提供的另一种链路处理方法的示意性流程图;
26.图5-2是本技术实施例提供的构造请求支路的步骤的示意性流程图;
27.图5-3是本技术实施例提供的将请求支路组合得到请求链路的步骤的示意性流程图;
28.图6是本技术实施例提供的另一种链路处理方法的示意性流程图;
29.图7-1本技术实施例提供的另一种链路处理方法的示意性流程图;
30.图7-2是本技术实施例提供的另一种链路处理方法的示意性流程图;
31.图8是本技术实施例提供的一种链路处理装置的示意性结构图;
32.图9是本技术实施例提供的一种电子设备的示意性结构图。
具体实施方式
33.下面将详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能理解为对本技术的限制。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
34.本技术的说明书和权利要求书中的术语“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
35.为了实现各个独立的服务之间的互联互通,相关技术中一般利用同一微服务架构体系下的优势,利用已知的rpc框架或http协议将一个服务的请求简单地转发至另一个服务的请求上,这种方式存在以下缺点:一是相关技术仅支持对单个请求的转发,无法满足复杂业务下多个请求的分发和编排功能,且不支持对请求支路进行增强;二是相关技术无法有效地对入参数据和出参数据进行解析、剥离和重组,如不支持将前一个请求支路返回的数据放入上下文域中以供后续请求支路使用;三是相关技术仅支持同一语言体系的服务或者组件的互联互通,不支持不同语言编写且满足http协议服务的请求的互联互通。
36.在本技术提供的链路处理方法中,由于目标请求链路包括多个请求支路,且多个请求支路中的每一个请求支路均是由分发规则、编排规则和增强规则中的至少一种构造得到的,可以保证构造得到的目标请求链路可以更加多样化,通过执行多样化的目标请求链路可以应对更加复杂多变的业务场景,有效地解决了相关技术中无法使用请求链路处理复杂业务的问题。
37.特别地,本技术实施例支持对请求支路进行增强的功能。本技术实施例可以根据增强规则指定位于当前请求支路执行之前或执行之后的增强行为。举例而言,增强行为可以是在当前请求支路执行过程中出现异常之后需要执行的处理行为,增强行为还可以是在当前请求支路执行之前或执行之后预置的数据类型转换操作或者用户通过扩展入口自定义的处理行为。本技术实施例可以在不改变请求链路原有结构的前提下方便地对请求支路进行增强。
38.并且,本技术实施例还支持参数解析功能和上下文管理功能。本技术实施例可以使用指定的参数解析规则和上下文规则对请求支路进行配置,有效地对请求支路的入参数据和出参数据进行解析、剥离和重组,以方便执行请求链路中各个请求支路。例如,本技术实施例可以从某一个请求支路返回的执行结果中解析得到输出参数,并从解析得到的输出参数中剥离出指定的上下文数据放入上下文域中,上下文域中的上下文数据可以重组为后续请求支路的输入参数,以供后续请求支路使用。
39.此外,本技术实施例还支持不同语言编写的请求的互联互通。在构造请求链路的过程中,通过接收的网络服务描述语言接口文档生成对应的调用接口;利用调用接口将请求支路的编程语言转化为指定的编程语言,可以在请求链路中构造由不同语言编写且满足同一协议(例如http协议)的不同请求支路,使请求链路的应用范围更广泛。
40.本方案的应用领域具体可以是云计算领域、微服务领域、智能客服领域等。举例而言,在云计算领域中,巨大的数据计算处理任务通过网络被分解成多个小任务,通过处理和分析这些小任务即可得到结果。在智能客服领域中,用户可以通过聊天界面与智能客服(例如智能机器人)进行交互,智能客服可以接收用户发送的请求,并对请求进行处理。本技术实施例中的请求链路可以对应于上述云计算领域中的数据计算处理任务或者智能客服领域中用户请求所针对的任务,等等,本技术不作具体限制。
41.在本技术实施例中,本方案的执行主体可以是电子设备,本方案的应用场景可以是电子设备在接收到请求时执行与请求对应的链路的场景。其中,链路可以理解为多个请求经过分发处理、编排处理或增强处理后进行串行(或并行)混合组装形成的一套完整的请求链路。
42.下面将参照附图更详细地描述本技术的示例性实施例。
43.图1-1是本技术实施例提供的一种链路处理方法的示意性流程图。
44.如图1-1所示,本技术实施例提供的链路处理方法,可包括:
45.步骤110:接收目标请求;
46.步骤120:从请求链路成品库中获取与目标请求对应的目标请求链路,其中,目标请求链路包括请求支路,所述请求支路包括至少一个,请求支路中的每一个请求支路为基于链路构造规则得到的请求支路,链路构造规则包括分发规则、编排规则和增强规则中的至少一种;
47.步骤130:确定所述目标请求链路的目标执行通路;
48.步骤140:按照所述目标执行通路执行所述目标请求链路。
49.在步骤110中,目标请求可以是客户端发送的请求,所述客户端可以与执行本方法的电子设备进行通信。
50.在步骤120中,至少一个请求支路可以是多个请求支路,一个请求支路中可以包括至少一个请求。
51.在步骤120中,请求链路成品库中存储有各种各样的可执行的请求链路成品,请求链路成品是基于链路构造规则构造得到的。具体而言,按照链路构造规则,可以将多个请求经过指定处理后组装得到可执行的请求链路成品。
52.其中,链路构造规则可以包括分发规则、编排规则和增强规则中的至少一种。分发规则可以是将单个请求按照指定规则转发到多个对应的请求支路中;编排规则可以是将多个请求按照指定规则编排在一起;增强规则可以是指定在一个请求之前或者之后需要执行的目标行为。
53.能够理解的是,在本技术实施例中,按照链路构造规则可以构造得到各种各样的请求链路,请求链路的功能和结构更加多样化,有利于使用请求链路处理复杂多样的业务。
54.在步骤120中,目标请求携带有目标请求的请求标识,请求链路成品库中的每个请求链路也携带有请求链路的请求标识。通过匹配请求标识方式,可以从请求链路成品库中获取与目标请求的请求标识对应的目标请求链路,目标请求的请求标识可以是请求url、请求名称等,本技术不作具体限制。
55.在步骤130中,目标执行通路是从执行通路池(执行通路池可视为线程池)中分配出的可用的执行通路,目标执行通路可用于执行目标请求链路。
56.在步骤130中,目标请求链路携带有目标请求链路的目标执行方式。本技术可以直接从目标请求链路中解析得到目标请求链路的目标执行方式,并根据目标执行方式确定目标请求链路的目标执行通路。
57.在步骤140中,目标请求链路中可以包括多个请求,使用目标执行通路按照目标执行方式执行目标请求链路中的多个请求。
58.根据本技术实施例提供的链路处理方法,通过接收目标请求;从请求链路成品库中获取与所述目标请求对应的目标请求链路,其中,所述目标请求链路包括请求支路,所述请求支路包括至少一个,所述请求支路中的每一个请求支路为基于链路构造规则得到的请求支路,所述链路构造规则包括分发规则、编排规则和增强规则中的至少一种;确定所述目标请求链路的目标执行通路;按照所述目标执行通路执行所述目标请求链路。这样,由于目
标请求链路包括请求支路,且所述请求支路中的每一个请求支路均是由分发规则、编排规则和增强规则中的至少一种构造得到的,可以保证得到的目标请求链路可以更加多样化,通过执行多样化的目标请求链路可以应对更加复杂多变的业务场景,有效地解决了相关技术中无法使用请求链路处理复杂业务的问题。
59.图1-2是本技术实施例提供的一种链路处理方法的示意性流程图。如图1-2所示,本技术实施例提供的链路处理方法的具体执行流程可以包括:接收目标请求的url,从请求链路成品库中匹配得到与目标请求的url对应的目标请求链路,执行目标请求链路。具体可以按照并行执行方式或者串行执行方式执行目标请求链路中的多个请求,处理各个请求的执行结果,从各个请求的执行结果中解析得到输出参数,并从输出参数中剥离得到上下文数据,将上下文数据用于目标请求链路中后续请求的执行。
60.下面举例描述本技术实施例提供的链路处理方法。
61.图2是本技术实施例提供的另一种链路处理方法的示意性流程图。
62.如图2所示,本技术实施例提供的一种链路处理方法,可以包括:
63.步骤210:接收目标请求,目标请求携带请求url或请求名称。
64.其中,步骤210可以是步骤110的子步骤。
65.其中,目标请求携带的请求url或请求名称可以用于从请求链路成品库中匹配得到目标请求链路。
66.步骤220:从请求链路成品库中获取与所述目标请求中携带的所述请求url或请求名称对应的请求链路,作为目标请求链路。
67.其中,步骤220可以是步骤120的子步骤。
68.其中,目标请求中携带的请求url与目标请求链路的url相匹配,或者,目标请求中携带的请求名称与目标请求链路的名称相匹配。
69.步骤230:确定所述目标请求链路的目标执行通路;
70.其中,步骤230可以参考步骤130的具体内容。
71.步骤240:按照所述目标执行通路执行所述目标请求链路。
72.其中,步骤240可以参考步骤140的具体内容。
73.这样,可以根据目标请求中携带的请求url与请求链路的url之间的对应关系,或者目标请求中携带的请求名称与请求链路的名称之间的对应关系,准确地从请求链路成品库中匹配得到目标请求链路。
74.图3-1是本技术实施例提供的另一种链路处理方法的示意性流程图。
75.如图3-1所示,本技术实施例提供的另一种链路处理方法,可以包括:
76.步骤310:接收目标请求;
77.步骤320:从请求链路成品库中获取与所述目标请求对应的目标请求链路;
78.其中,所述目标请求链路包括请求支路,所述请求支路包括至少一个,所述请求支路中的每一个请求支路为基于链路构造规则得到的请求支路,所述链路构造规则包括分发规则、编排规则和增强规则中的至少一种;
79.步骤330:确定所述目标请求链路的目标执行方式,所述目标执行方式包括并行执行方式或串行执行方式;
80.步骤340:根据所述目标执行方式,确定所述目标请求链路的目标执行通路。
81.步骤350:按照所述目标执行通路执行所述目标请求链路。
82.其中,步骤310可以参考步骤110的具体内容。步骤320可以参考步骤120的具体内容。步骤330和步骤340可以是步骤130的子步骤。步骤350可以参考步骤140的具体内容。
83.在步骤330中,链路构造规则还包括串行规则或者并行规则,在根据串行规则或者并行规则构造得到目标请求链路之后,可以从目标请求链路中确定目标请求链路的目标执行方式。
84.其中,串行执行方式是目标请求链路中的各个请求按照指定规则依次执行的方式,并行执行方式是目标请求链路中的各个请求按照指定规则同时执行的方式。
85.在步骤340中,目标执行通路与目标执行方式相关联;目标执行方式不同,确定的目标执行通路不同。
86.这样,可以根据目标请求链路的目标执行方式,确定出目标请求链路的目标执行通路,以便于后续使用目标执行通路按照目标执行方式顺畅执行目标请求链路。
87.具体而言,在步骤340中,目标执行方式不同,目标执行通路的确定方式不同。如图3-2所示,上述步骤340具体可以包括:
88.步骤3401:在目标执行方式是串行执行的情况下,从执行通路池中确定一条空闲的执行通路作为目标执行通路;
89.步骤3402:在目标执行方式是并行执行的情况下,从执行通路池中确定多条空闲的执行通路作为目标执行通路。
90.其中,串行执行的特性是多个请求支路顺序地依次执行,并且有且仅能有一条执行通路。基于此,在目标执行方式是串行执行的情况下,可以从执行通路池中确定一条空闲的执行通路作为目标执行通路。
91.其中,并行执行的特性是同一时刻可以执行多个请求支路,需要一次性分配多个执行通路用于目标请求链路的执行。基于此,在目标执行方式是并行执行的情况下,可以从执行通路池中确定多条空闲的执行通路作为目标执行通路。
92.具体地,在实际应用中,还需要确定执行通路池中是否存在空闲的(即可用的)执行通路。在执行通路池中存在一条(或多条)空闲的执行通路的情况下,可以从执行通路池中确定一条(或多条)空闲的执行通路作为目标执行通路;在执行通路池中不存在一条(或多条)空闲的执行通路的情况下,可以将目标请求链路放入分配队列中等待分配空闲通路。
93.这样,可以根据串行执行或者并行执行的特性,具体确定目标执行通路的通路条数,保证目标请求链路使用目标执行通路顺畅执行。
94.此外,目标执行通路的确定方式还与目标请求链路的类型相关联。目标请求链路的类型不同,确定的目标执行通路不同。
95.其中,在确定目标执行通路的过程中,目标执行方式的优先级大于目标请求链路的类型的优先级。首先可以根据目标执行方式,确定目标请求链路的目标执行通路。在目标执行方式等同条件下,可以根据目标请求链路的类型,进一步确定目标请求链路的目标执行通路。
96.其中,目标请求链路的类型包括数据密集类型和计算密集类型。具体可以根据模拟执行目标请求链路中的请求支路之后返回的数据的个数是否大于阈值,来确定目标请求链路的类型是数据密集类型还是计算密集类型。在模拟执行目标请求链路中的请求支路之
后返回的数据的个数大于阈值的情况下,可以确定目标请求链路的类型为数据密集类型,否则,可以确定目标请求链路的类型为计算密集类型。
97.相应地,上述步骤3401中,在目标执行方式是并行执行的情况下,从执行通路池中确定多条空闲的执行通路作为目标执行通路,具体可以包括:
98.在目标执行方式是并行执行且目标请求链路是计算密集类型的情况下,根据当前中央处理器的核心数,确定目标执行通路的执行通路个数,将执行通路池中数目等于确定的执行通路个数的多条空闲的执行通路作为目标执行通路;
99.或者,在目标执行方式是并行执行且目标请求链路是数据密集类型的情况下,模拟执行目标请求链路中的请求支路,得到请求支路的执行平均时间;根据所述执行平均时间,确定目标执行通路的执行通路个数,将执行通路池中数目等于确定的执行通路个数的多条空闲的执行通路作为目标执行通路。
100.其中,当前中央处理器的核心数可以指单个中央处理器上处理数据的cpu内核的个数。例如cpu核心数可以是单个cpu在硬件方面集成的相互独立的内核的个数。举例而言,在当前中央处理器上集成了4个内核的情况下,可以根据中央处理器上集成的内核的个数确定中央处理器的核心数为4。当然,还可以通过其他方式确定中央处理器的核心数,本技术对此不作具体限制。
101.其中,在目标执行方式是并行执行且目标请求链路是数据密集类型的情况下,所述模拟执行后确定的执行平均时间越长,确定目标执行通路的执行通路个数越多。能够理解的是,在分配到的执行通路个数较多的情况下,可以将目标请求链路中的单个请求支路分配给多个执行通路执行,能够缩短目标请求链路的执行时间,提高执行目标请求链路的效率。
102.这样,在目标执行方式是并行执行的情况下,可以根据目标请求链路的类型,进一步确定目标请求链路的目标执行通路的条数,保证目标请求链路按照并行执行方式顺畅执行。
103.图4是本技术实施例提供的另一种链路处理方法的示意性流程图。
104.如图4所示,本技术实施例提供的链路处理方法,可包括:
105.步骤410:接收目标请求;
106.步骤420:从请求链路成品库中获取与所述目标请求对应的目标请求链路,其中,所述目标请求链路包括请求支路,所述请求支路包括至少一个,所述请求支路中的每一个请求支路为基于链路构造规则得到的请求支路,所述链路构造规则包括分发规则、编排规则和增强规则中的至少一种;
107.步骤430:确定所述目标请求链路的目标执行通路;
108.步骤440:按照所述目标执行通路执行所述多个请求中第i个请求,得到第i结果,所述第i结果包括所述第i个请求的输出参数;
109.步骤450:将第i个请求的输出参数存储在上下文域中。
110.其中,步骤410可以参考步骤110的具体内容。步骤420可以参考步骤120的具体内容。步骤430可以参考步骤130的具体内容。步骤440和步骤450可以是步骤140的子步骤。
111.在步骤440中,i为大于或等于1的正整数;第i个请求的输出参数用于多个请求中目标请求的执行,目标请求为第i个请求之后的请求。
112.其中,第i个请求和目标请求之间可能存在较强的依赖关系,在第i个请求执行完毕后返回第i结果,通过解析第i结果得到第i个请求对应的输出参数,解析得到的输出参数可以方便目标请求的执行。
113.这样,将上述输出参数存储在上下文域中,以便于后续目标请求的执行。
114.在一个具体的实施例中,链路构造规则可包括参数解析规则和上下文规则,在按照目标执行通路执行目标请求链路之前,本技术实施例提供的链路处理方法还可包括:
115.在所述链路构造规则的读取过程中,根据所述参数解析规则和所述上下文规则,初始化上下文模型;
116.上述步骤450具体可以包括:在第i个请求的输出参数与上下文模型匹配的情况下,将第i个请求的输出参数存储在上下文域中。
117.在本技术实施例中,第i个请求可以视为一个请求支路,目标请求链路的配置信息中包括位于第i个请求的配置信息。上下文模型可以基于第i个请求中配置的上下文规则和数据解析规则确定得到,上下文模型中可以包括第i个请求执行后需要解析得到的输入参数或输出参数,以及在第i个请求执行后进行数据解析的情况下指定存储在上下文域中的特定输入参数或特定输出参数。
118.这样,在第i结果包括第i个请求的、与上下文规则匹配的输出参数的情况下,可以将上述输出参数存储在上下文域中,以便于其他请求的执行。
119.在步骤450之后,本技术实施例提供的链路处理方法,还可包括:
120.步骤460:在执行所述目标请求的情况下,从所述上下文域中获取所述第i个请求的输出参数;
121.步骤470:基于所述第i个请求的输出参数,执行所述目标请求。
122.其中,步骤460可以是在步骤450之后执行。步骤470可以是步骤140的子步骤。
123.其中,目标请求可以为所述多个请求中的第i+1个请求;所述多个请求中的所述第i个请求的输出参数作为所述多个请求中第i+1个请求的输入参数。
124.当然,目标请求不限于第i+1个请求,也可以是第i+2个请求、第i+3个请求等等,本技术不作具体限制。
125.这样,可以根据上下文域中存储的第i个请求的输出参数确定目标请求的输入参数,并在目标请求的输入参数满足请求入参规则时,执行目标请求。
126.在步骤470之后,本技术实施例提供的链路处理方法,还可包括:
127.在目标请求链路包括的多个请求执行完成的情况下,返回目标请求链路的执行结果。
128.其中,在目标执行方式是并行执行的情况下,将所述多个请求的执行结果聚合为目标请求链路的执行结果。
129.其中,在目标执行方式是串行执行的情况下,可以将所述多个请求中最后执行的请求的执行结果作为目标请求链路的执行结果,或者,还可以将指定的某个请求的执行结果作为目标请求链路的执行结果。
130.这样,可以按照目标执行方式执行目标请求链路中的全部请求之后,根据目标请求链路中的请求的执行结果,返回目标请求链路的执行结果。
131.此外,在步骤110接收目标请求之前,本技术实施例还可按照预先配置的链路构造
规则构造请求链路,并将其放入请求链路成品库中。
132.图5-1是本技术实施例提供的另一种链路处理方法的示意性流程图。
133.如图5所示,在步骤110接收目标请求之前,本技术实施例提供的链路处理方法,还可包括:
134.步骤510:构造请求支路。
135.具体而言,可以基于链路构造规则中的分发规则、编排规则和增强规则中的至少一种,构造请求支路。
136.步骤520:对所述请求支路按照并行或串行的方式进行组合,得到请求链路,所述请求链路包括至少一个;
137.在步骤520中,链路构造规则还包括并行规则或串行规则。根据链路构造规则中指定的并行规则或串行规则,对请求支路按照并行或串行的方式进行组合,得到请求链路,所述请求链路包括至少一个。
138.步骤530:将所述请求链路放入所述请求链路成品库中。
139.这样,在执行目标请求链路之前,可以按照预先配置的链路构造规则构造请求链路并放入请求链路成品库中,保证请求链路成品库中存有多种多样的请求链路,以应对更加复杂多变的业务场景。
140.在一个具体的实施例中,链路构造规则可以包括分发规则、编排规则和增强规则中的至少一种,在步骤510中,请求支路包括:第一请求支路、第二请求支路、第三请求支路和第四请求支路中的至少一种。
141.如图5-2所示,上述步骤510中,构造请求支路具体可以包括:
142.步骤5101:在所述链路构造规则包括分发规则的情况下,按照所述分发规则,构造第一请求支路;
143.步骤5102:在所述链路构造规则包括编排规则的情况下,按照所述编排规则,构造第二请求支路;
144.步骤5103:在所述链路构造规则包括分发规则和增强规则的情况下,按照所述分发规则和所述增强规则,构造第三请求支路;
145.步骤5104:在所述链路构造规则包括编排规则和增强规则的情况下,按照所述编排规则和所述增强规则,构造第四请求支路。
146.这样,可以对链路构造规则中的分发规则、编排规则和增强规则进行组合,灵活地构造不同类型的请求支路,使得请求支路的结构更多样化。
147.能够理解的是,链路构造规则(分发规则、编排规则和增强规则中的至少一种)指定了由此链路构造规则构造而成的请求链路中包含的各个请求支路的具体内容以及各个请求之间的关系。下面举例说明。
148.在一个具体的实施例中,目标请求链路的配置格式包括:所述目标请求链路的url和/或名称,以及所述目标请求链路的规则;
149.其中,所述目标请求链路的规则包括:规则类型、方式和规则所针对的目标对象;
150.所述规则类型包括分发类型和编排类型;所述方式包括串行方式和并行方式;所述目标对象包括:url、请求支路的上下文规则、请求支路的数据解析规则和请求支路的请求入参规则。
151.举例而言,目标请求链路的配置格式可以为{url:
“…”
,name:
“…”
,rule:{type:
“”
,way:
“…”
,target:[url:
“…”
,context:
“…”
,data_handle:
“…”
,request_param:
“…”
],

}}。
[0152]
其中,最外层的url可以表示目标请求链路的url;
[0153]
其中,最外层的name可以表示目标请求链路的名称;
[0154]
其中,rule可以表示目标请求链路的规则;
[0155]
其中,“rule”下可以分别单独指定分发规则、编排规则和增强规则;
[0156]
其中,type可以表示规则类型,type具体包括分发类型和编排类型;
[0157]
其中,way可以表示方式,way具体可以包括串行方式和并行方式;
[0158]
其中,target可以表示目标对象,目标对象可以视为一个请求支路;
[0159]
其中,target内的url可以表示url;
[0160]
其中,context可以表示请求支路的上下文规则。context可以指定将返回结果中的哪个参数放入上下文域中。
[0161]
其中,data_handle可以表示请求支路的数据解析规则。数据解析规则用于处理各个请求支路返回的执行结果,例如,如果data_handle配置data.info.a,表示获取data对象下info对象中的指定参数a。如果data_handle指定返回的参数是数组,还可以单独指定取哪个数组下的数据;如果data_handle不指定返回的数据,可以返回数组下满足条件的所有数据。
[0162]
其中,request_param可以表示请求支路的请求入参规则。例如,某个支路需以get请求和status值作为输入参数的形式发起请求,request_param可以直接配置status。在请求输入参数存在层级关系的情况下,可以用点号表示输入参数的层级,例如request_param配置a.b,表示b是对象a下的一个参数,可以以对象a下的一个参数b作为输入参数的形式发起请求。
[0163]
其中,上述目标请求链路的配置信息均可以根据目标请求链路对应的链路构造规则确定得到。
[0164]
这样,基于目标请求链路对应的链路构造规则,方便地得到目标请求链路的配置信息,以便于构造得到目标请求链路。
[0165]
进一步地,规则类型(type)具体包括分发类型和编排类型,按照规则类型的不同,目标请求链路中可以包括按照分发规则构造的第一请求支路或按照编排规则构造的第二请求支路。下面举例说明。
[0166]
第一种情况:目标请求链路为分发请求链路,分发请求链路的配置格式包括:{url:
“”
,名称:
“”
,规则:{类型:“分发”,方式:
“”
,目标:[url:
“”
,上下文规则:
“”
,请求头:
“”
,请求方式:
“”
,数据解析规则:
“”
,请求入参规则:
“”


],}}。
[0167]
举例而言,分发请求链路的配置格式可以是:{url:
“…”
,name:
“…”
,rule:{type:“distribute”,way:
“…”
,target:[url:
“…”
,sort:
“…”
,retry:
“…”
,context:
“…”
,header:
“…”
,request_method:
“…”
,data_handle:
“…”
,request_param:
“…”


],

}}。
[0168]
其中,最外层的“url”和“name”分别表示分发请求链路的url和名称,可以用于在接收目标请求之后从请求链路成品库中匹配得到与目标请求的请求url和或请求名称对应的目标请求链路。
[0169]
其中,“rule”可以表示具体的链路构造规则。
[0170]
其中,“type”为“distribute”可以表示请求链路是根据分发规则构造的。
[0171]
其中,“way”可以表示链路构造规则指定的请求链路的执行方式,可以包括串行执行方式或者并行执行方式,way=serial时表示串行执行,way=parallel时表示并行执行。
[0172]
其中,“target”可以表示按照分发规则构造的第一请求支路,“rule”下可以指定多个“target”。
[0173]
其中,“target”内的“url”可以表示具体要分发的请求支路的目标地址。此外,分发规则还可以嵌套使用,请求链路可以根据多个分发规则构造而成,举例而言,在一个请求链路中“target”内的“url”可以是另一个请求链路的url。
[0174]
其中,“target”内的“sort”可以表示该请求支路在整个请求链路的所有请求支路中所处的分发顺序。“sort”不配置表示无顺序,该请求支路可以随机分发)。
[0175]
其中,“target”内的“retry”可以表示具体要分发的请求支路的失败重试次数。
[0176]
其中,“target”内的“context”可以表示上下文规则。
[0177]
其中,“target”内的“header”可以表示请求头部。请求头部可以用于额外存储数据。其中,请求头部可以存储任何数据或者不存储数据。
[0178]
其中,“target”内的“request_method”可以表示请求方式。请求方式包括get或post。get是指从指定的资源请求数据,post是指向指定的资源提交要被处理的数据。
[0179]
其中,“target”内的“data_handle”可以表示数据解析规则。
[0180]
其中,“target”内的“request_param”可以表示请求入参规则,用于指定执行当前请求支路时输入参数满足的触发条件。
[0181]
其中,上述分发请求链路的配置信息均可以根据分发请求链路对应的分发规则确定得到。
[0182]
这样,基于分发请求链路对应的分发规则,方便地得到分发请求链路的配置信息,以便于构造得到分发请求链路。
[0183]
第二种情况:目标请求链路为编排请求链路,编排请求链路的配置格式包括:{url:
“”
,名称:
“”
,规则:{类型:“编排”,方式:
“”
,目标:[url:
“”
,上下文:
“”
,请求头:
“”
,请求方式:
“”
,数据解析规则:
“”
,请求入参规则:
“”
,之前:
“”


],}};其中,之前配置指定当前请求支路之前的请求支路。
[0184]
举例而言,编排请求链路的配置格式可以是{url:
“…”
,name:
“…”
,rule:{type:“arrange”,way:
“…”
,target:[url:
“…”
,sort:
“…”
,retry:
“…”
,context:
“…”
,header:
“…”
,request_method:
“…”
,data_handle:
“…”
,request_param:
“…”
,before:
“…”


],

}}。
[0185]
其中,最外层的“url”和“name”分别表示请求链路的url和名称,可以用于在接收目标请求之后从请求链路成品库中匹配得到与目标请求的请求url和或请求名称对应的目标请求链路。
[0186]
其中,“rule”可以表示具体的链路构造规则。
[0187]
其中,“type”等于“arrange”可以表示请求链路是根据编排规则构造的。
[0188]
其中,“way”可以表示链路构造规则指定的请求链路的执行方式,请求链路的执行方式可以包括串行执行方式或者并行执行方式。其中,way=serial时表示串行执行,way=
parallel时表示并行执行。
[0189]
其中,“target”可以表示按照编排规则构造的第二请求支路。“rule”下可以指定多个“target”。
[0190]
其中,“target”内的“url”可以表示具体要编排的请求支路的目标地址。
[0191]
其中,“target”内的“sort”可以表示该请求支路在整个请求链路的所有请求支路中所处的顺序。“sort”不配置表示无顺序,该请求支路可以随机执行)。
[0192]
其中,“target”内的“retry”可以表示具体要编排的请求支路的失败重试次数。
[0193]
其中,“target”内的“context”可以表示上下文规则。
[0194]
其中,“target”内的“header”可以表示请求头部。请求头部可以用于额外存储数据。其中,请求头部可以存储任何数据或者不存储数据。
[0195]
其中,“target”内的“request_method”可以表示请求方式。请求方式包括get或post。get是指从指定的资源请求数据,post是指向指定的资源提交要被处理的数据。
[0196]
其中,“target”内的“data_handle”可以表示数据解析规则。
[0197]
其中,“target”内的“request_param”可以表示请求入参规则,用于指定执行当前请求支路时输入参数满足的触发条件。
[0198]
其中,“target”内的“before”可以表示在当前请求支路之前指定执行的另一请求支路。
[0199]
其中,上述编排请求链路的配置信息均可以根据编排请求链路对应的编排规则确定得到。
[0200]
这样,基于编排请求链路对应的编排规则,方便地得到编排请求链路的配置信息,以便于构造得到编排请求链路。
[0201]
此外,增强规则的配置信息可以作用于上述按照分发规则构造的第一请求支路或按照编排规则构造的第二请求支路,以分别得到按照分发规则和增强规则构造的第三请求支路,或按照编排规则和增强规则构造的第四请求支路。
[0202]
具体而言,上述目标对象中还可以包括:增强配置,所述增强配置的格式包括:增强点,行为方式以及执行行为;
[0203]
其中,所述增强点指定增强行为放到请求支路执行之前还是之后;所述行为方式指定当前增强行为的方式;所述执行行为指定具体行为方式的执行行为。
[0204]
举例而言,增强配置的格式可以包括:{enhance:{point:“before/after”,action:
“…”
,execute:
“…”
}}。
[0205]
其中,增强配置可以作用于按照分发规则构造的第一请求支路或按照编排规则构造的第二请求支路。即上述增强配置{enhance:{point:“before/after”,action:
“…”
,execute:
“…”
}}可以分别配置到第一请求支路或第二请求支路对应的目标对象“target”中,以分别得到按照分发规则和增强规则构造的第三请求支路,或按照编排规则和增强规则构造的第四请求支路。
[0206]
其中,“enhance”可以表示增强配置。
[0207]
其中,“point”可以表示增强点,用于指定当前增强行为位于请求支路执行之前或执行之后。
[0208]
其中,“action”可以表示行为方式,用于指定当前增强行为的方式,当前增强行为
的方式可以包括异常处理、额外接口请求或者参数特定处理。
[0209]
其中,“execute”可以表示执行行为,用于指定行为方式的具体执行行为。例如,在action=exception(异常处理)的情况下,“execute”中指定在当前请求支路执行过程中出现异常之后需要执行的处理行为。在action=rpc(额外接口请求)的情况下,“execute”中指定当前目标请求链路的配置信息中已经存在的其他target(target可视为请求支路)。在action=param(参数特定处理)的情况下,“execute”可以指定预置的数据类型转换操作或者用户通过扩展入口自定义的处理行为。
[0210]
这样,基于请求支路对应的增强规则,方便地得到请求支路中增强行为的配置信息,以便于构造请求支路。
[0211]
在一个具体的实施例中,为了扩展请求链路的应用范围,请求支路中可以包括由第一编程语言编写的第一类请求和由第二编程语言编写的第二类请求。如图5-3所示,上述步骤520具体可以包括:
[0212]
步骤5201:在接收到网络服务描述语言接口文档的情况下,解析网络服务描述语言接口文档并生成对应的调用接口;
[0213]
步骤5202:利用所述调用接口将第二类请求的编程语言由第二编程语言转化为第一编程语言,得到转化后的第二类请求;
[0214]
步骤5203:对所述第一类请求和所述转化后的第二类请求按照并行或串行的方式进行组合,得到所述目标请求链路。
[0215]
在本技术实施例中,网络服务描述语言接口文档可以是wsdl(web services description language,web服务描述语言)接口文档。
[0216]
在本技术实施例中,第一编程语言不同于第二编程语言。例如,第一编程语言可以是java语言,第二编程语言可以是除了java语言之外满足http协议的其他编程语言。当然,第一编程语言和第二编程语言还可以是其他类型的编程语言,本技术不做具体限制。
[0217]
这样,可以在请求链路中构造由不同语言编写且满足同一协议(例如http协议)的不同请求支路,在请求链路中实现不同语言编写的不同请求支路的互联互通,以使请求链路的应用范围更广泛。
[0218]
在实际应用中,为了避免特殊格式的链路构造规则难以读取影响请求支路的构造,如图6所示,在构造请求支路之前,本技术实施例提供的链路处理方法还可包括:
[0219]
步骤610:在初始化的过程中,读取所述链路构造规则,并将所述链路构造规则解析成可读数据形态的规则;
[0220]
在本技术实施例中,在初始化链路构造系统的过程中,可以从配置中心读取链路构造规则,并将链路构造规则解析成可读数据形态的规则,将可读数据形态的规则放入存储中间件中。
[0221]
其中,配置中心中的链路构造规则可以是预先配置的,也可以由用户自定义设置,本技术不做具体限制。这样,扩展了链路构造规则的来源,使得链路构造规则的应用更广泛。
[0222]
步骤620:将所述可读数据形态的规则放入存储中间件中;
[0223]
在本技术实施例中,存储中间件可以用于存储数据,存储中间件可以包括待处理队列或者其他存储结构,本技术不作具体限制。
[0224]
步骤630:在满足指定条件的情况下,按照存储中间件中存储的所述可读数据形态的规则,构造请求支路。
[0225]
其中,步骤630可以是步骤510的子步骤。
[0226]
在本技术实施例中,链路构造规则满足指定条件的情况可以是链路构造规则变更的情况,例如,新增链路构造规则或者更新链路构造规则的情况。此时,可以根据存储中间件中存储的可读数据形态的规则,构造请求支路。
[0227]
这样,可以将链路构造规则读取解析为可读数据形态的规则,在链路构造规则满足指定条件的情况下使用可读数据形态的规则构造请求支路。
[0228]
此外,为了保证配置中心中的链路构造规则的实时性,在接收目标请求之前,本技术实施例提供的链路处理方法还可包括:
[0229]
从配置中心定时拉取链路构造规则;
[0230]
将所述拉取的链路构造规则与读取之后已经生效的链路构造规则进行比对;
[0231]
在所述拉取的链路构造规则匹配所述已经生效的链路构造规则的情况下,丢弃所述拉取的链路构造规则;
[0232]
在所述拉取的链路构造规则不匹配所述已经生效的链路构造规则的情况下,将所述拉取的链路构造规则放入存储中间件中的待处理队列。
[0233]
在本技术实施例中,除了在初始化的过程中从配置中心读取链路构造规则(即步骤610)之外,还可以主动定时从配置中心拉取配置的链路构造规则,将拉取到的链路构造规则与读取之后已经生效的链路构造规则进行比对,以确定配置中心存储的链路构造规则是否变更。在拉取的链路构造规则匹配已经生效的链路构造规则的情况下,说明配置中心存储的链路构造规则并未变更,可以丢弃拉取的链路构造规则。在拉取的链路构造规则不匹配已经生效的链路构造规则的情况下,说明配置中心存储的链路构造规则发生了变更,可以将拉取的链路构造规则放入存储中间件中的待处理队列,等待进一步处理。
[0234]
这样,可以通过主动定时拉取配置中心中的链路构造规则,并与读取之后已经生效的链路构造规则进行比对,监听配置中心配置的链路构造规则是否发生变更,主动判断链路构造规则是否满足指定条件(即链路构造规则是否发生变更),保证配置中心中的链路构造规则的实时性。
[0235]
进一步地,本技术实施例提供的链路处理方法还可包括:
[0236]
在所述拉取的链路构造规则不匹配所述已经生效的链路构造规则的情况下,确定所述已经生效的链路构造规则对应的第一版本号和所述拉取的链路构造规则对应的第二版本号。
[0237]
其中,对应于不同版本号的链路构造规则对应于不同的配置数据。
[0238]
在本技术实施例中,在链路构造规则发生变更的情况下,本技术实施例还可以对变更数据对应的名称维护一个版本号。同时,本技术还可以提供用户选择,在前一个版本号的链路构造规则还未处理的情况下是否将后一个版本号的链路构造规则直接覆盖前一版本号的链路构造规则;以及,在前一个版本号的链路构造规则还未处理的情况下按照哪一个版本号的链路构造规则排队处理。这样,可以将变更前后的链路构造规则维护不同的版本号,防止频繁操作链路构造规则时出现紊乱的情况。
[0239]
图7-1是本技术实施例提供的另一种链路处理方法的示意性流程图。如图7-1所
示,本技术实施例提供的一种链路处理方法的具体步骤流程包括以下几个部分:
[0240]
第一部分包括请求链路的构造:读取解析链路构造规则;将可读数据形态的链路构造规则放入存储中间件;读取可读数据形态的链路构造规则;构造第一请求支路、第二请求支路、第三请求支路、第四请求支路中的至少一种;将各种请求支路按照并行或者串行的方式组装成请求链路成品;将请求链路成品放入请求链路成品库中。
[0241]
第二部分包括目标请求链路的获取:接收目标请求;确定目标请求的url;根据目标请求的url从请求链路成品库中匹配得到对应的目标请求链路;
[0242]
第三部分包括目标请求通路的获取:根据目标请求链路的目标执行方式(串行执行或者并行执行)从执行通路池中分配得到目标请求通路;
[0243]
第四部分包括目标请求链路的执行:在获取目标请求链路和目标请求通路之后,使用目标请求通路按照目标执行方式执行目标请求链路中的各个请求。其中,执行各个请求可以包括;执行目标请求链路的第i个请求;解析第i个请求的执行结果得到第i个请求的输出参数;将输出参数放入上下文域中;判断目标请求链路中的所有请求是否执行完毕;若执行完毕返回目标请求链路的执行结果;若未执行完毕则从上下文域中获取第i个请求的输出参数作为第i+1个请求的输入参数,使用目标请求通路按照目标执行方式执行目标请求链路中的第i+1个请求,直至目标请求链路中的所有请求执行完毕。
[0244]
图7-2是本技术实施例提供的另一种链路处理方法的示意性流程图。
[0245]
如图7-2所示,本技术实施例提供的链路处理方法具体可以包括:
[0246]
步骤710:在初始化的过程中,读取所述链路构造规则,并将所述链路构造规则解析成可读数据形态的规则;
[0247]
其中,链路构造规则可以包括参数解析规则和上下文规则,在所述链路构造规则的读取过程中,还可以根据所述参数解析规则和所述上下文规则,初始化上下文模型。
[0248]
步骤720:将所述可读数据形态的规则放入存储中间件中;
[0249]
步骤730:在满足指定条件的情况下,按照所述存储中间件中存储的所述可读形态的规则,构造请求支路;对所述请求支路按照并行或串行的方式进行组合,得到请求链路,所述请求链路包括至少一个;将所述请求链路放入所述请求链路成品库中;
[0250]
其中,请求支路可以包括:第一请求支路、第二请求支路、第三请求支路和第四请求支路中的至少一种;构造请求支路包括:在所述链路构造规则包括分发规则的情况下,按照所述分发规则,构造第一请求支路;在所述链路构造规则包括编排规则的情况下,按照所述编排规则,构造第二请求支路;在所述链路构造规则包括分发规则和增强规则的情况下,按照所述分发规则和所述增强规则,构造第三请求支路;在所述链路构造规则包括编排规则和增强规则的情况下,按照所述编排规则和所述增强规则,构造第四请求支路。
[0251]
其中,请求支路中还可以包括由第一编程语言编写的第一类请求和由第二编程语言编写的第二类请求;对请求支路按照并行或串行的方式进行组合,得到请求链路,包括:在接收到网络服务描述语言接口文档的情况下,解析网络服务描述语言接口文档并生成对应的调用接口;利用所述调用接口将所述第二类请求的编程语言由所述第二编程语言转化为所述第一编程语言,得到转化后的第二类请求;对所述第一类请求和所述转化后的第二类请求按照并行或串行的方式进行组合,得到所述请求链路。
[0252]
步骤740:接收目标请求,目标请求中携带的请求url或请求名称;
[0253]
步骤750:从请求链路成品库中获取与所述目标请求中携带的所述请求url或请求名称对应的请求链路,作为目标请求链路;
[0254]
其中,所述目标请求链路包括请求支路,所述请求支路包括至少一个,所述请求支路中的每一个请求支路为基于链路构造规则得到的请求支路,所述链路构造规则包括分发规则、编排规则和增强规则中的至少一种;
[0255]
步骤760:确定所述目标请求链路的目标执行方式,所述目标执行方式包括并行执行方式或串行执行方式;根据所述目标执行方式,确定所述目标请求链路的目标执行通路;
[0256]
其中,在目标执行方式是串行执行的情况下,从执行通路池中确定一条空闲的执行通路作为目标执行通路;在目标执行方式是并行执行的情况下,从执行通路池中确定多条空闲的执行通路作为目标执行通路。
[0257]
其中,在目标执行方式是并行执行的情况下,从执行通路池中确定多条空闲的执行通路作为目标执行通路,包括:在目标执行方式是并行执行且目标请求链路是计算密集类型的情况下,根据当前中央处理器的核心数,确定目标执行通路的执行通路个数,将执行通路池中数目等于确定的执行通路个数的多条空闲的执行通路作为目标执行通路;或者,在目标执行方式是并行执行且目标请求链路是数据密集类型的情况下,模拟执行目标请求链路中的至少一个请求支路,得到至少一个请求支路的执行平均时间;根据所述执行平均时间,确定目标执行通路的执行通路个数,将执行通路池中数目等于确定的执行通路个数的多条空闲的执行通路作为目标执行通路。
[0258]
步骤770:按照所述目标执行通路执行所述多个请求中第i个请求,得到第i结果,所述第i结果包括所述第i个请求的输出参数;
[0259]
其中,目标请求链路包括多个请求;i为大于或等于1的正整数;所述第i个请求的输出参数用于所述多个请求中目标请求的执行,所述目标请求为所述第i个请求之后的请求;
[0260]
步骤780:在所述第i个请求的输出参数与所述上下文模型匹配的情况下,将第i个请求的输出参数存储在上下文域中;在执行所述目标请求的情况下,从所述上下文域中获取所述第i个请求的输出参数;基于所述第i个请求的输出参数,执行所述目标请求;
[0261]
步骤790:在目标请求链路包括的多个请求执行完成的情况下,返回目标请求链路的执行结果。
[0262]
其中,在目标请求方式是并行执行的情况下,将所述多个请求的执行结果聚合为目标请求链路的执行结果;其中,在目标请求方式是串行执行的情况下,将所述多个请求中最后执行的请求的执行结果作为目标请求链路的执行结果。
[0263]
采用本技术实施例提供的链路处理方法,由于目标请求链路包括请求支路,且所述请求支路中的每一个请求支路均是由分发规则、编排规则和增强规则中的至少一种构造得到的,可以保证得到的目标请求链路可以更加多样化,通过执行多样化的目标请求链路可以应对更加复杂多变的业务场景,有效地解决了相关技术中无法使用请求链路处理复杂业务的问题。
[0264]
需要说明的是,本技术实施例提供的链路处理方法,执行主体可以为链路处理装置,或者该链路处理装置中的用于执行链路处理方法的控制模块。本技术实施例中以链路处理装置执行链路处理方法为例,说明本技术实施例提供的链路处理装置。
[0265]
如图8所示,本技术实施例还提供一种链路处理装置800,包括:接收模块801、获取模块802、确定模块803以及执行模块804;
[0266]
所述接收模块801,用于接收目标请求;
[0267]
所述获取模块802,用于从请求链路成品库中获取与所述目标请求对应的目标请求链路,其中,所述目标请求链路包括请求支路,所述请求支路包括至少一个,所述请求支路中的每一个请求支路为基于链路构造规则得到的请求支路,所述链路构造规则包括分发规则、编排规则和增强规则中的至少一种;
[0268]
所述确定模块803,用于确定所述目标请求链路的目标执行通路;
[0269]
所述执行模块804,用于按照所述目标执行通路执行所述目标请求链路。
[0270]
根据本技术实施例提供的链路处理装置,包括接收模块,用于接收目标请求;获取模块,用于从请求链路成品库中获取与所述目标请求对应的目标请求链路,其中,所述目标请求链路包括请求支路,所述请求支路包括至少一个,所述请求支路中的每一个请求支路为基于链路构造规则得到的请求支路,所述链路构造规则包括分发规则、编排规则和增强规则中的至少一种;确定模块,用于确定所述目标请求链路的目标执行通路;执行模块,用于按照所述目标执行通路执行所述目标请求链路。这样,由于目标请求链路包括请求支路,且所述请求支路中的每一个请求支路均是由分发规则、编排规则和增强规则中的至少一种构造得到的,可以保证得到的目标请求链路可以更加多样化,通过执行多样化的目标请求链路可以应对更加复杂多变的业务场景,有效地解决了相关技术中无法使用请求链路处理复杂业务的问题。
[0271]
可选地,本技术实施例提供的链路处理装置还包括:
[0272]
构造模块,用于在所述接收目标请求之前,构造请求支路;
[0273]
组合模块,用于对所述请求支路按照并行或串行的方式进行组合,得到请求链路,所述请求链路包括至少一个;
[0274]
第一存储模块,用于将所述请求链路放入所述请求链路成品库中。
[0275]
这样,在执行目标请求链路之前,可以按照预先配置的链路构造规则构造请求链路并放入请求链路成品库中,保证请求链路成品库中存有多种多样的请求链路,以应对更加复杂多变的业务场景。
[0276]
可选地,在本技术实施例提供的链路处理装置中,请求支路包括:第一请求支路、第二请求支路、第三请求支路和第四请求支路中的至少一种;
[0277]
所述构造模块包括:
[0278]
第一构造模块,用于在所述链路构造规则包括分发规则的情况下,按照所述分发规则,构造第一请求支路;
[0279]
第二构造模块,用于在所述链路构造规则包括编排规则的情况下,按照所述编排规则,构造第二请求支路;
[0280]
第三构造模块,用于在所述链路构造规则包括分发规则和增强规则的情况下,按照所述分发规则和所述增强规则,构造第三请求支路;
[0281]
第四构造模块,用于在所述链路构造规则包括编排规则和增强规则的情况下,按照所述编排规则和所述增强规则,构造第四请求支路。
[0282]
这样,可以对链路构造规则中的分发规则、编排规则和增强规则进行组合,灵活地
构造不同类型的请求支路,使得请求支路的结构更多样化。
[0283]
可选地,本技术实施例提供的链路处理装置还包括:
[0284]
读取解析模块,用于在初始化的过程中,读取所述链路构造规则,并将所述链路构造规则解析成可读数据形态的规则;
[0285]
第二存储模块,用于将所述可读数据形态的规则放入存储中间件中;
[0286]
所述构造模块用于:在满足指定条件的情况下,按照所述存储中间件中存储的所述可读数据形态的规则,构造请求支路。
[0287]
这样,可以将链路构造规则读取解析为可读数据形态的规则,在链路构造规则满足指定条件的情况下使用可读数据形态的规则构造请求支路。
[0288]
可选地,在本技术实施例提供的链路处理装置中,所述请求支路中包括由第一编程语言编写的第一类请求和由第二编程语言编写的第二类请求;
[0289]
所述组合模块,包括:
[0290]
生成模块,用于在接收到网络服务描述语言接口文档的情况下,解析网络服务描述语言接口文档并生成对应的调用接口;
[0291]
转化模块,用于利用所述调用接口将所述第二类请求的编程语言由所述第二编程语言转化为所述第一编程语言,得到转化后的第二类请求;
[0292]
组合子模块,用于对所述第一类请求和所述转化后的第二类请求按照并行或串行的方式进行组合,得到所述请求链路。
[0293]
这样,可以在请求链路中构造由不同语言编写且满足同一协议(例如http协议)的不同请求支路,在请求链路中实现不同语言编写的不同请求支路的互联互通,以使请求链路的应用范围更广泛。
[0294]
可选地,在本技术实施例提供的链路处理装置中,所述目标请求携带请求url或请求名称;所述获取模块具体用于:从请求链路成品库中获取与所述目标请求中携带的所述请求url或请求名称对应的请求链路,作为目标请求链路。
[0295]
这样,可以根据目标请求中携带的请求url与请求链路的url之间的对应关系,或者目标请求中携带的请求名称与请求链路的名称之间的对应关系,准确地从请求链路成品库中定位得到目标请求链路。
[0296]
可选地,在本技术实施例提供的链路处理装置中,所述确定模块,包括:
[0297]
执行方式确定模块,用于确定所述目标请求链路的目标执行方式,所述目标执行方式包括并行执行方式或串行执行方式;
[0298]
执行通路确定模块,用于根据所述目标执行方式,确定所述目标请求链路的目标执行通路。
[0299]
这样,可以根据目标请求链路的目标执行方式,确定出目标请求链路的目标执行通路,以便于后续使用目标执行通路按照目标执行方式顺畅执行目标请求链路。
[0300]
可选地,在本技术实施例提供的链路处理装置中,所述执行通路确定模块,包括:
[0301]
第一确定模块,用于在目标执行方式是串行执行的情况下,从执行通路池中确定一条空闲的执行通路作为目标执行通路;
[0302]
第二确定模块,用于在目标执行方式是并行执行的情况下,从执行通路池中确定多条空闲的执行通路作为目标执行通路。
[0303]
这样,可以根据串行执行或者并行执行的特性,具体确定目标执行通路的通路条数,保证目标请求链路使用目标执行通路顺畅执行。
[0304]
可选地,在本技术实施例提供的链路处理装置中,所述第二确定模块具体用于:
[0305]
在目标执行方式是并行执行且目标请求链路是计算密集类型的情况下,根据当前中央处理器的核心数,确定目标执行通路的执行通路个数,将执行通路池中数目等于确定的执行通路个数的多条空闲的执行通路作为目标执行通路;
[0306]
或者,在目标执行方式是并行执行且目标请求链路是数据密集类型的情况下,模拟执行目标请求链路中的至少一个请求支路,得到至少一个请求支路的执行平均时间;根据所述执行平均时间,确定目标执行通路的执行通路个数,将执行通路池中数目等于确定的执行通路个数的多条空闲的执行通路作为目标执行通路。
[0307]
这样,在目标执行方式是并行执行的情况下,可以根据目标请求链路的类型,进一步确定目标请求链路的目标执行通路的条数,保证目标请求链路按照并行执行方式顺畅执行。
[0308]
可选地,在本技术实施例提供的链路处理装置中,所述目标请求链路包括多个请求;
[0309]
所述执行模块包括:
[0310]
第一执行模块,用于按照所述目标执行通路执行所述多个请求中第i个请求,得到第i结果,所述第i结果包括所述第i个请求的输出参数;
[0311]
第三存储模块,用于将所述第i个请求的所述输出参数存储在上下文域中;
[0312]
其中,i为大于或等于1的正整数;所述第i个请求的输出参数用于所述多个请求中目标请求的执行,所述目标请求为所述第i个请求之后的请求。
[0313]
这样,在第i结果包括第i个请求的输出参数的情况下,可以将上述输出参数存储在上下文域中,以便于后续目标请求的执行。
[0314]
可选地,本技术实施例提供的链路处理装置还包括:
[0315]
输出参数获取模块,用于在执行所述目标请求的情况下,从所述上下文域中获取所述第i个请求的输出参数;
[0316]
第二执行模块,用于基于所述第i个请求的输出参数,执行所述目标请求。
[0317]
这样,可以根据上下文域中存储的第i个请求的输出参数确定目标请求的输入参数,并在目标请求的输入参数满足请求入参规则时,执行目标请求。
[0318]
可选地,本技术实施例提供的链路处理装置中,所述目标请求为所述多个请求中的第i+1个请求;所述多个请求中的所述第i个请求的输出参数作为所述多个请求中第i+1个请求的输入参数。
[0319]
这样,可以根据上下文域中存储的第i个请求的输出参数确定第i+1个请求的输入参数,并在第i+1个请求的输入参数满足请求入参规则时,执行第i+1个请求。
[0320]
可选地,本技术实施例提供的链路处理装置中,所述链路构造规则包括参数解析规则和上下文规则,在所述按照所述目标执行通路执行所述目标请求链路之前,所述装置还包括:
[0321]
初始化模块,用于在所述链路构造规则的读取过程中,根据所述参数解析规则和所述上下文规则,初始化上下文模型;
[0322]
所述第三存储模块,具体用于在所述第i个请求的输出参数与所述上下文模型匹配的情况下,将第i个请求的输出参数存储在上下文域中。
[0323]
这样,在第i结果包括第i个请求的、与上下文规则匹配的输出参数的情况下,可以将上述输出参数存储在上下文域中,以便于其他请求的执行。
[0324]
可选地,本技术实施例提供的链路处理装置中,所述目标请求链路的配置格式包括:所述目标请求链路的url和/或名称,以及所述目标请求链路的规则;
[0325]
其中,所述目标请求链路的规则包括:规则类型、方式和规则所针对的目标对象;
[0326]
所述规则类型包括分发类型和编排类型;所述方式包括串行方式和并行方式;所述目标对象包括:url、请求支路的上下文规则、请求支路的数据解析规则和请求支路的请求入参规则。
[0327]
这样,基于目标请求链路对应的链路构造规则,方便地得到目标请求链路的配置信息,以便于构造得到目标请求链路。
[0328]
可选地,本技术实施例提供的链路处理装置中,所述目标对象还包括:增强配置,所述增强配置的格式包括:增强点,行为方式以及执行行为;
[0329]
其中,所述增强点指定增强行为放到请求支路执行之前还是之后;所述行为方式指定当前增强行为的方式;所述执行行为指定具体行为方式的执行行为。
[0330]
这样,基于请求支路对应的增强规则,方便地得到请求支路中增强行为的配置信息,以便于构造请求支路。
[0331]
可选地,本技术实施例提供的请求链路的处理装置中,所述目标请求链路为分发请求链路,所述分发请求链路的配置格式包括:{url:
“”
,名称:
“”
,规则:{类型:“分发”,方式:
“”
,目标:[url:
“”
,上下文规则:
“”
,请求头:
“”
,请求方式:
“”
,数据解析规则:
“”
,请求入参规则:
“”


],}}。
[0332]
这样,基于分发请求链路对应的分发规则,方便地得到分发请求链路的配置信息,以便于构造得到分发请求链路。
[0333]
可选地,本技术实施例提供的请求链路的处理装置中,所述目标请求链路为编排请求链路,所述编排请求链路的配置格式包括:{url:
“”
,名称:
“”
,规则:{类型:“编排”,方式:
“”
,目标:[url:
“”
,上下文:
“”
,请求头:
“”
,请求方式:
“”
,数据解析规则:
“”
,请求入参规则:
“”
,之前:
“”


],}};
[0334]
其中,之前配置指定当前请求支路之前的请求支路。
[0335]
这样,基于编排请求链路对应的编排规则,方便地得到编排请求链路的配置信息,以便于构造得到编排请求链路。
[0336]
本技术实施例中的链路处理装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本或者个人数字助理(personal digital assistant,pda)等,非移动电子设备可以为服务器、网络附属存储器(network attached storage,nas)、个人计算机(personal computer,pc)等,本技术实施例不作具体限定。
[0337]
本技术实施例中的链路处理装置可以为具有操作系统的装置。该操作系统可以为
安卓(android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本技术实施例不作具体限定。
[0338]
本技术实施例提供的链路处理装置能够实现上述方法实施例实现的各个过程,为避免重复,这里不再赘述。
[0339]
可选地,如图9所示,本技术实施例还提供一种电子设备900,包括处理器901和存储器902,存储器902存储可运行的程序或指令,该程序或指令被处理器901执行时实现上述链路处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0340]
需要说明的是,本技术实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
[0341]
本技术实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被执行时实现上述链路处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0342]
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
[0343]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本技术实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
[0344]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
[0345]
上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1