一种微服务通信框架构建方法、装置、设备和介质与流程

文档序号:30084737发布日期:2022-05-18 05:22阅读:127来源:国知局
一种微服务通信框架构建方法、装置、设备和介质与流程

1.本技术涉及微服务架构技术领域,尤其涉及一种微服务通信框架构建方法、装置、设备和介质。


背景技术:

2.目前,微服务应用及其广泛,微服务之间的通信手段也多种多样,基于底层的技术进行封装的框架能减少开发人员的工作量,从而提升开发效率。大部分微服务通信框架,都集成了服务管理功能,微服务之间都使用http协议进行通信,使得现有的微服务通信框架过于重量级,导致各服务之间通信延时高。


技术实现要素:

3.本技术提供了一种微服务通信框架构建方法、装置、设备和介质,用于改善现有的微服务框架过于重量级,存在各服务之间通信延时高的技术问题。
4.有鉴于此,本技术第一方面提供了一种微服务通信框架构建方法,包括:
5.配置目标对象和初始化目标模块,所述目标对象包括基于tcp协议进行通信自身微服务的相关信息和待调用微服务的相关信息,所述目标模块包括监控模块和注册模块;
6.根据所述待调用微服务的相关信息在注册中心获取所述待调用微服务对应的可用服务列表,所述可用服务列表包括所述待调用微服务对应的可用设备;
7.通过所述监控模块对所述可用服务列表中的可用设备的状态进行监听,并同步所述可用设备的状态到自身微服务;
8.通过所述注册模块将自身微服务的相关信息添加到注册中心,完成注册。
9.可选的,所述自身微服务的相关信息包括服务名称、端口号和本机host,所述待调用微服务的相关信息包括服务名称、连接数和缓存大小。
10.可选的,所述根据所述待调用微服务的相关信息在注册中心获取所述待调用微服务对应的可用服务列表,包括:
11.根据所述待调用微服务的名称在注册中心进行前缀匹配,获取所述待调用微服务对应的可用服务列表。
12.可选的,所述将自身微服务的相关信息添加到注册中心,完成注册,之前还包括:
13.读取自身微服务的目标参数,所述目标参数包括tcp/ip接收缓冲区大小、tcp/ip发送缓冲区大小、tcp/ip传输缓冲区大小、tcp/ip传输超时时间和端口号;
14.根据所述目标参数对自身微服务进行配置。
15.可选的,所述目标模块还包括客户端模块和服务端模块,所述方法还包括:
16.通过所述客户端模块发送调用请求至所述待调用微服务;
17.通过所述服务端模块接收调用请求。
18.本技术第二方面提供了一种微服务通信框架构建装置,包括:
19.配置和初始化模块,用于配置目标对象和初始化目标模块,所述目标对象包括基
于tcp协议进行通信自身微服务的相关信息和待调用微服务的相关信息,所述目标模块包括监控模块和注册模块;
20.获取模块,用于根据所述待调用微服务的相关信息在注册中心获取所述待调用微服务对应的可用服务列表,所述可用服务列表包括所述待调用微服务对应的可用设备;
21.所述监控模块,用于对所述可用服务列表中的可用设备的状态进行监听,并同步所述可用设备的状态到自身微服务;
22.所述注册模块,用于将自身微服务的相关信息添加到注册中心,完成注册。
23.可选的,所述自身微服务的相关信息包括服务名称、端口号和本机host,所述待调用微服务的相关信息包括服务名称、连接数和缓存大小。
24.可选的,还包括:读取模块,用于:
25.读取自身微服务的目标参数,所述目标参数包括tcp/ip接收缓冲区大小、tcp/ip发送缓冲区大小、tcp/ip传输缓冲区大小、tcp/ip传输超时时间和端口号;
26.根据所述目标参数对自身微服务进行配置。
27.本技术第三方面提供了一种微服务通信框架构建设备,所述设备包括处理器以及存储器;
28.所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
29.所述处理器用于根据所述程序代码中的指令执行第一方面任一种所述的微服务通信框架构建方法。
30.本技术第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码被处理器执行时实现第一方面6任一种所述的微服务通信框架构建方法。
31.从以上技术方案可以看出,本技术具有以下优点:
32.本技术提供了一种微服务通信框架构建方法,包括:配置目标对象和初始化目标模块,目标对象包括基于tcp协议进行通信自身微服务的相关信息和待调用微服务的相关信息,目标模块包括监控模块和注册模块;根据待调用微服务的相关信息在注册中心获取待调用微服务对应的可用服务列表,可用服务列表包括待调用微服务对应的可用设备;通过监控模块对可用服务列表中的可用设备的状态进行监听,并同步可用设备的状态到自身微服务;通过注册模块将自身微服务的相关信息添加到注册中心,完成注册。
33.本技术提供了一种轻量级的微服务通信框架构建方法,配置自身微服务和待调用微服务的相关信息,然后初始化相关的目标模块,其中,自身微服务基于tcp协议与其他微服务进行通信,相比于http协议的包体更小;根据待调用微服务的相关信息获取待调用微服务的可用设备,并监听这些可以设备的状态,实现状态同步,避免后续在调用待调用微服务时,调用不可用的设备,降低调用出错率,通过注册模块将自身微服务注册到注册中心,使得其他微服务也可以调用自身微服务,本技术中的微服务通信框架功能简单,实现轻量化,改善了现有的微服务框架过于重量级,存在各服务之间通信延时高的技术问题。
附图说明
34.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
35.图1为本技术实施例提供的一种微服务通信框架构建方法的一个流程示意图。
具体实施方式
36.本技术提供了一种微服务通信框架构建方法、装置、设备和介质,用于改善现有的微服务框架过于重量级,存在各服务之间通信延时高的技术问题。
37.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
38.为了便于理解,请参阅图1,本技术实施例提供了一种微服务通信框架构建方法,包括:
39.步骤101、配置目标对象和初始化目标模块,目标对象包括基于tcp协议进行通信自身微服务的相关信息和待调用微服务的相关信息。
40.首先,配置目标对象,目标对象包括基于tcp协议进行通信自身微服务的相关信息和待调用微服务的相关信息,具体的,自身微服务的相关信息包括服务名称、端口号和本机host,待调用微服务的相关信息包括服务名称、连接数和缓存大小,自身微服务在调用其他微服务时,基于tcp协议进行通信,其中,可以直接采用java的socket实现配置tcp协议。然后初始目标模块,包括监控模块、注册模块和客户端模块和服务端模块。监控模块用于监听服务的变动,如某个服务的上线、下线,注册模块用于将自身注册到注册中心。
41.步骤102、根据待调用微服务的相关信息在注册中心获取待调用微服务对应的可用服务列表,可用服务列表包括待调用微服务对应的可用设备。
42.根据待调用微服务的名称在注册中心进行前缀匹配,获取待调用微服务对应的可用服务列表。例如,自身微服务a需要调用微服务b,微服务b中的设备均可以命名为b1、b2等,可以根据前缀b在注册中心进行匹配,获取到微服务b对应的可用设备。
43.步骤103、通过监控模块对可用服务列表中的可用设备的状态进行监听,并同步可用设备的状态到自身微服务。
44.通过监控模块对可用服务列表中的可用设备的状态进行监听,监听待调用微服务的put和delete事件,并同步可用设备的状态到自身微服务。例如,待调用微服务中的某设备下线了,相应的,需要将该设备下线状态同步到自身微服务,避免调用该下线设备。当待调用微服务中某设备上线了,相应的,需要将该设备上线状态同步到自身微服务,在调用时就可调用该上线设备。自身微服务在调用待调用微服务时,相当于客户端,通过客户端模块发送调用请求至待调用微服务,并接收和处理该待调用微服务返回的消息。
45.本技术的微服务通信框架可以采用aio(异步非阻塞i/o)模型,异步非阻塞无需一个线程去轮询所有io操作的状态改变,在相应的状态改变后,系统会通知对应的线程来处理。例如:当a服务调用b服务后,会将线程资源释放,然后等待b服务响应,再分配线程资源去处理,通信过程采用全异步化的方式,有助于提高通信效率,加快通信速度。
46.步骤104、通过注册模块将自身微服务的相关信息添加到注册中心,完成注册。
47.在注册之前,读取自身微服务的目标参数,目标参数包括tcp/ip接收缓冲区大小、tcp/ip发送缓冲区大小、tcp/ip传输缓冲区大小、tcp/ip传输超时时间和端口号;根据目标参数对自身微服务进行配置。发送和接收缓冲区大小定义了接收窗口,接收窗口指定在发送被中断前可以发送而不会被接收的数据量。如果发送太多数据,就会使缓冲区过载并中断传输。数据传输中断控制机制称为流量控制。如果tcp/ip缓冲区的接收窗口太小,接收窗口缓冲区就会频繁地过载,流量控制机制就会停止数据传输,直到接收缓冲区被清空为止。当客户端与服务端通信超过tcp/ip传输超时时间后,将会将此次通信标记为超时。端口号用于监听来自客户端的请求。
48.在配置完成后,通过注册模块将自身微服务的相关信息添加到注册中心,完成注册。使得其他的微服务可以通过注册中心获取自身微服务的信息,进而调用自身微服务。自身微服务在接收其他微服务的调用时,自身微服务相当于服务器,通过服务端模块接收调用请求。
49.本技术提供了一种轻量级微服务通信框架构建方法,配置自身微服务和待调用微服务的相关信息,然后初始化相关的目标模块,其中,自身微服务基于tcp协议与其他微服务进行通信,相比于http协议的包体更小;根据待调用微服务的相关信息获取待调用微服务的可用设备,并监听这些可以设备的状态,实现状态同步,避免后续在调用待调用微服务时,调用不可用的设备,降低调用出错率,通过注册模块将自身微服务注册到注册中心,使得其他微服务也可以调用自身微服务,本技术中的微服务通信框架功能简单,实现轻量化,改善了现有的微服务框架过于重量级,存在各服务之间通信延时高的技术问题。
50.以上为本技术提供的一种微服务通信框架构建方法的一个实施例,以下为本技术提供的一种微服务通信框架构建装置的一个实施例。
51.本技术实施例提供的一种微服务通信框架构建装置,包括:
52.配置和初始化模块,用于配置目标对象和初始化目标模块,目标对象包括基于tcp协议进行通信自身微服务的相关信息和待调用微服务的相关信息,目标模块包括监控模块和注册模块;
53.获取模块,用于根据待调用微服务的相关信息在注册中心获取待调用微服务对应的可用服务列表,可用服务列表包括待调用微服务对应的可用设备;
54.监控模块,用于对可用服务列表中的可用设备的状态进行监听,并同步可用设备的状态到自身微服务;
55.注册模块,用于将自身微服务的相关信息添加到注册中心,完成注册。
56.作为进一步地改进,自身微服务的相关信息包括服务名称、端口号和本机host,待调用微服务的相关信息包括服务名称、连接数和缓存大小。
57.作为进一步地改进,还包括:读取模块,用于:
58.读取自身微服务的目标参数,目标参数包括tcp/ip接收缓冲区大小、tcp/ip发送缓冲区大小、tcp/ip传输缓冲区大小、tcp/ip传输超时时间和端口号;
59.根据目标参数对自身微服务进行配置。
60.作为进一步地改进,目标模块还包括客户端模块和服务端模块;
61.客户端模块用于发送调用请求至所述待调用微服务;
62.服务端模块用于接收调用请求。
63.本技术实施例中,配置自身微服务和待调用微服务的相关信息,然后初始化相关的目标模块,其中,自身微服务基于tcp协议与其他微服务进行通信,相比于http协议的包体更小;根据待调用微服务的相关信息获取待调用微服务的可用设备,并监听这些可以设备的状态,实现状态同步,避免后续在调用待调用微服务时,调用不可用的设备,降低调用出错率,通过注册模块将自身微服务注册到注册中心,使得其他微服务也可以调用自身微服务,本技术中的微服务通信框架功能简单,实现轻量化,改善了现有的微服务框架过于重量级,存在各服务之间通信延时高的技术问题。
64.本技术实施例还提供了一种微服务通信框架构建设备,设备包括处理器以及存储器;
65.存储器用于存储程序代码,并将程序代码传输给处理器;
66.处理器用于根据程序代码中的指令执行前述方法实施例中的微服务通信框架构建方法。
67.本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码被处理器执行时实现前述方法实施例中的微服务通信框架构建方法。
68.本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
69.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
70.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
71.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
72.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
73.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以通过一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-only memory,英文缩写:rom)、随机存取存储器(英文全称:random access memory,英文缩写:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
74.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1