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

一种服务实例间数据同步的方法及装置与流程

2021-11-25 01:02:00 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,具体涉及一种服务实例间数据同步的方法及装置。


背景技术:

2.随着技术的发展,集中式架构转变为分布式架构,带来新的问题。集中式架构中,数据集中部署,不存在多实例数据同步问题。分布式架构中,单个服务会拓展部署多个实例,来达到高可用高吞吐量的目的,除业务数据外,为了提高处理性能,往往会考虑在实例中缓存部分热点数据来提高处理效率,降低io损耗。但多个实例间热点数据同步问题也带来挑战。
3.微服务中数据同步的传统做法是将数据更新至数据库或其他第三方存储介质,服务通过定时轮询进行更新。该方案依赖第三方存储的可靠性、定时的可靠性,并且由于定时轮询存在时间间隔,在这段时间内业务处理的准确性无法保障。


技术实现要素:

4.针对现有技术中的问题,本发明实施例提供一种服务实例间数据同步的方法及装置,能够至少部分地解决现有技术中存在的问题。
5.第一方面,本发明提出一种服务实例间数据同步的方法,包括:获取目标服务的第一实例上报的同步数据;将所述同步数据发送给所述目标服务的其他实例。
6.可选的,在获取目标服务的第一实例上报的同步数据之前,所述方法还包括:获取所述目标服务的所述第一实例以及所述其他实例的注册请求;根据所述注册请求,建立与所述第一实例以及所述其他实例之间的tcp连接。
7.可选的,所述获取目标服务的第一实例上报的同步数据包括:获取目标服务的第一实例通过所述tcp连接上报的所述同步数据;所述将所述同步数据发送给所述目标服务的其他实例包括:将所述同步数据通过所述tcp连接发送给所述目标服务的其他实例。
8.可选的,在将所述同步数据发送给所述目标服务的其他实例之前,所述方法还包括:获取所述其他实例发送的对所述目标服务的同步数据的订阅请求;根据所述订阅请求,建立所述其他实例与所述目标服务之间的订阅关系;所述将所述同步数据发送给所述目标服务的其他实例包括:将所述同步数据发送给与所述目标服务具有订阅关系的其他实例。
9.第二方面,本发明提出一种服务实例间数据同步的方法,包括:发送注册请求至注册中心,以建立与所述注册中心之间的连接;在检测到目标服务的同步数据时,通过建立的所述连接将所述同步数据上报至所述注册中心,以使所述注册中心将所述同步数据发送给订阅所述目标服务的同步数据的其他实例。
10.可选的,所述方法还包括:获取注册中心发送的其他同步数据,所述其他同步数据是所述目标服务的其他实例上报给所述注册中心的;将所述其他同步数据保存至本地。
11.第三方面,本发明提出一种服务实例间数据同步的装置,包括:获取模块,用于获
取目标服务的第一实例上报的同步数据;发送模块,用于将所述同步数据发送给所述目标服务的其他实例。
12.第四方面,本发明提出一种服务实例间数据同步的装置,包括:第一发送模块,用于发送注册请求至注册中心,以建立与所述注册中心之间的连接;第二发送模块,用于在检测到目标服务的同步数据时,通过建立的所述连接将所述同步数据上报至所述注册中心,以使所述注册中心将所述同步数据发送给订阅所述目标服务的同步数据的其他实例。
13.第五方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述的服务实例间数据同步的方法的步骤。
14.第六方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述的服务实例间数据同步的方法的步骤。
15.本发明实施例提供的服务实例间数据同步的方法、装置及电子设备,能够实时获取目标服务的第一实例上报的同步数据,并将获取到的所述同步数据实时发送给所述目标服务的其他实例,这样,实现了所述目标服务的各实例间数据的同步。相比于现有技术中通过定时轮询的方法获取第三方存储介质存储的最新数据的方案,保证了目标服务各实例业务处理的准确性。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
17.图1是本发明一实施例提供的服务实例间数据同步的方法的流程示意图。
18.图2是本发明另一实施例提供的服务实例间数据同步的方法的流程示意图。
19.图3是本发明又一实施例提供的服务实例间数据同步的方法的部分流程示意图。
20.图4是本发明再一实施例提供的服务实例间数据同步的方法各执行主体间的信令交互图。
21.图5是本发明一实施例提供的服务实例间数据同步的装置的结构示意图。
22.图6是本发明另一实施例提供的服务实例间数据同步的装置的结构示意图。
23.图7是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
24.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互任意组合。
25.本发明实施例提供的服务实例间数据同步的方法的执行主体包括但不限于计算机。
26.图1是本发明一实施例提供的服务实例间数据同步的方法的流程示意图,如图1所
示,本发明实施例提供的服务实例间数据同步的方法,可以应用于注册中心,所述包括:
27.s101、获取目标服务的第一实例上报的同步数据;
28.本步骤,所述注册中心(registry)是指服务注册中心,是微服务架构非常重要的一个组件;所述目标服务(service)一般是指一个接口,可以包括多个方法,例如订单服务包含有查询订单、新增订单等方法。所述目标服务具有至少两个实例,所述第一实例可以为所述目标服务的任意一个实例。
29.所述目标服务的各实例间需要同步的数据可以根据实际需求设定,例如所述需要同步的数据包括所述目标服务的共享资源的状态信息;对于所述目标服务的每一个实例,在所述实例运行过程中发现需在各实例间同步的数据时,则该实例将该需在各实例间同步的数据上报给注册中心。也即所述第一实例上报的同步数据是所述第一实例在运行过程中发现的需在所述目标服务的各实例间同步的数据。
30.s102、将所述同步数据发送给所述目标服务的其他实例。
31.本步骤,所述其他实例是指所述目标服务除所述第一实例之外的其他实例;所述注册中心在获取到所述同步数据之后,主动将所述同步数据推送给所述目标服务的其他实例,其他实例在接收到所述同步数据之后,将所述同步数据保存至本地,至此完成服务实例间的数据同步。
32.本发明实施例提供的服务实例间数据同步的方法,能够实时获取目标服务的第一实例上报的同步数据,并将获取到的所述同步数据实时发送给所述目标服务的其他实例,这样,实现了所述目标服务的各实例间数据的同步。相比于现有技术中通过定时轮询的方法获取第三方存储介质存储的最新数据的方案,保证了目标服务各实例业务处理的准确性。
33.可选的,在获取目标服务的第一实例上报的同步数据之前,所述方法还可以包括:获取所述目标服务的所述第一实例以及所述其他实例的注册请求;根据所述注册请求,建立与所述第一实例以及所述其他实例之间的tcp连接。
34.本实施例,目标服务的多个副本启动后可以主动向注册中心注册,上报本实例的相关信息,包括ip地址、端口和服务名称等。注册成功后,每个实例与注册中心的tcp连接创建成功,注册中心缓存与每个实例间的tcp连接。每个实例与注册中心之间创建的tcp连接可以为tcp长连接,tcp长连接可适用于各实例与注册中心间频繁的数据传输。
35.可选的,在注册中心建立与所述第一实例以及所述其他实例之间的tcp连接之后,所述获取目标服务的第一实例上报的同步数据可以包括:获取目标服务的第一实例通过所述tcp连接上报的所述同步数据;所述将所述同步数据发送给所述目标服务的其他实例包括:将所述同步数据通过所述tcp连接发送给所述目标服务的其他实例。
36.本实施例,在所述第一实例以及所述其他实例建立与注册中心的tcp连接之后,所述注册中心与各实例间通过tcp连接进行数据传输。相比于现有技术中通过udp协议(用户数据报协议)同步数据的方法,提升了数据同步的可靠性。
37.可选的,在将所述同步数据发送给所述目标服务的其他实例之前,所述方法还包括:获取所述其他实例发送的对所述目标服务的同步数据的订阅请求;根据所述订阅请求,建立所述其他实例与所述目标服务之间的订阅关系;所述将所述同步数据发送给所述目标服务的其他实例包括:将所述同步数据发送给与所述目标服务具有订阅关系的其他实例。
38.本实施例,注册中心在获取第一实例发送的所述同步数据之后,仅将所述同步数据发送给与所述目标服务具有订阅关系的其他实例,即仅将所述同步数据发送给对所述同步数据有需求的其他实例。可选的,所述其他实例可以在向所述注册中心发送注册请求时同时发送所述订阅请求。
39.图2是本发明另一实施例提供的服务实例间数据同步的方法的流程示意图,如图2所示,本发明实施例提供的服务实例间数据同步的方法,可以应用于目标服务的任意一个服务副本所在的服务器,所述方法包括:
40.s201、发送注册请求至注册中心,以建立与所述注册中心之间的连接;
41.本步骤,目标服务的所述服务副本启动后可自动向注册中心注册,上报本实例的相关信息,包括ip、端口和服务名称等。启动成功后,每个实例同注册中心之间建立一条连接,例如建立tcp(传输控制协议)连接。每个实例与注册中心之间创建的tcp连接可以为tcp长连接,tcp长连接可适用于各实例与注册中心间频繁的数据传输。
42.s202、在检测到目标服务的同步数据时,通过建立的所述连接将所述同步数据上报至所述注册中心,以使所述注册中心将所述同步数据发送给订阅所述目标服务的同步数据的其他实例。
43.本步骤,所述目标服务的同步数据是指,所述目标服务的各实例间需要同步的数据,所述需要同步的数据可以根据实际需求设定,例如所述需要同步的数据包括所述目标服务的共享资源的状态信息;对于所述目标服务的每一个实例,在所述实例运行过程中发现需在各实例间同步的数据时,本地保存该同步信息后,通过已建立的连接将该需在各实例间同步的数据上报给注册中心。注册中心收到所述同步数据后,向所有订阅所述目标服务的实例,通过已有连接推送该同步数据。
44.举例而言,服务a的实例1在运行过程中发现服务a在运行过程中需要使用的资源b状态异常且该异常能影响服务a所有实例的运行流程,本地保存资源b的状态信息后,通过已有连接向注册中心上报关于服务a的资源b的状态数据;注册中心收到后,解析到是服务a的同步数据,向所有订阅服务a的实例,通过已有连接推送该同步数据。
45.本发明实施例提供的服务实例间数据同步的方法,通过发送注册请求至注册中心,以建立与所述注册中心之间的连接;在检测到目标服务的同步数据时,通过建立的所述连接将所述同步数据上报至所述注册中心,以使所述注册中心将所述同步数据发送给订阅所述目标服务的同步数据的其他实例。这样,能够将目标服务的每个实例上报的同步数据,实时发送给所述目标服务的其他实例,这样,实现了所述目标服务的各实例间数据的同步。相比于现有技术中通过定时轮询的方法获取第三方存储介质存储的最新数据的方案,保证了目标服务各实例业务处理的准确性。
46.如图3所示,可选的,所述方法还可以包括:
47.s203、获取注册中心发送的其他同步数据,所述其他同步数据是所述目标服务的其他实例上报给所述注册中心的;
48.本步骤,所述目标服务的每个实例在运行过程中发现所述目标服务的同步数据时,都可以将所述同步数据上报给所述注册中心,以使所述注册中心将所述同步数据发送给除上报所述同步数据的实例之外的所述目标服务的其他实例。
49.s204、将所述其他同步数据保存至本地。
50.本步骤,本服务副本的实例在将所述其他同步数据保存至本地之后,即完成了服务实例间数据的同步。
51.为更好的理解本发明,下面通过一具体实施例对本发明提供的服务实例间数据同步的方法进行说明。
52.如图4所示,本发明实施例提供的服务实例间数据同步的方法,包括:
53.步骤1、服务a的多个副本启动后,主动向注册中心注册,上报本实例的相关信息,包括ip、端口和服务名称等;启动成功后,每个实例同注册中心维护一条tcp长连接,且主动订阅本服务的相关信息;
54.步骤2、服务a的实例1在运行过程中发现服务a在运行过程中需要使用的资源b状态异常且该异常能影响服务a所有实例的运行流程;
55.步骤3、服务a的实例1本地保存资源b的状态信息后,通过已有连接向注册中心上报关于服务a的资源b的状态数据;
56.步骤4、注册中心收到后,解析是服务a的相关信息,向所有订阅服务a的实例,通过已有连接推送该条消息,使该条消息得以及时通知给其他实例。
57.图5是本发明一实施例提供的服务实例间数据同步的装置的结构示意图,如图5所示,本发明实施例提供的服务实例间数据同步的装置包括:获取模块31,用于获取目标服务的第一实例上报的同步数据;发送模块32,用于将所述同步数据发送给所述目标服务的其他实例。
58.本发明实施例提供的服务实例间数据同步的装置,能够实时获取目标服务的第一实例上报的同步数据,并将获取到的所述同步数据实时发送给所述目标服务的其他实例,这样,实现了所述目标服务的各实例间数据的同步。相比于现有技术中通过定时轮询的方法获取第三方存储介质存储的最新数据的方案,保证了目标服务各实例业务处理的准确性。
59.可选的,所述获取模块还用于获取所述目标服务的所述第一实例以及所述其他实例的注册请求;第一建立模块,用于根据所述注册请求,建立与所述第一实例以及所述其他实例之间的tcp连接。
60.可选的,所述获取模块获取目标服务的第一实例上报的同步数据具体包括:获取目标服务的第一实例通过所述tcp连接上报的所述同步数据;所述发送模块具体用于:将所述同步数据通过所述tcp连接发送给所述目标服务的其他实例。
61.可选的,所述获取模块还用于获取所述其他实例发送的对所述目标服务的同步数据的订阅请求;第二建立模块,用于根据所述订阅请求,建立所述其他实例与所述目标服务之间的订阅关系;所述发送模块具体同于:将所述同步数据发送给与所述目标服务具有订阅关系的其他实例。
62.本发明提供的装置的实施例具体可以用于执行上述应用于注册中心的各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
63.图6是本发明另一实施例提供的服务实例间数据同步的装置的结构示意图,如图6所示,本发明实施例提供的服务实例间数据同步的装置包括:第一发送模块41,用于发送注册请求至注册中心,以建立与所述注册中心之间的连接;第二发送模块42,用于在检测到目标服务的同步数据时,通过建立的所述连接将所述同步数据上报至所述注册中心,以使所
述注册中心将所述同步数据发送给订阅所述目标服务的同步数据的其他实例。
64.本发明实施例提供的服务实例间数据同步的装置,通过发送注册请求至注册中心,以建立与所述注册中心之间的连接;在检测到目标服务的同步数据时,通过建立的所述连接将所述同步数据上报至所述注册中心,以使所述注册中心将所述同步数据发送给订阅所述目标服务的同步数据的其他实例。这样,能够将目标服务的每个实例上报的同步数据,实时发送给所述目标服务的其他实例,这样,实现了所述目标服务的各实例间数据的同步。相比于现有技术中通过定时轮询的方法获取第三方存储介质存储的最新数据的方案,保证了目标服务各实例业务处理的准确性。
65.可选的,所述装置还包括:获取模块,用于获取注册中心发送的其他同步数据,所述其他同步数据是所述目标服务的其他实例上报给所述注册中心的;保存模块,用于将所述其他同步数据保存至本地。
66.本发明提供的装置的实施例具体可以用于执行上述应用于目标服务的任意一个服务副本所在的服务器的各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
67.图7为本发明一实施例提供的电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)501、通信接口(communicationsinterface)502、存储器(memory)503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。处理器501可以调用存储器503中的逻辑指令,以执行上述任一实施例所述的方法。
68.此外,上述的存储器503中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
69.本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。
70.本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法。
71.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
72.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
73.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
74.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
75.在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
76.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献