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

信息处理方法、系统及装置与流程

2022-02-22 18:28:04 来源:中国专利 TAG:


1.本技术涉及分布式服务技术领域,尤其涉及信息处理方法、系统及装置。


背景技术:

2.远程过程调用(remote procedure call,rpc)通讯方式,是指像调用本地方法一样调用远程方法。远程过程调用主要用于相同机器或不同机器的不同进程之间进行远程调用代码的工具。
3.随着大数据、机器学习等技术的兴起,越来越多的开发者使用python(一种计算机编程语言)进行数据分析、数据服务等方面的开发。
4.随着互联网的发展,单一的应用架构单纯靠物理硬件升级的收益越来越小,逐渐成为了系统的瓶颈,分布式服务架构成为必然趋势。分布式服务架构要求对服务进行拆分,不同服务之间的交互不可避免,但现有技术中并没有提供高效可复用的分布式rpc服务框架。


技术实现要素:

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.本技术实施例提供的一种信息处理系统,包括:所述的服务端的信息处理装置,和/或,所述的客户端的信息处理装置,和/或,所述的注册中心侧的信息处理装置。
46.本技术另一实施例提供了一种计算设备,其包括存储器和处理器,其中,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一种方法。
47.本技术另一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一种方法。
附图说明
48.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
49.图1为本技术实施例提供的系统框架示意图;
50.图2为本技术实施例提供的服务提供方的框架示意图;
51.图3为本技术实施例提供的服务消费方的实现过程示意图;
52.图4为本技术实施例提供的注册中心的各级节点示意图;
53.图5为本技术实施例提供的客户端与服务端的处理流程示意图;
54.图6为本技术实施例提供的服务端的一种信息处理方法的流程示意图;
55.图7为本技术实施例提供的客户端的一种信息处理方法的流程示意图;
56.图8为本技术实施例提供的注册中心侧的一种信息处理方法的流程示意图;
57.图9为本技术实施例提供的服务端的一种信息处理装置的结构示意图;
58.图10为本技术实施例提供的客户端的一种信息处理装置的结构示意图;
59.图11为本技术实施例提供的注册中心侧的一种信息处理装置的结构示意图;
60.图12为本技术实施例提供的服务端的另一种信息处理装置的结构示意图;
61.图13为本技术实施例提供的客户端的另一种信息处理装置的结构示意图;
62.图14为本技术实施例提供的注册中心侧的另一种信息处理装置的结构示意图。
具体实施方式
63.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,并不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
64.本技术实施例提供了信息处理方法、系统及装置,用以快速提供分布式rpc服务。
65.本技术实施例涉及的客户端,可以是终端设备,例如可以是计算机,也可以是具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。在不同的系统中,终端设备的名称可能也不相同,例如在5g系统中,终端设备可以称为用户设备(user equipment,ue)。无线终端设备可以经ran与一个或多个核心网进行通信,无线终端设备可以是移动终端设备,如移动电话(或称为“蜂窝”电话)和具有移动终端设备的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(personal communication service,pcs)电话、无绳电话、会话发起协议(session initiated protocol,sip)话机、无线本地环路(wireless local loop,wll)站、个人数字助理(personal digital assistant,pda)等设备。无线终端设备也可以称为系统、订户单元(subscriber unit)、订户站(subscriber station),移动站(mobile station)、移动台(mobile)、远程站(remote station)、接入点(access point)、远程终端设备(remote terminal)、接入终端设备(access terminal)、用户终端设备(user terminal)、用户代理(user agent)、用户装置(user device),本技术实施例中并不限定。
66.本技术实施例涉及的服务端,可以是网络侧的服务器等,本技术实施例中并不限定。
67.下面结合说明书附图对本技术各个实施例进行详细描述。需要说明的是,本技术实施例的展示顺序仅代表实施例的先后顺序,并不代表实施例所提供的技术方案的优劣。
68.术语解释:
69.python:一种计算机编程语言。
70.rpc:rpc是远程过程调用(remote procedure call)的缩写形式,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议,就像是调用本地的函数一样。
71.zookeeper:zookeeper是一个分布式的、开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
72.gil:gil是global interpreter lock的简称,是python的全局解释器锁,是python为了解决多线程之间数据完整性和状态同步而加的锁。
73.thrift:thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(rpc)框架来使用。
74.grpc:是一个高性能、开源和通用的rpc框架,面向服务端和移动端(即客户端)。基于http/2标准设计的,具有消息头压缩、双向流、流控、单传输控制协议(tcp,transmission control protocol)的多路复用等特性。
75.其中,python可以基于原生通信协议,例如tcp、http/1、http/2等协议或一些成熟的rpc框架,例如thrift、grpc开发单机的rpc应用,再加上gil的存在,python多线程不能很
好的利用多核cup,所以python要实现分布式rpc服务需要做很多工作。
76.服务的注册与发现、负载均衡、容错等是一个分布式rpc服务所必需的功能,如果缺少一个高效可复用的分布式rpc框架,python开发者每次都要重新开发程序,而且分布式rpc服务对开发者的底层技术要求高。本技术实施例提供的技术方案,把分布式rpc服务的必要组件抽取出来,使得抽取出来的组件具有可复用的效果,使开发者不用关注分布式rpc服务底层技术,专注于业务开发,快速响应市场需求。
77.参见图1,本技术实施例把分布式rpc服务所必需的模块抽取出了三大组件:服务提供方(即服务端)、服务消费方(即客户端)、注册中心。
78.三个组件关系如下:
79.一、服务提供方启动的时候,会自动向注册中心登记注册服务信息。
80.所述服务信息包括:服务提供方可以提供哪些服务(具体包括应用名),以及服务接口(service interface)的元信息,所述元信息例如包括提供服务的服务器ip地址、服务端口、服务接口名中的一项或多项信息等。所述服务端口,即提供服务的服务器的端口。
81.二、服务消费方启动的时候,会向所述注册中心订阅服务信息。
82.也就是说,服务消费方需要哪些服务,会通知给注册中心,例如将具体的应用名发送给注册中心,注册中心根据服务消费方的订阅请求(其中携带应用名),以及服务提供方登记注册的服务信息(其中包括应用名),确定能够提供服务消费方所请求订阅的服务的服务提供方的相关信息,即能够提供服务消费方所请求订阅的服务的服务器ip地址、服务端口、服务接口名中的一项或多项信息等,并将这些服务信息提供给发送所述订阅请求的服务消费方。
83.三、注册中心,一方面会把服务消费方请求订阅的服务信息发送给服务消费方;另一方面,还会把相关的服务提供方的变动信息通知给已订阅服务的服务消费方,例如,之前服务消费方a已订阅的服务,由服务提供方b提供,若服务提供方b的服务信息发生变化,服务提供方b不能继续提供该服务给服务消费方a,而变更为由服务提供方c为服务消费方a提供订阅的服务,则注册中心会把服务提供方c的相关信息(例如包括提供服务的服务器ip地址、服务端口、服务接口名中的一项或多项信息等)通知给服务消费方a;
84.四、服务消费方通过注册中心下发的服务信息,向服务提供方调用相关的服务。
85.例如,服务消费方a订阅的第一服务,由服务提供方b提供,则根据服务提供方b的服务器ip地址、服务端口、服务接口名中的一项或多项信息等,向服务提供方b调用所述第一服务;
86.例如,服务消费方a订阅的第二服务,由服务提供方c提供,则根据服务提供方c的服务器ip地址、服务端口、服务接口名中的一项或多项信息等,向服务提供方c调用所述第二服务。
87.下面对上述提到的各方分别展开具体阐述。
88.参见图2,关于服务提供方:
89.本技术实施例中所述的服务提供方,使用三种进程:第一进程、第二进程、第三进程;其中:
90.第一进程,也可以称为主进程,例如master进程;
91.第二进程,也可以称为工作进程,例如woker进程;
92.第三进程,也可以称为服务注册子进程。
93.例如:
94.一个master进程对应多个woker进程,每一woker进程对应多个协程,master进程还可以调用服务注册子进程。
95.其中,所述master进程主要用于接收客户端发送的服务调用请求和分发客户端发送的服务调用请求给worker进程;
96.所述worker进程用于处理master进程分发的服务调用请求,具体地worker进程用于找到用于提供服务的业务代码,并通过至少一个协程执行该业务代码,即执行客户端所请求的服务所对应的业务逻辑代码。所述协程是比线程更小的一种执行单元。
97.所述服务注册子进程,即在master进程启动后,根据master进程的触发或控制,向注册中心注册本服务提供方的服务信息(即前述内容中所述的可以提供的服务以及提供服务的服务器ip地址、服务端口、服务接口名中的一项或多项信息等)。
98.服务提供方底层支持多种rpc协议,例如thrift、grpc等。
99.参见图3,关于服务消费方:
100.服务消费方在启动时,通过注册中心监听线程/进程(不同的语言有不同的实现)向注册中心订阅自己所需的服务信息,并利用收到的服务信息维护本地的服务信息列表。
101.其中,所述注册中心监听线程/进程是服务消费方的一个代码模块,用于连接注册中心并监听服务信息的变化。
102.所述注册中心发送给客户端的服务信息,例如包括作为服务端的服务器的地址信息,进一步,还可以包括服务端采用的协议等信息,其中服务器的地址信息,例如包括服务器的ip地址和服务端口号等。
103.所述服务信息列表,例如包括应用名和服务器的信息的对应关系;其中,一个应用名可以对应一个或多个服务器的信息,同一服务器的信息,也可以对应一个或多个应用名。所述的应用名,即客户端订阅的服务的名称;所述的服务器的信息,例如包括服务提供方所使用的协议、ip地址和服务端口号。所述的服务器的信息,可以与注册中心提供的服务端的服务信息包含同种信息,例如都包括服务器的地址信息,也可以包括不同类型的信息,例如服务端所采用的底层协议等信息,可以选择性的包含。
104.例如,所述的服务信息列表,例如包括:
105.{“xxapp”:[“thrift://192.168.x.x:port1”,“thrift://192.168.x2.x2:port2”]
[0106]“xxapp1”:[“thrift://192.168.x.x:port3”,“thrift://192.168.x2.x2:port4”]}。
[0107]
其中,“xxapp”表示本客户端订阅的一个服务的应用名,“thrift://192.168.x.x:port1”表示可以提供该应用名对应的服务的一个服务提供方所使用的协议为thrift,其ip地址为192.168.x.x,服务端口为port1;“thrift://192.168.x2.x2:port2”表示可以提供该应用名对应的服务的另一个服务提供方所使用的协议为thrift,其ip地址为192.168.x2.x2,服务端口为port2;
[0108]
同理,“xxapp1”表示本客户端订阅的另一个服务的应用名,“thrift://192.168.x.x:port3”表示可以提供该应用名对应的服务的一个服务提供方所使用的协议
为thrift,其ip地址为192.168.x.x,服务端口为port3;“thrift://192.168.x2.x2:port4”表示可以提供该应用名对应的服务的另一个服务提供方所使用的协议为thrift,其ip地址为192.168.x2.x2,服务端口为port4。
[0109]
负载均衡器在服务消费方实现,可以通过配置制定负载均衡策略,所述负载均衡策略例如通过随机、轮询等方式从服务信息列表中获取需要请求的服务地址(服务器ip地址、服务端口、服务接口名中的一项或多项信息等)。从而,负载均衡器使服务请求均匀分发到多台服务器,而不是都发给同一服务器,导致该服务器过载的情况。
[0110]
参见图4,关于注册中心:
[0111]
注册中心使用zookeeper,存储描述整个分布式服务的元数据信息,其根节点是rpc_root,二级节点是各个app的名称,三级节点包括服务提供方(providers)、服务消费方(consumers),四级节点是叶子节点。
[0112]
可见,整个注册中心就是一个树形结构,其中根节点rpc_root是起始节点,二级节点app名称,即服务接口的应用名,例如图4中所示出的app1
……
appn;三级节点包括两类节点:服务提供方(providers)和服务消费方(consumers);四级节点是叶子节点,其中providers下的四级节点存储了服务提供方的地址信息、所用的协议等,例如图4中所示出的providers下的thrift:ip1:port和thrift:ip2:port;consumers下的四级节点存储了服务消费方的ip地址,从而可以统计服务消费方的数量,例如图4中所示出的consumers下的ip,即客户端的ip地址,不同客户端的ip地址不同,所以consumers下有几个ip地址,就有多少个客户端。
[0113]
通过该结构,注册中心可以管理哪一应用可以由哪些服务端提供,又具体有哪些客户端订阅了该应用,即实现了上述内容中所述的功能,此处不再赘述。
[0114]
本技术实施例中,通过采用一套进程模型来整合原生或开源的rpc协议,其中,注册中心采用的是zookeeper,也可以用其他组件替换,例如etcd,本技术实施例中不进行限制。
[0115]
下面关于各方之间的信息交互过程进行具体阐述。
[0116]
参见图5,关于客户端发送的服务调用请求的路由:
[0117]
本技术实施例中所述的服务接口信息,例如包括应用名和用于服务提供方找到该应用名对应的业务代码的指示信息,所述指示信息,例如包括:服务端点名、服务类、方法名,此时服务接口的格式,例如:
[0118]
应用名.服务端点名.服务类.方法名;
[0119]
其中,所述应用名,对应注册中心的二级节点名称,用于注册中心查找该应用下的服务提供方;以及,用于在客户端,查找该应用名对应的服务端的地址信息,从而利用服务端的地址信息发起服务调用请求等。
[0120]
所述服务端点名,可以理解为用于服务端查找需要执行的业务代码的一级信息,例如可以称为业务模块名称;
[0121]
所述服务类,也可以称为业务模块下的代码模块(相当于面向对象编程的类)名称,即用于服务端查找需要执行的业务代码的二级信息;
[0122]
所述方法名,是指所述服务类下的函数的名称,也就是指出了要执行的代码模块下的具体的业务代码,即用于服务端查找需要执行的业务代码的三级信息。
[0123]
通过以上应用名、服务端点名、服务类、方法名这四层信息就可以将客户端发送的服务调用请求从客户端路由到服务端中对应的业务代码,即找到服务端可以执行客户端所请求提供的服务所对应的代码。
[0124]
其中,服务端点名、服务类、方法名这三级信息,用于服务提供方找到应用名对应的代码,即能提供该应用名对应的服务的业务代码,本技术实施例中提供了这样的三级信息结构,也可以是一级或两级信息结构,具体不限定。
[0125]
例如服务接口信息及其格式为:xxapp.xxendpoint.xxservice.xxfunction;
[0126]
其中,应用名xxapp表示服务接口的归属,用于客户端查找应用名xxapp对应的服务地址(即能够提供该应用名xxapp对应的服务的服务器地址信息等);服务端点名xxendpoint、服务类xxservice、方法名xxfunction,用于服务端构建服务实例,即用于服务端找到应用名xxapp对应的业务代码。
[0127]
路由过程具体如下:
[0128]
当客户端(即服务消费方)要发起一个服务调用请求时,例如,客户端可以根据预先设置的接口文档获取该服务调用请求对应的服务接口信息。其中,所述的接口文档,例如包括应用名与服务接口信息的对应关系。
[0129]
例如服务接口信息为:xxapp.xxendpoint.xxservice.xxfunction,则客户端首先解析出应用名:xxapp,然后,客户端中的负载均衡器根据应用名xxapp从客户端维护的服务信息列表里获取应用名xxapp对应的服务地址,xxapp对应的服务地址可以有很多,负载均衡器根据预先配置的负载均衡策略(例如随机、轮询)从xxapp对应的多个服务地址中筛选出一个服务地址,最后根据该服务地址,向相应的服务端发出服务调用请求。
[0130]
服务端(即服务提供方)收到客户端发送的服务调用请求(其中携带服务接口信息)后,先通过master进程向woker进程分发客户端发送的服务调用请求,woker进程收到服务调用请求后,使用协程(即轻量级线程)处理业务,所述协程根据服务接口信息,找到客户端所请求的服务的应用名对应的业务代码并执行,即实现了动态构建服务实例。最后,通过底层协议将执行结果反馈给客户端。
[0131]
其中,若一服务端仅提供一种服务,例如仅提供xxapp对应的服务,则客户端发送的服务调用请求中携带的服务接口信息,可以不包括应用名,而只包括用于查找该应用名所对应的业务代码的信息(例如xxendpoint.xxservice.xxfunction)即可,因为应用名用于查找服务所在的服务器,但请求到达服务器时,根据后面的xxendpoint、xxservice、xxfunction三层信息,即可路由到业务代码。然后执行业务代码,例如,动态构建xxendpoint业务模块下的xxservice对象,并调用该xxservice对象中的xxfunction方法,最后返回xxfunction方法的执行结果。
[0132]
综上所述,本技术实施例提供,提供了基于主进程和多个工作进程、协程的模型,以及支持多协议的python分布式rpc框架,解决了高并发下python gil伪并发的限制,提供了一套基于python的高效可复用的分布式rpc框架,简化了python开发者编写分布式rpc服务的流程和成本。
[0133]
下面分别从不同侧总结本技术实施例提供的方法和装置所提供的技术方案。
[0134]
参见图6,在服务端,本技术实施例提供的信息处理方法包括:
[0135]
s101、通过第一进程接收客户端发送的服务调用请求,并分发所述服务调用请求
给第二进程;其中,所述第一进程对应至少一个第二进程;
[0136]
其中,所述第一进程,例如上述的master进程;
[0137]
所述的第二进程,例如上述的worker进程。
[0138]
其中,第一进程主要用于接收客户端发送的服务调用请求和分发客户端发送的服务调用请求。
[0139]
s102、通过第二进程处理所述服务调用请求。
[0140]
具体地,第二进程用于处理第一进程分发的服务调用请求,找到相应的业务代码,并通过一个或多个协程处理业务代码。
[0141]
服务端可以通过底层协议将业务代码的执行结果反馈给客户端,具体可以通过现有技术实现,在此不再赘述。
[0142]
可选地,所述服务调用请求中包括服务接口信息,所述服务接口信息包括用于查找客户端请求的服务所对应的业务代码的指示信息。
[0143]
所述指示信息,例如包括上述的服务端点名、服务类、方法名。当然,也可以包括应用名。
[0144]
可选地,所述通过第二进程处理所述服务调用请求,具体包括:
[0145]
当第二进程收到服务调用请求后,根据所述指示信息,找到客户端请求的服务所对应的业务代码,并通过至少一个协程执行所述业务代码。
[0146]
例如,服务端分别利用服务端点名、服务类、方法名,逐级查找到应用名相应的业务代码。
[0147]
可选地,在所述第一进程启动后,该方法还包括:
[0148]
通过第三进程,向注册中心注册服务端的服务信息。
[0149]
所述第三进程,例如所述的服务注册子进程。
[0150]
所述的服务端的服务信息,例如包括服务端提供的服务的应用名和服务端的地址信息,还可以包括服务端的底层协议信息等。
[0151]
相应的,参见图7,在客户端,本技术实施例提供的一种信息处理方法,包括:
[0152]
s201、当需要向服务端发起服务调用请求时,从维护的服务信息列表中获取所述服务端的信息;
[0153]
其中,所述的服务端的信息,例如可以是服务端的服务信息,也可以仅是服务端的地址信息。
[0154]
s202、根据所述服务端的信息向所述服务端发送服务调用请求,使得所述服务端通过第一进程接收客户端发送的服务调用请求,并分发所述服务调用请求给第二进程;其中,所述第一进程对应至少一个第二进程;通过第二进程处理所述服务调用请求。
[0155]
其中,向服务端发送的服务调用请求中,例如包括服务接口信息,所述服务接口信息,例如包括应用名和用于服务端查找该应用名对应的业务代码的指示信息,或者仅包括用于服务端查找该应用名对应的业务代码的指示信息。
[0156]
可选地,向服务端发起服务调用请求之前,该方法还包括:
[0157]
向注册中心发送服务订阅请求,所述服务订阅请求中包括本客户端的信息,以及请求订阅的服务的应用名;
[0158]
接收所述注册中心返回的服务端的服务信息,所述服务信息中包括提供所述服务
的服务端的信息,例如包括服务端的地址信息,进一步可选地还可以包括服务端采用的底层协议信息;
[0159]
利用所述应用名以及所述服务端的信息生成所述服务信息列表,所述服务信息列表包括应用名与服务端的信息的对应关系。
[0160]
可选地,当需要向服务端发起服务调用请求时,从维护的服务信息列表中获取所述服务端的信息,具体包括:
[0161]
确定所述服务调用请求对应的服务接口信息;例如,根据预先设置的接口文档获取该服务调用请求对应的服务接口信息;
[0162]
从所述服务接口信息中解析出应用名;
[0163]
根据从所述服务接口信息中解析出的应用名,从所述服务信息列表里获取所述应用名对应的服务端的信息,所述服务端的信息包括所述服务端的地址信息,进一步可选地,还可以包括服务端的底层协议信息等。
[0164]
可选地,当所述应用名对应多个服务端的信息时,通过预先配置的负载均衡策略,从所述多个服务端的信息中选出一个服务端的信息。
[0165]
例如通过随机、轮询等方式从同一应用名对应的多个服务器的地址信息中获取一个服务器的地址信息(包括服务器ip地址、服务端口、服务接口名中的一项或多项信息等)。从而,负载均衡器使服务请求均匀分发到多台服务器,而不是都发给同一服务器,导致该服务器过载的情况。
[0166]
可选地,所述服务接口信息中包括应用名和用于服务端查找该应用名对应的业务代码的指示信息。
[0167]
可选地,所述指示信息至少包括下列信息之一或组合:
[0168]
服务端点名、服务类、方法名。当然本技术实施例中并不限于这三层信息,也可以只有一层或两层信息。
[0169]
相应的,参见图8,在注册中心,本技术实施例提供的一种信息处理方法,包括:
[0170]
s301、当接收到服务端发送的服务注册请求时,从所述服务注册请求中获取并记录所述服务端的服务信息;所述服务信息中包括所述服务端提供的服务的应用名,以及所述服务端的地址信息;
[0171]
s302、当接收到客户端发送的服务订阅请求时,从所述服务订阅请求中获取所述客户端请求订阅的服务的应用名;
[0172]
注册中心通过服务端发送的服务注册请求和客户端发送的服务订阅请求中携带的信息,即可形成例如图4所示的架构,从而维护客户端与服务端的关于服务应用的关联关系。
[0173]
s303、根据所述客户端请求订阅的服务的应用名,确定能够提供所述客户端请求订阅的服务的服务端的服务信息,并提供给所述客户端,使得所述客户端当需要向所述服务端发起服务调用请求时,从维护的服务信息列表中获取所述服务端的信息;所述服务信息列表,是所述客户端利用从注册中心获取的服务端的服务信息生成的;所述客户端根据所述服务端的信息向所述服务端发送服务调用请求,使得所述服务端通过第一进程接收客户端发送的服务调用请求,并分发所述服务调用请求给第二进程;其中,所述第一进程对应至少一个第二进程;通过第二进程处理所述服务调用请求。
[0174]
可选地,该方法还包括:
[0175]
当为所述客户端提供服务的服务端的服务信息发生变更时,将更新后的为所述客户端提供服务的服务端的服务信息通知给所述客户端。具体的举例说明参见上述注册中心的相关内容,此处不再赘述。
[0176]
参见图9,在服务端,本技术实施例提供的信息处理装置包括:
[0177]
分发请求单元11,用于通过第一进程接收客户端发送的服务调用请求,并分发所述服务调用请求给第二进程;其中,所述第一进程对应至少一个第二进程;
[0178]
请求处理单元12,用于通过第二进程处理所述服务调用请求。
[0179]
可选地,所述服务调用请求中包括服务接口信息,所述服务接口信息包括用于查找客户端请求的服务所对应的业务代码的指示信息。
[0180]
可选地,所述通过第二进程处理所述服务调用请求,具体包括:
[0181]
当第二进程收到服务调用请求后,根据所述指示信息,找到客户端请求的服务所对应的业务代码,并通过至少一个协程执行所述业务代码。
[0182]
可选地,还包括:
[0183]
注册单元(图9中未示出),用于在所述第一进程启动后,通过第三进程,向注册中心注册服务端的服务信息。
[0184]
相应的,参见图10,在客户端,本技术实施例提供的一种信息处理装置,包括:
[0185]
信息确定单元21,用于当需要向服务端发起服务调用请求时,从维护的服务信息列表中获取所述服务端的信息;
[0186]
发送请求单元22,用于根据所述服务端的信息向所述服务端发送服务调用请求,使得所述服务端通过第一进程接收客户端发送的服务调用请求,并分发所述服务调用请求给第二进程;其中,所述第一进程对应至少一个第二进程;通过第二进程处理所述服务调用请求。
[0187]
可选地,还包括:
[0188]
订阅单元(图10中未示出),用于:
[0189]
在发送请求单元22向服务端发起服务调用请求之前,向注册中心发送服务订阅请求,所述服务订阅请求中包括本客户端的信息,以及请求订阅的服务的应用名;
[0190]
接收所述注册中心返回的服务端的服务信息,所述服务信息中包括提供所述服务的服务端的信息;
[0191]
利用所述应用名以及所述服务端的信息生成所述服务信息列表,所述服务信息列表包括应用名与服务端的信息的对应关系。
[0192]
可选地,当需要向服务端发起服务调用请求时,从维护的服务信息列表中获取所述服务端的信息,具体包括:
[0193]
确定所述服务调用请求对应的服务接口信息;
[0194]
从所述服务接口信息中解析出应用名;
[0195]
根据所述应用名,从所述服务信息列表里获取所述应用名对应的服务端的信息,所述服务端的信息包括所述服务端的地址信息。
[0196]
可选地,当所述应用名对应多个服务端的信息时,通过预先配置的负载均衡策略,从所述多个服务端的信息中选出一个服务端的信息。
[0197]
可选地,所述服务接口信息中包括应用名和用于服务端查找该应用名对应的业务代码的指示信息。
[0198]
可选地,所述指示信息至少包括下列信息之一或组合:
[0199]
服务端点名、服务类、方法名。
[0200]
相应的,参见图11,在注册中心,本技术实施例提供的一种信息处理装置,包括:
[0201]
服务注册单元31,用于当接收到服务端发送的服务注册请求时,从所述服务注册请求中获取并记录所述服务端的服务信息;所述服务信息中包括所述服务端提供的服务的应用名,以及所述服务端的地址信息;
[0202]
服务订阅处理单元32,用于当接收到客户端发送的服务订阅请求时,从所述服务订阅请求中获取所述客户端请求订阅的服务的应用名;
[0203]
服务信息提供单元33,用于根据所述客户端请求订阅的服务的应用名,确定能够提供所述客户端请求订阅的服务的服务端的服务信息,并提供给所述客户端,使得所述客户端当需要向所述服务端发起服务调用请求时,从维护的服务信息列表中获取所述服务端的信息;所述服务信息列表,是所述客户端利用从注册中心获取的服务端的服务信息生成的;所述客户端根据所述服务端的信息向所述服务端发送服务调用请求,使得所述服务端通过第一进程接收客户端发送的服务调用请求,并分发所述服务调用请求给第二进程;其中,所述第一进程对应至少一个第二进程;通过第二进程处理所述服务调用请求。
[0204]
可选地,服务信息提供单元33还用于:
[0205]
当为所述客户端提供服务的服务端的服务信息发生变更时,将更新后的为所述客户端提供服务的服务端的服务信息通知给所述客户端。
[0206]
需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0207]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0208]
参见图12,在服务端,本技术实施例提供的另一信息处理装置包括:
[0209]
存储器520,用于存储程序指令;
[0210]
处理器500,用于调用所述存储器中存储的程序指令,按照获得的程序执行:
[0211]
通过第一进程接收客户端发送的服务调用请求,并分发所述服务调用请求给第二进程;其中,所述第一进程对应至少一个第二进程;
[0212]
通过第二进程处理所述服务调用请求。
[0213]
可选地,所述服务调用请求中包括服务接口信息,所述服务接口信息包括用于查找客户端请求的服务所对应的业务代码的指示信息。
[0214]
可选地,所述通过第二进程处理所述服务调用请求,具体包括:
[0215]
当第二进程收到服务调用请求后,根据所述指示信息,找到客户端请求的服务所对应的业务代码,并通过至少一个协程执行所述业务代码。
[0216]
可选地,处理器500,还用于调用所述存储器中存储的程序指令,按照获得的程序执行:
[0217]
在所述第一进程启动后,通过第三进程,向注册中心注册服务端的服务信息。
[0218]
收发机510(可选的),用于在处理器500的控制下接收和发送数据。
[0219]
其中,在图12中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器500代表的一个或多个处理器和存储器520代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机510可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器500负责管理总线架构和通常的处理,存储器520可以存储处理器500在执行操作时所使用的数据。
[0220]
处理器500可以是中央处埋器(cpu)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或复杂可编程逻辑器件(complex programmable logic device,cpld)。
[0221]
相应的,参见图13,在客户端,本技术实施例提供的另一种信息处理装置,包括:
[0222]
存储器620,用于存储程序指令;
[0223]
处理器600,用于调用所述存储器中存储的程序指令,按照获得的程序执行:
[0224]
当需要向服务端发起服务调用请求时,从维护的服务信息列表中获取所述服务端的信息;
[0225]
根据所述服务端的信息向所述服务端发送服务调用请求,使得所述服务端通过第一进程接收客户端发送的服务调用请求,并分发所述服务调用请求给第二进程;其中,所述第一进程对应至少一个第二进程;通过第二进程处理所述服务调用请求。
[0226]
可选地,处理器600,还用于调用所述存储器中存储的程序指令,按照获得的程序执行:
[0227]
向服务端发起服务调用请求之前,向注册中心发送服务订阅请求,所述服务订阅请求中包括本客户端的信息,以及请求订阅的服务的应用名;
[0228]
接收所述注册中心返回的服务端的服务信息,所述服务信息中包括提供所述服务的服务端的信息;
[0229]
利用所述应用名以及所述服务端的信息生成所述服务信息列表,所述服务信息列表包括应用名与服务端的信息的对应关系。
[0230]
可选地,当需要向服务端发起服务调用请求时,从维护的服务信息列表中获取所述服务端的信息,具体包括:
[0231]
确定所述服务调用请求对应的服务接口信息;
[0232]
从所述服务接口信息中解析出应用名;
[0233]
根据所述应用名,从所述服务信息列表里获取所述应用名对应的服务端的信息,所述服务端的信息包括所述服务端的地址信息。
[0234]
可选地,当所述应用名对应多个服务端的信息时,通过预先配置的负载均衡策略,从所述多个服务端的信息中选出一个服务端的信息。
[0235]
可选地,所述服务接口信息中包括应用名和用于服务端查找该应用名对应的业务代码的指示信息。
[0236]
可选地,所述指示信息至少包括下列信息之一或组合:
[0237]
服务端点名、服务类、方法名。
[0238]
收发机610(可选的),用于在处理器600的控制下接收和发送数据。
[0239]
其中,在图13中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器600代表的一个或多个处理器和存储器620代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机610可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口630还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
[0240]
处理器600负责管理总线架构和通常的处理,存储器620可以存储处理器600在执行操作时所使用的数据。
[0241]
可选的,处理器600可以是cpu(中央处埋器)、asic(application specific integrated circuit,专用集成电路)、fpga(field-programmable gate array,现场可编程门阵列)或cpld(complex programmable logic device,复杂可编程逻辑器件)。
[0242]
相应的,参见图14,在注册中心,本技术实施例提供的另一种信息处理装置,包括:
[0243]
存储器505,用于存储程序指令;
[0244]
处理器504,用于调用所述存储器中存储的程序指令,按照获得的程序执行:
[0245]
当接收到服务端发送的服务注册请求时,从所述服务注册请求中获取并记录所述服务端的服务信息;所述服务信息中包括所述服务端提供的服务的应用名,以及所述服务端的地址信息;
[0246]
当接收到客户端发送的服务订阅请求时,从所述服务订阅请求中获取所述客户端请求订阅的服务的应用名;
[0247]
根据所述客户端请求订阅的服务的应用名,确定能够提供所述客户端请求订阅的服务的服务端的服务信息,并提供给所述客户端,使得所述客户端当需要向所述服务端发起服务调用请求时,从维护的服务信息列表中获取所述服务端的信息;所述服务信息列表,是所述客户端利用从注册中心获取的服务端的服务信息生成的;所述客户端根据所述服务端的信息向所述服务端发送服务调用请求,使得所述服务端通过第一进程接收客户端发送的服务调用请求,并分发所述服务调用请求给第二进程;其中,所述第一进程对应至少一个第二进程;通过第二进程处理所述服务调用请求。
[0248]
可选地,处理器504,还用于调用所述存储器中存储的程序指令,按照获得的程序执行:
[0249]
当为所述客户端提供服务的服务端的服务信息发生变更时,将更新后的为所述客
户端提供服务的服务端的服务信息通知给所述客户端。
[0250]
收发机501(可选的),用于在处理器504的控制下接收和发送数据。
[0251]
在图14中,总线架构(用总线506来代表),总线506可以包括任意数量的互联的总线和桥,总线506将包括由处理器504代表的一个或多个处理器和存储器505代表的存储器的各种电路链接在一起。总线500还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口503在总线506和收发机501之间提供接口。收发机501可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器504处理的数据通过天线502在无线介质上进行传输,进一步,天线502还接收数据并将数据传送给处理器504。
[0252]
处理器504负责管理总线506和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器505可以被用于存储处理器504在执行操作时所使用的数据。
[0253]
可选的,处理器504可以是cpu(中央处埋器)、asic(application specific integrated circuit,专用集成电路)、fpga(field-programmable gate array,现场可编程门阵列)或cpld(complex programmable logic device,复杂可编程逻辑器件)。
[0254]
本技术实施例提供的一种信息处理系统,包括:所述的服务端的信息处理装置,和/或,所述的客户端的信息处理装置,和/或,所述的注册中心侧的信息处理装置。具体结构例如图1所示,之间的交互过程此处不再赘述。
[0255]
本技术实施例提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personal digital assistant,pda)等。该计算设备可以包括中央处理器(center processing unit,cpu)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(liquid crystal display,lcd)、阴极射线管(cathode ray tube,crt)等。
[0256]
存储器可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器提供存储器中存储的程序指令和数据。在本技术实施例中,存储器可以用于存储本技术实施例提供的任一所述方法的程序。
[0257]
处理器通过调用存储器存储的程序指令,处理器用于按照获得的程序指令执行本技术实施例提供的任一所述方法。
[0258]
本技术实施例提供了一种计算机可读存储介质,用于储存为上述本技术实施例提供的装置所用的计算机程序指令,其包含用于执行上述本技术实施例提供的任一方法的程序。
[0259]
所述计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等。
[0260]
上述方法处理流程可以用软件程序实现,该软件程序可以存储在存储介质中,当存储的软件程序被调用时,执行上述方法步骤。
[0261]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序
产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0262]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0263]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0264]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0265]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

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

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

相关文献