一种远程调用方法、装置、设备和存储介质与流程
未命名
07-22
阅读:129
评论:0
1.本发明涉及通信领域,特别地,涉及一种远程调用方法、装置、设备和存储介质。
背景技术:
2.现有技术在远程调用过程中,常常采用同步调用的方式,同步调用中当调用方向响应方发送请求后,调用方仍旧会占用线程等待响应方的响应,这样会带来资源的浪费,当面临高并发场景时性能不足。
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.将数据处理中各节点的处理逻辑依序进行封装声明;
28.建立所述数据处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;
29.所述数据处理中各节点向其对应的上一节点申请处理数据;
30.当数据处理中最首端的节点接收到对应的下一节点申请处理数据时,开始数据处理:
31.数据处理中下一节点占用线程后接收上一节点的处理结果,根据所述上一节点的处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果,所述最末端的节点将所述最终的处理结果作为响应数据发送至调用方。
32.又一方面,本文实施例还提供了一种远程调用装置,所述装置应用于调用方,包括:
33.第一封装模块,用于将请求处理中各节点的处理逻辑依序进行封装声明;
34.第一调用关系建立模块,用于建立所述请求处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;
35.第一请求模块,用于所述请求处理中各节点向其对应的上一节点申请处理请求数据;
36.第一处理模块,用于当请求处理中最首端的节点接收到对应的下一节点申请处理请求数据后,开始请求处理:请求处理中下一节点占用线程后接收上一节点的处理结果,根据所述上一节点的处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果,所述最末端的节点将所述最终的处理结果发送至响应方;
37.第一响应模块,用于接收响应方发送的响应数据,触发所述响应处理中各节点处理响应数据。
38.又一方面,本文实施例还提供了一种远程调用装置,所述装置应用于响应方,包括:
39.第二封装模块,用于将数据处理中各节点的处理逻辑依序进行封装声明;
40.第二调用关系建立模块,用于建立所述数据处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;
41.第二请求模块,用于所述数据处理中各节点向其对应的上一节点申请处理数据;
42.第二处理模块,用于当数据处理中最首端的节点接收到对应的下一节点申请处理数据时,开始数据处理数据处理中下一节点占用线程后接收上一节点的处理结果,根据所述上一节点的处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果,所述最末端的节点将所述最终的处理结果作为响应数据发送至调用方。
43.又一方面,本文实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述任意一项所述方法的指令。
44.又一方面,本文实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述任意一项所述方法的指令。
45.由以上本文实施例提供的技术方案可见,通过本文实施例的方法,达到异步无阻塞通讯,调用方向响应方发送请求后,调用方无需占用线程等待响应方的响应,而是当响应数据产生时才需要占用线程进行后续处理。大大增强了开发分布式应用的能力,使开发人员开发效率变得更高的同时,使执行逻辑前后在不同的线程中,提高了系统的处理能力和io吞吐,通过使用更少的线程处理更多的事务,提高了资源利用率,同时使代码的可读性变得更高,也利于后期的维护。
46.为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
47.为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1示出了本文实施例提供的一种远程调用方法的流程示意图;
49.图2示出了本文实施例提供的在接收响应方发送的响应数据之前的流程示意图;
50.图3示出了本文实施例提供的接收响应方发送的响应数据,触发后续处理中各节点处理响应数据的流程示意图;
51.图4示出了本文实施例提供的一种远程调用方法的另一流程示意图;
52.图5示出了本文实施例提供的一种远程调用装置的模块结构示意图;
53.图6示出了本文实施例提供的一种远程调用装置的另一模块结构示意图;
54.图7示出了本文实施例提供的计算机设备的结构示意图。
55.附图符号说明:
56.100、第一封装模块;
57.200、第一调用关系建立模块;
58.300、第一请求模块;
59.400、第一处理模块;
60.500、第一响应模块;
61.600、第二封装模块;
62.700、第二调用关系建立模块;
63.800、第二请求模块;
64.900、第二处理模块;
65.702、计算机设备;
66.704、处理器;
67.706、存储器;
68.708、驱动机构;
69.710、输入/输出模块;
70.712、输入设备;
71.714、输出设备;
72.716、呈现设备;
73.718、图形用户接口;
74.720、网络接口;
75.722、通信链路;
76.724、通信总线。
具体实施方式
77.下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
78.现有技术在远程调用过程中,常常采用同步调用的方式,同步调用中当调用方向响应方发送请求后,调用方仍旧会占用线程等待响应方的响应,这样会带来资源的浪费,当面临高并发场景时性能不足。
79.为了解决上述问题,本文实施例提供了一种远程调用方法。图1是本文实施例提供的一种远程调用方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
80.需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
81.参照图1,本文提供一种远程调用方法,应用于调用方,包括:
82.s101:将请求处理中各节点的处理逻辑依序进行封装声明;
83.s102:建立所述请求处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;
84.s103:所述请求处理中各节点向其对应的上一节点申请处理请求数据;
85.s104:当请求处理中最首端的节点接收到对应的下一节点申请处理请求数据后,开始请求处理:
86.s105:请求处理中下一节点占用线程后接收上一节点的处理结果,根据所述上一节点的处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果,所述最末端的节点将所述最终的处理结果发送至响应方;
87.s106:接收响应方发送的响应数据,触发后续处理中各节点处理响应数据。
88.调用方在向响应方发送请求时,调用方内部需要对请求进行处理,在请求处理过程中划分有多个节点,每一个节点有其对应的处理逻辑,各节点在进行处理时是依序执行,例如请求处理过程中划分有节点a、b、c,在请求处理时先通过节点a执行对应的a处理后,再通过节点b执行对应的b处理,最后通过节点c执行对应的c处理。需要对各节点的处理逻辑进行封装声明,封装声明的过程中各节点处理逻辑对应的代码不会立即执行。
89.进一步需要建立请求处理中各节点之间的调用关系,即当节点a有处理结果后执行节点b的处理逻辑,当节点b有处理结果后执行节点c的处理逻辑,各节点仅在上一节点有处理结果后才可能执行对应的处理逻辑。
90.在请求处理中各节点向其对应的上一节点申请处理请求数据,一般来说这一过程是倒序进行的,例如节点c向节点b申请处理请求数据,节点b向节点a申请处理请求数据。需要说明的是,这一过程还进一步包括:所述请求处理中各节点反向控制其对应的上一节点发送的数据量。当各节点向其对应的上一节点申请处理请求数据的同时,可以向其对应的上一节点发送所需的数据量,例如节点c向节点b发送每次所需数据量为10条,以确保当后续节点b有处理结果时,每次向节点c发送10条数据。对于各节点来说,由于处理能力不同,导致各节点有其对应的数据处理阈值,如此反向控制上一节点发送的数据量,可以达到提高处理效率,合理利用资源的目的。当然,也可以不反向控制上一节点发送的数据量,具体可以根据实际需要设定。
91.当所述请求处理中最首端的节点接收到对应的下一节点申请处理请求数据后,开始请求处理之前还可以包括:依序通知请求处理中各节点做好处理请求数据的准备。具体的,可以依据节点a、b、c的顺序依次通知各节点做好处理请求数据的准备。
92.进一步的,可以开始请求处理。请求处理中下一节点占用线程后接收上一节点的处理结果,根据上一节点的处理结果执行处理逻辑后释放线程,这个过程中最首端的节点不存在上一节点,最首端的节点占用线程后获取待处理的请求,执行对应的处理逻辑后释放线程。占用线程的方式可以是开辟新的线程,也可以是从预设的线程池中获取一线程。
93.节点a、b、c依序处理后,直至最末端的节点c执行处理逻辑,得到最终的处理结果,节点c将所述最终的处理结果发送至响应方。响应方根据调用方发送的请求作出响应,例如调用方请求id为1的用户的详细信息,响应方接收到请求后进行查询,查询得到结果后将id为1的用户的详细信息作为响应数据反馈至调用方。调用方接收响应方发送的响应数据,触发后续处理中各节点处理响应数据,其中后续处理指的是对响应数据进行的处理步骤。
94.通过本文实施例的方法,达到异步无阻塞通讯,调用方向响应方发送请求后,调用方无需占用线程等待响应方的响应,而是当响应数据产生时才需要占用线程进行后续处理。大大增强了开发分布式应用的能力,使开发人员开发效率变得更高的同时,使执行逻辑
d进行处理后发送至响应方。
106.当然,各节点的处理逻辑可以存在其他的可能性,而各节点的处理逻辑的顺序也可以包括其他的顺序。在本文实施例中,请求处理和后续处理中各节点的处理逻辑可以为相反的处理逻辑,也可以根据用户的需求设置使请求处理和后续处理中各节点的处理逻辑无关。
107.在本文实施例中,参照图4,还提供一种远程调用方法,应用于响应方,包括:
108.s401:将数据处理中各节点的处理逻辑依序进行封装声明;
109.s402:建立所述数据处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;
110.s403:所述数据处理中各节点向其对应的上一节点申请处理数据;
111.s404:当数据处理中最首端的节点接收到对应的下一节点申请处理数据时,开始数据处理:
112.s405:数据处理中下一节点占用线程后接收上一节点的处理结果,根据所述上一节点的处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果,所述最末端的节点将所述最终的处理结果作为响应数据发送至调用方。
113.若调用方的请求数据为id为1的用户信息,响应方接收到请求数据后可以通过数据反序列化、数据解密、数据解压和数据验签,得到请求数据具体为请求id为1的用户信息。
114.响应方查询得到id为1的用户信息后,需要通过数据处理中各节点对用户信息进行处理,其中各节点的处理逻辑依序可以为数据序列化、数据加密、数据压缩和数据加签,将处理后得到的用户信息的最终处理结果作为响应数据发送至调用方。
115.调用方接收到响应数据后,后续处理中各节点对响应数据进行处理,各节点的处理逻辑可以为数据反序列化、数据解密、数据解压和数据验签,经过后续处理后即可得到id为1的用户信息。
116.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。且本技术实施例描述的技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
117.基于上述所述的一种远程调用方法,本文实施例还提供一种远程调用装置。所述的装置可以包括使用了本文实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本文实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本文实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
118.具体地,图5是本文实施例提供的一种远程调用装置一个实施例的模块结构示意图,参照图5所示,本文实施例提供的一种远程调用装置,所述装置应用于调用方,包括:第一封装模块100、第一调用关系建立模块200、第一请求模块300、第一处理模块400、第一响应模块500。
119.第一封装模块100,用于将请求处理中各节点的处理逻辑依序进行封装声明;
120.第一调用关系建立模块200,用于建立所述请求处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;
121.第一请求模块300,用于所述请求处理中各节点向其对应的上一节点申请处理请求数据;
122.第一处理模块400,用于当请求处理中最首端的节点接收到对应的下一节点申请处理请求数据后,开始请求处理:请求处理中下一节点占用线程后接收上一节点的处理结果,根据所述上一节点的处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果,所述最末端的节点将所述最终的处理结果发送至响应方;
123.第一响应模块500,用于接收响应方发送的响应数据,触发所述响应处理中各节点处理响应数据。
124.基于上述所述的一种远程调用方法,参照图6,本文实施例还提供一种远程调用装置,所述装置应用于响应方,包括:第二封装模块600、第二调用关系建立模块700、第二请求模块800、第二处理模块900。
125.第二封装模块600,用于将数据处理中各节点的处理逻辑依序进行封装声明;
126.第二调用关系建立模块700,用于建立所述数据处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;
127.第二请求模块800,用于所述数据处理中各节点向其对应的上一节点申请处理数据;
128.第二处理模块900,用于当数据处理中最首端的节点接收到对应的下一节点申请处理数据时,开始数据处理:数据处理中下一节点占用线程后接收上一节点的处理结果,根据所述上一节点的处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果,所述最末端的节点将所述最终的处理结果作为响应数据发送至调用方。
129.参照图7所示,基于上述所述的一种远程调用方法,本文一实施例中还提供一种计算机设备702,其中上述方法运行在计算机设备702上。计算机设备702可以包括一个或多个处理器704,诸如一个或多个中央处理单元(cpu)或图形处理器(gpu),每个处理单元可以实现一个或多个硬件线程。计算机设备702还可以包括任何存储器706,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施方式中,存储器706上并可在处理器704上运行的计算机程序,所述计算机程序被所述处理器704运行时,可以执行根据上述方法的指令。非限制性的,比如,存储器706可以包括以下任一项或多种组合:任何类型的ram,任何类型的rom,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备702的固定或可移除部件。在一种情况下,当处理器704执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备702可以执行相关联指令的任一操作。计算机设备702还包括用于与任何存储器交互的一个或多个驱动机构708,诸如硬盘驱动机构、光盘驱动机构等。
130.计算机设备702还可以包括输入/输出模块710(i/o),其用于接收各种输入(经由输入设备712)和用于提供各种输出(经由输出设备714)。一个具体输出机构可以包括呈现
设备716和相关联的图形用户接口718(gui)。在其他实施例中,还可以不包括输入/输出模块710(i/o)、输入设备712以及输出设备714,仅作为网络中的一台计算机设备。计算机设备702还可以包括一个或多个网络接口720,其用于经由一个或多个通信链路722与其他设备交换数据。一个或多个通信总线724将上文所描述的部件耦合在一起。
131.通信链路722可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路722可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
132.对应于图1-图4中的方法,本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
133.本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如图1至图4所示的方法。
134.应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
135.还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
136.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
137.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
138.在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
139.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
140.另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
141.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
142.本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。
技术特征:
1.一种远程调用方法,其特征在于,应用于调用方,包括:将请求处理中各节点的处理逻辑依序进行封装声明;建立所述请求处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;所述请求处理中各节点向其对应的上一节点申请处理请求数据;当请求处理中最首端的节点接收到对应的下一节点申请处理请求数据后,开始请求处理:请求处理中下一节点占用线程后接收上一节点的处理结果,根据所述上一节点的处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果,所述最末端的节点将所述最终的处理结果发送至响应方;接收响应方发送的响应数据,触发后续处理中各节点处理响应数据。2.根据权利要求1所述的远程调用方法,其特征在于,所述触发后续处理中各节点处理响应数据之前还包括:将后续处理中各节点的处理逻辑依序进行封装声明;建立所述后续处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;所述后续处理中各节点向其对应的上一节点申请处理响应数据。3.根据权利要求2所述的远程调用方法,其特征在于,所述接收响应方发送的响应数据,触发后续处理中各节点处理响应数据进一步包括:接收响应方发送的响应数据,开始后续处理:后续处理中下一节点占用线程后接收上一节点的处理结果,根据所述上一节点的处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果。4.根据权利要求1所述的远程调用方法,其特征在于,所述请求处理和后续处理中各节点的处理逻辑为相反的处理逻辑。5.根据权利要求4所述的远程调用方法,其特征在于,所述请求处理中各节点的处理逻辑依序包括:数据序列化、数据加密、数据压缩和数据加签;所述后续处理中各节点的处理逻辑依序包括:数据反序列化、数据解密、数据解压和数据验签。6.根据权利要求1所述的远程调用方法,其特征在于,所述当请求处理中最首端的节点接收到对应的下一节点申请处理请求数据后,开始请求处理之前还包括:依序通知请求处理中各节点做好处理请求数据的准备。7.根据权利要求1所述的远程调用方法,其特征在于,所述请求处理中各节点向其对应的上一节点申请处理请求数据还进一步包括:所述请求处理中各节点反向控制其对应的上一节点发送的数据量。8.一种远程调用方法,其特征在于,应用于响应方,包括:将数据处理中各节点的处理逻辑依序进行封装声明;建立所述数据处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;所述数据处理中各节点向其对应的上一节点申请处理数据;
当数据处理中最首端的节点接收到对应的下一节点申请处理数据时,开始数据处理:数据处理中下一节点占用线程后接收上一节点的处理结果,根据所述上一节点的处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果,所述最末端的节点将所述最终的处理结果作为响应数据发送至调用方。9.一种远程调用装置,其特征在于,所述装置应用于调用方,包括:第一封装模块,用于将请求处理中各节点的处理逻辑依序进行封装声明;第一调用关系建立模块,用于建立所述请求处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;第一请求模块,用于所述请求处理中各节点向其对应的上一节点申请处理请求数据;第一处理模块,用于当请求处理中最首端的节点接收到对应的下一节点申请处理请求数据后,开始请求处理:请求处理中下一节点占用线程后接收上一节点的处理结果,根据所述上一节点的处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果,所述最末端的节点将所述最终的处理结果发送至响应方;第一响应模块,用于接收响应方发送的响应数据,触发所述响应处理中各节点处理响应数据。10.一种远程调用装置,其特征在于,所述装置应用于响应方,包括:第二封装模块,用于将数据处理中各节点的处理逻辑依序进行封装声明;第二调用关系建立模块,用于建立所述数据处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;第二请求模块,用于所述数据处理中各节点向其对应的上一节点申请处理数据;第二处理模块,用于当数据处理中最首端的节点接收到对应的下一节点申请处理数据时,开始数据处理:数据处理中下一节点占用线程后接收上一节点的处理结果,根据所述上一节点的处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果,所述最末端的节点将所述最终的处理结果作为响应数据发送至调用方。11.一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时,执行根据权利要求1-8任意一项所述方法的指令。12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1-8任意一项所述方法的指令。
技术总结
本文提供了一种远程调用方法、装置、设备和存储介质,其中方法应用于调用方,包括:将请求处理中各节点的处理逻辑依序进行封装声明;建立请求处理中各节点之间的调用关系,允许各节点在其对应的上一节点有处理结果后执行处理逻辑;请求处理中各节点向其对应的上一节点申请处理请求数据;当请求处理中最首端的节点接收到对应的请求数据后,开始请求处理:请求处理中下一节点占用线程后接收处理结果,根据处理结果执行处理逻辑后释放线程;直至最末端的节点执行处理逻辑,得到最终的处理结果,最末端的节点将最终的处理结果发送至响应方;接收响应方发送的响应数据,触发后续处理中各节点处理响应数据。本文能够降低资源消耗,提高远程调用的性能。远程调用的性能。远程调用的性能。
技术研发人员:李明 孙炎森 徐晓剑 李春兰 兰鑫玥 安雯
受保护的技术使用者:中信银行股份有限公司
技术研发日:2023.03.29
技术公布日:2023/7/20
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
