微服务的数据传输方法、结构以及计算机设备与流程

文档序号:26855690发布日期:2021-10-09 03:49阅读:159来源:国知局
微服务的数据传输方法、结构以及计算机设备与流程

1.本发明涉及微服务领域,特别涉及一种微服务的数据传输方法、结构以及计算机设备。


背景技术:

2.在微服务治理和调用中,各个微服务因服务更新或下线所产生的状态更变,其余的微服务无法及时获取到其状态的变更,进而无法实时更新本地注册表,导致微服务之间的数据传输不能正常进行。


技术实现要素:

3.本发明的主要目的为提供一种微服务的数据传输方法、结构以及计算机设备,旨在解决当微服务状态变更时,其他微服务无法及时获取到其状态的变更,导致微服务之间的数据传输不能正常进行的问题。
4.本发明提供了一种微服务的数据传输结构,包括:多个微服务、消息中间件;所述消息中间件包括数据连接模块和存储模块,所述数据连接模块与所述存储模块连接;所述数据连接模块与各个所述微服务连接;所述消息中间件用于在接收到所述微服务上传的状态变更信息后,基于所述存储模块中的第一本地注册表发送给其他微服务,以完成所述其他微服务中的第二本地注册表的更新。
5.进一步地,所述数据连接模块包括发送子模块和信息获取子模块,所述发送子模块和所述信息子获取子模块连接,所述发送子模块用于与各个所述微服务连接;所述信息获取子模块用于从所述本地注册表中获取到其他微服务的唯一标识性信息,并将所述唯一标识性信息发送给所述发送子模块,所述发送子模块基于其他微服务的所述唯一标识性信息发送所述状态变更信息至其他微服务。
6.进一步地,所述微服务包括接收模块和数据处理模块,所述接收模块和所述数据处理模块连接,所述接收模块与所述数据连接模块连接;所述接收模块用于接收所述数据连接模块发送的所述状态变更信息,并将所述状态变更信息转发给所述数据处理模块,所述数据处理模块基于所述状态变更信息更改所述第二本地注册表中对应的信息。
7.进一步地,所述数据处理模块包括第一处理子模块和第二处理子模块;所述第一处理子模块和所述第二处理子模块分别与接收模块连接;所述第一处理子模块用于当接收的所述状态变更信息为微服务的更新信息时,则替换所述第二本地注册表中对应的状态信息;所述第二处理子模块用于当接收的所述状态变更信息为微服务的更新信息时,则删除所述第二本地注册表中对应的状态信息。
8.本发明还提供了一种微服务的数据传输方法,应用于消息中间件,包括:接收第一微服务上传的状态变更信息;基于预先存储的本地注册表向表中的其他微服务转发所述状态变更信息。
9.进一步地,所述基于预先存储的本地注册表向表中的其他微服务转发所述状态变更信息的步骤,包括:从所述本地注册表中获取到其他微服务的唯一标识性信息;基于其他微服务的所述唯一标识性信息发送所述状态变更信息至其他微服务。
10.本发明还提供了一种微服务的数据传输方法,应用于微服务,包括:接收消息中间件的发送的状态变更信息;基于所述状态变更信息更改第二本地注册表中对应的信息。
11.进一步地,所述基于所述状态变更信息更改第二本地注册表中对应的信息的步骤包括:解析所述状态变更信息中的内容;若所述状态变更信息为微服务的更新信息时,则替换所述第二本地注册表中对应的状态信息;若接收的所述状态变更信息为微服务的更新信息时,则删除所述第二本地注册表中对应的状态信息。
12.本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
13.本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
14.本发明的有益效果:通过将设置消息中间件获取到各个微服务上传的状态变更信息,并基于预先存储的第一本地注册表,实时发送给其他微服务,从而使其他微服务均能更新自身的第二本地注册表,进而实现了各个微服务可以实时获取到其他微服务的变更情况,实时对自身的第二本地注册表进行更新,从而可以实现对各个微服务的第二本地注册表进行实时更新,使微服务之间的数据传输可以正常进行。
附图说明
15.图1 是本发明一实施例的一种微服务的数据传输结构的结构示意框图;图2是本发明一实施例的一种微服务的数据传输方法的流程示意图;图3 为本技术一实施例的计算机设备的结构示意框图。
16.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
17.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后等)仅用于
解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变,所述的连接可以是直接连接,也可以是间接连接。
19.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
20.另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
21.参照图1,本发明提出一种微服务的数据传输结构,包括:多个微服务20、消息中间件;所述消息中间件包括数据连接模块10和存储模块11,所述数据连接模块10与所述存储模块11连接;所述数据连接模块10与各个所述微服务20连接;所述消息中间件用于在接收到所述微服务20上传的状态变更信息后,基于所述存储模块11中的第一本地注册表发送给其他微服务20,以完成所述其他微服务20中的第二本地注册表的更新。
22.本实施例中,通过将设置消息中间件获取到各个微服务20上传的状态变更信息,并基于预先存储的第一本地注册表,实时发送给其他微服务20,从而使其他微服务20均能更新自身的第二本地注册表,进而实现了各个微服务20可以实时获取到其他微服务20的变更情况,实时对自身的第二本地注册表进行更新,从而可以实现对各个微服务20的第二本地注册表进行实时更新,使微服务20之间的数据传输可以正常进行。
23.本实施例中,其中消息中间件优选为kafka server,kafka server具有并发高,延时低的特点,可应对多个微服务20进行同时变更。变更的效率也比较快,一般可以在1s内完成,大大缩短了服务状态修改的时间差。从而可以实现大于各个微服务20的第二本地注册表进行实时更新。另外第一本地注册表和第二本地注册表均包含了其他微服务20(一般不包括自身)的实例id(instanceid)、应用名称(applicationname)、实例状态(status)。其中用名称主要作用是,避免相同的服务名执行本地更新,因为相同服务之间无需感知彼此的存在,而是一种独立的实例。各个服务实例会判断应用名称是否跟自身相同,相同过则跳过本次更新,否则将会调用本地刷新逻辑refreshregister进行更新。
24.在一个实施例中,所述数据连接模块10包括发送子模块和信息获取子模块,所述发送子模块和所述信息子获取子模块连接,所述发送子模块用于与各个所述微服务20连接;所述信息获取子模块用于从所述本地注册表中获取到其他微服务20的唯一标识性信息,并将所述唯一标识性信息发送给所述发送子模块,所述发送子模块基于其他微服务20的所述唯一标识性信息发送所述状态变更信息至其他微服务20。
25.本实施例中,通过信息获取子模块从所述本地注册表中获取到其他微服务20的唯一标识性信息,该唯一标识性信息为可以识别到各个微服务20之间的信息,本技术对此不做限定。具体地,该唯一标识性信息为上述的实例id,然后根据该实例id找到对应的微服务20发送该状态变更信息。从而实现了可以对状态信息发送给第一本地注册表中所记载的微服务20,进而实现了数据的实时更新。
26.在一个实施例中,所述微服务20包括接收模块和数据处理模块,所述接收模块和所述数据处理模块连接,所述接收模块与所述数据连接模块10连接;所述接收模块用于接收所述数据连接模块10发送的所述状态变更信息,并将所述状态变更信息转发给所述数据处理模块,所述数据处理模块基于所述状态变更信息更改所述第二本地注册表中对应的信息。
27.本实施例中,通过接收模块用于接收所述数据连接模块10发送的所述状态变更信息,并将所述状态变更信息转发给所述数据处理模块,所述数据处理模块基于所述状态变更信息更改第二本地注册表中对应的信息,从而可以实现对第二本地注册表中的内容的实时更新,从而使各个微服务20都具有其他微服务20的状态信息,从而可以实现微服务20之间的数据传输可以正常进行。
28.在一个实施例中,所述数据处理模块包括第一处理子模块和第二处理子模块;所述第一处理子模块和所述第二处理子模块分别与接收模块连接;所述第一处理子模块用于当接收的所述状态变更信息为微服务20的更新信息时,则替换所述第二本地注册表中对应的状态信息;所述第二处理子模块用于当接收的所述状态变更信息为微服务20的更新信息时,则删除所述第二本地注册表中对应的状态信息。
29.本实施例中,通过第一处理子模块和第二处理子模块完成对第二本地注册表中的信息的更新。一般而言,状态变更信息一般只有两种,其一为微服务20的数据更新,其二为微服务20的下线,因此,若为第一种情况,则通过第一处理子模块替换所述第二本地注册表中对应的状态信息即可,若为第二种情况,则通过第二处理子模块删除所述第二本地注册表中对应的状态信息。从而完成了对第二本地注册表中的信息的更新。
30.参照图2,本发明还提供了一种微服务的数据传输方法,应用于消息中间件,包括:s1:接收第一微服务20上传的状态变更信息;s2:基于预先存储的本地注册表向表中的其他微服务20转发所述状态变更信息。
31.如上所述,通过将设置消息中间件获取到各个微服务20上传的状态变更信息,并基于预先存储的第一本地注册表,实时发送给其他微服务20,从而使其他微服务20均能更新自身的第二本地注册表,进而实现了各个微服务20可以实时获取到其他微服务20的变更情况,实时对自身的第二本地注册表进行更新,从而可以实现对各个微服务20的第二本地注册表进行实时更新,使微服务20之间的数据传输可以正常进行。
32.在一个实施例中,所述基于预先存储的本地注册表向表中的其他微服务20转发所述状态变更信息的步骤s2,包括:s201:从所述本地注册表中获取到其他微服务20的唯一标识性信息;s202:基于其他微服务20的所述唯一标识性信息发送所述状态变更信息至其他微服务20。
33.通过从所述本地注册表中获取到其他微服务20的唯一标识性信息,该唯一标识性信息为可以识别到各个微服务20之间的信息,本技术对此不做限定。具体地,该唯一标识性信息为上述的实例id,然后根据该实例id找到对应的微服务20发送该状态变更信息。从而实现了可以对状态信息发送给第一本地注册表中所记载的微服务20,进而实现了数据的实时更新。
34.本发明还提供了一种微服务的数据传输方法,应用于微服务20,包括:
s10:接收消息中间件的发送的状态变更信息;s11:基于所述状态变更信息更改第二本地注册表中对应的信息。
35.如上述所述,接收所述消息中间件发送的所述状态变更信息,基于所述状态变更信息更改第二本地注册表中对应的信息,从而可以实现对第二本地注册表中的内容的实时更新,从而使各个微服务20都具有其他微服务20的状态信息,从而可以实现微服务20之间的数据传输可以正常进行。
36.在一个实施例中,所述基于所述状态变更信息更改第二本地注册表中对应的信息的步骤s11包括:s1101:解析所述状态变更信息中的内容;s1102若所述状态变更信息为微服务20的更新信息时,则替换所述第二本地注册表中对应的状态信息;s1103:若接收的所述状态变更信息为微服务20的更新信息时,则删除所述第二本地注册表中对应的状态信息。
37.如上所述,一般而言,状态变更信息一般只有两种,其一为微服务20的数据更新,其二为微服务20的下线,因此,若为第一种情况,则替换所述第二本地注册表中对应的状态信息即可,若为第二种情况,则删除所述第二本地注册表中对应的状态信息。从而完成了对第二本地注册表中的信息的更新。
38.本发明的有益效果:通过将设置消息中间件获取到各个微服务20上传的状态变更信息,并基于预先存储的第一本地注册表,实时发送给其他微服务20,从而使其他微服务20均能更新自身的第二本地注册表,进而实现了各个微服务20可以实时获取到其他微服务20的变更情况,实时对自身的第二本地注册表进行更新,从而可以实现对各个微服务20的第二本地注册表进行实时更新,使微服务20之间的数据传输可以正常进行。
39.参照图3,本技术实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储本地注册表等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时可以实现上述任一实施例所述的微服务的数据传输方法。
40.本领域技术人员可以理解,图3中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定。
41.本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时可以实现上述任一实施例所述的微服务的数据传输方法。
42.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom
(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram一多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
43.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
44.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1