第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 多个服务实例的内存数据的同步方法 装置及存储介质与流程

多个服务实例的内存数据的同步方法 装置及存储介质与流程

时间:2021-11-22 16:09:22

相关推荐

多个服务实例的内存数据的同步方法 装置及存储介质与流程

本申请涉及数据同步技术领域,特别是涉及一种多个服务实例的内存数据的同步方法、装置及存储介质。

背景技术:

在分布式的系统架构中,一个应用服务一般会同时重复部署多份,每一份称为一个应用服务的实例(后面简称:服务实例),以提高应用服务的可用性,避免因单个实例宕机导致的整个应用服务不可用;一般情况下,为了让服务实例的性能达到最大化,会在服务实例内存中存储一些常用的数据,当用户请求(http请求)到达服务实例,需要处理时,不用查询数据库或者缓存服务器,直接基于内存数据进行用户请求的处理。因此每个服务实例的内存数据的不同必然会造成同一个用户请求在不同服务实例上产生的处理结果的不同。同时在服务实例运行期间,服务实例内存中的数据被应用服务的管理者进行变更操作是常有的事,而一次变更操作的请求只能影响一个服务实例,其他服务实例内存数据需要做高效的同步,才能保证所有服务实例的服务能力是相同的。

现有的对多个服务实例内存数据进行同步的方式为:在每个服务实例进程内启动一个定时器,以固定频率的方式,从数据库或者缓存服务器中获取数据,然后再更新到当前服务实例内存中。但是,通过这种同步方式,容易导致每个服务实例进程内的定时器的刷新频率的设定很难取舍的问题出现,频率高会对数据库或者缓存服务器造成无价值的冗余压力,频率低很难做到及时更新数据到实例内存中。

针对上述的现有技术中存在的现有的在每个服务实例进程内启动一个定时器,以固定频率对多个服务实例的内存数据进行同步的方式,容易导致每个服务实例进程内的定时器的刷新频率的设定很难取舍的技术问题,目前尚未提出有效的解决方案。

技术实现要素:

本公开的实施例提供了一种多个服务实例的内存数据的同步方法、装置及存储介质,以至少解决现有技术中存在的现有的在每个服务实例进程内启动一个定时器,以固定频率对多个服务实例的内存数据进行同步的方式,容易导致每个服务实例进程内的定时器的刷新频率的设定很难取舍的技术问题。

根据本公开实施例的一个方面,提供了一种多个服务实例的内存数据的同步方法,包括:接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求;响应于变更请求,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息;以及根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息同步目标数据至内存中。

根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。

根据本公开实施例的另一个方面,还提供了一种多个服务实例的内存数据的同步装置,包括:第一接收模块,用于接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求;确定模块,用于响应于变更请求,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息;以及变更通知信息发送模块,用于根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息同步目标数据至内存中。

根据本公开实施例的另一个方面,还提供了一种多个服务实例的内存数据的同步装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求;响应于变更请求,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息;以及根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息同步目标数据至内存中。

在本公开实施例中,服务器首先接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求。然后,服务器响应于变更请求,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息。最后,在确定实例地址信息之后,服务器根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例。使得在多个服务实例接收到变更通知信息后,会自行快速的将目标数据同步至各自的内存中,提高变更后多个服务实例生效的效率,一般控制在1秒以内。使得不再需要在每个服务实例进程内启动一个定时器,以固定频率对多个服务实例的内存数据进行同步的方式,达到了无须定时任务以固定频率,盲目的刷新目标数据到内存中,从而不再需要对每个服务实例进程内的定时器的刷新频率进行设定。进而解决了现有技术中存在的现有的在每个服务实例进程内启动一个定时器,以固定频率对多个服务实例的内存数据进行同步的方式,容易导致每个服务实例进程内的定时器的刷新频率的设定很难取舍的技术问题。

附图说明

此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:

图1是用于实现根据本公开实施例1所述的方法的计算设备的硬件结构框图;

图2是根据本公开实施例1所述的多个服务实例的内存数据的同步系统的示意图;

图3是根据本公开实施例1的第一个方面所述的多个服务实例的内存数据的同步方法的流程示意图;

图4是根据本公开实施例1的第一个方面所述的多个服务实例的内存数据的同步方法对应的整体流程示意图;

图5是根据本公开实施例2所述的多个服务实例的内存数据的同步装置的示意图;以及

图6是根据本公开实施例3所述的多个服务实例的内存数据的同步装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本实施例,提供了一种多个服务实例的内存数据的同步方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现多个服务实例的内存数据的同步方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器可用于存储应用软件的软件程序以及模块,如本公开实施例中的多个服务实例的内存数据的同步方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的多个服务实例的内存数据的同步方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。

此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。

图2是根据本实施例所述的多个服务实例的内存数据的同步系统的示意图。参照图2所示,该系统包括:部署有属于同一个应用服务的至少一个服务实例的服务器200、与服务器200通信连接的数据库300(例如,mysql数据库)、与服务器200通信连接的缓存服务器400和终端设备100。其中,终端设备100为应用服务的管理者110的终端设备,缓存服务器400提供对各个服务实例的地址进行注册的功能,从而记录属于同一应用服务的多个服务实例的地址。需要说明的是,系统中的服务器200、缓存服务器400和终端设备100均可适用上面所述的硬件结构。

在上述运行环境下,根据本实施例的第一个方面,提供了一种多个服务实例的内存数据的同步方法,该方法由图2中所示的服务器200实现。图3示出了该方法的流程示意图,参考图3所示,该方法包括:

s302:接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求;

s304:响应于变更请求,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息;以及

s306:根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息同步目标数据至内存中。

正如前面背景技术中所述的,现有的对多个服务实例内存数据进行同步的方式为:在每个服务实例进程内启动一个定时器,以固定频率的方式,从数据库或者缓存服务器中获取数据,然后再更新到当前服务实例内存中。但是,通过这种同步方式,容易导致每个服务实例进程内的定时器的刷新频率的设定很难取舍的问题出现,频率高会对数据库或者缓存服务器造成无价值的冗余压力,频率低很难做到及时更新数据到实例内存中。

针对上述背景技术中存在的问题,结合图2所示,某一应用服务部署有多个服务实例,例如服务实例1、服务实例2以及服务实例3。在应用服务的管理者110具有对指定服务实例(例如服务实例1)内存中存储的数据变更为目标数据的需求的情况下,管理者110可以通过终端设备100向服务器200发送变更请求。此时,服务器200从终端设备100接收请求将服务实例1内存中存储的数据变更为目标数据的变更请求。然后,服务器200响应于变更请求,确定与服务实例1属于相同的应用服务并且当前状态为存活状态的多个服务实例(例如,服务实例2和服务实例3)的地址对应的实例地址信息。最后,在确定实例地址信息之后,服务器200根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例(即服务实例2和服务实例3),使得服务实例2和服务实例3响应于变更通知信息同步目标数据至内存中。

从而,通过这种方式,在多个服务实例接收到变更通知信息后,会自行快速的将目标数据同步至各自的内存中,提高变更后多个服务实例生效的效率,一般控制在1秒以内。使得不再需要在每个服务实例进程内启动一个定时器,以固定频率对多个服务实例的内存数据进行同步的方式,达到了无须定时任务以固定频率,盲目的刷新目标数据到内存中,从而不再需要对每个服务实例进程内的定时器的刷新频率进行设定。进而解决了现有技术中存在的现有的在每个服务实例进程内启动一个定时器,以固定频率对多个服务实例的内存数据进行同步的方式,容易导致每个服务实例进程内的定时器的刷新频率的设定很难取舍的技术问题。

可选地,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息的操作之前,还包括:响应于变更请求,将目标数据存储于预设的数据库。

具体地,参照图2所示,服务器200外接有一个用于存储变更数据(目标数据)的数据库300,其中该数据库300例如但不限于可以为mysql数据库。并且,服务器200在确定该实例地址信息之前,可以将目标数据存储于预设的数据库300中。另外,目标数据也可以存储于其他的位置,例如缓存服务器400中。

可选地,根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息同步目标数据至内存中的操作,包括:根据实例地址信息,将变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息从数据库同步目标数据至内存中。

具体地,在目标数据存储于数据库300的情况下,服务器200根据实例地址信息,将变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息,从数据库300同步目标数据至内存中。通过这种方式,降低了多个服务实例频繁查询数据库300,避免了对数据库300带来对额外压力。

可选地,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息的操作,包括:将请求查询实例地址信息的查询请求发送至缓存服务器,其中缓存服务器预先存储有与各个服务实例的地址相对应的地址信息;以及从缓存服务器接收查询到的地址信息,并确定为实例地址信息。

具体地,参照图2所示,服务器200将请求查询实例地址信息的查询请求发送至缓存服务器400。其中缓存服务器400预先存储有与各个服务实例的地址相对应的地址信息。其中,图4示出了多个服务实例的内存数据的同步方法对应的整体流程示意图。参照图4所示,每个应用服务的各个服务实例的地址都需要在缓存服务器400中进行注册操作。因此,缓存服务器400中存储有与指定服务实例(服务实例1)属于同一应用服务的其他服务实例的地址相对应的地址信息。其中,该地址信息可以为实例地址列表的形式。参照图4所示,缓存服务器400会对实例地址列表进行自动维护,从而保障了实例地址列表中存储的地址信息均为状态为存活状态的服务实例的地址对应的地址信息。

最后,服务器200从缓存服务器400接收查询到的与指定服务实例(服务实例1)属于同一应用服务并且当前状态为存活状态的多个服务实例(例如,服务实例2和服务实例3)对应的地址信息,并将接收到地址信息确定为该实例地址信息。通过这种方式,保障了服务器200所确定的实例地址信息的实时性以及准确性。

可选地,接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求的操作之前,还包括:将与指定服务实例属于相同的应用服务的各个服务实例的地址相对应的地址信息及请求对各个服务实例的地址进行注册的注册请求发送至缓存服务器;以及从缓存服务器接收与地址成功注册相关的成功通知信息。

具体地,服务器200在接收请求将指定服务实例(例如,服务实例1)内存中存储的数据变更为目标数据的变更请求的操作之前,需要对与指定服务实例属于相同的应用服务的各个服务实例(例如,服务实例1、服务实例2和服务实例3)的地址在缓存服务器400中进行注册。因此,服务器200将服务实例1、服务实例2和服务实例3的地址相对应的地址信息以及请求对服务实例1、服务实例2和服务实例3的地址进行注册的注册请求发送至缓存服务器400。在缓存服务器400完成注册操作之后,会将一个通知信息发送至服务器200。因而,服务器200从缓存服务器400接收与地址成功注册相关的成功通知信息。通过这种方式,完成了对属于相同的应用服务的各个服务实例的地址进行注册的操作。

可选地,根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例的操作,包括:根据实例地址信息,以异步通知的方式将变更通知信息发送至多个服务实例。

具体地,服务器200在完成对指定服务实例(即,服务实例1)的内存数据完成变更操作之后,可以根据实例地址信息,自动异步通知其他实例(即,服务实例2和服务实例3)对内存数据进行更新,即将目标数据同步至内存中。通过这种方式,使得每个服务实例遵循简单的内存数据升级流程,完成内存数据的及时有效更新。

可选地,多个服务实例配置于不同的应用服务器中,并且根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例的操作,包括:根据实例地址信息,将变更通知信息发送至与多个服务实例分别对应的多个应用服务器。

具体地,与指定服务实例(例如,服务实例1)属于同一个应用服务的其他服务实例(例如,服务实例2和服务实例3)可以分别部署于不同的服务器上。例如:服务实例2部署于应用服务器a以及服务实例3部署于应用服务器b上。因此,服务器200需要根据实例地址信息,将变更通知信息发送至与多个服务实例分别对应的多个应用服务器(即,应用服务器a和应用服务器b)。

此外,与指定服务实例(例如,服务实例1)属于同一个应用服务的其他服务实例(例如,服务实例2和服务实例3)也可以部署于同一服务器上,即服务器200上,每一服务实例分别配置有不同的接口。从而,访问者可以通过对应的接口对各个服务实例进行访问。

此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

图5示出了根据本实施例所述的多个服务实例的内存数据的同步装置500,该装置500与根据实施例1的第一个方面所述的方法相对应。参考图5所示,该装置500包括:第一接收模块510,用于接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求;确定模块520,用于响应于变更请求,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息;以及变更通知信息发送模块530,用于根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息同步目标数据至内存中。

可选地,还包括:存储模块,用于在确定模块确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息的操作之前,响应于变更请求,将目标数据存储于预设的数据库。

可选地,变更通知信息发送模块530包括:第一发送子模块,用于根据实例地址信息,将变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息从数据库同步目标数据至内存中。

可选地,确定模块520包括:第二发送子模块,用于将请求查询实例地址信息的查询请求发送至缓存服务器,其中缓存服务器预先存储有与各个服务实例的地址相对应的地址信息;以及确定子模块,用于从缓存服务器接收查询到的地址信息,并确定为实例地址信息。

可选地,还包括:注册请求发送模块,用于在第一接收模块接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求的操作之前,将与指定服务实例属于相同的应用服务的各个服务实例的地址相对应的地址信息及请求对各个服务实例的地址进行注册的注册请求发送至缓存服务器;以及第二接收模块,用于从缓存服务器接收与地址成功注册相关的成功通知信息。

可选地,变更通知信息发送模块530包括:第三发送子模块,用于根据实例地址信息,以异步通知的方式将变更通知信息发送至多个服务实例。

可选地,多个服务实例配置于不同的应用服务器中,并且变更通知信息发送模块530包括:第四发送子模块,用于根据实例地址信息,将变更通知信息发送至与多个服务实例分别对应的多个应用服务器。

从而根据本实施例,装置500首先接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求。然后,装置500响应于变更请求,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息。最后,在确定实例地址信息之后,装置500根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例。使得在多个服务实例接收到变更通知信息后,会自行快速的将目标数据同步至各自的内存中,提高变更后多个服务实例生效的效率,一般控制在1秒以内。使得不再需要在每个服务实例进程内启动一个定时器,以固定频率对多个服务实例的内存数据进行同步的方式,达到了无须定时任务以固定频率,盲目的刷新目标数据到内存中,从而不再需要对每个服务实例进程内的定时器的刷新频率进行设定。进而解决了现有技术中存在的现有的在每个服务实例进程内启动一个定时器,以固定频率对多个服务实例的内存数据进行同步的方式,容易导致每个服务实例进程内的定时器的刷新频率的设定很难取舍的技术问题。

实施例3

图6示出了根据本实施例所述的多个服务实例的内存数据的同步装置600,该装置600与根据实施例1的第一个方面所述的方法相对应。参考图6所示,该装置600包括:处理器610;以及存储器620,与处理器610连接,用于为处理器610提供处理以下处理步骤的指令:接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求;响应于变更请求,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息;以及根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息同步目标数据至内存中。

可选地,存储器620还用于为处理器610提供处理以下处理步骤的指令:确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息的操作之前,响应于变更请求,将目标数据存储于预设的数据库。

可选地,根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息同步目标数据至内存中的操作,包括:根据实例地址信息,将变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息从数据库同步目标数据至内存中。

可选地,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息的操作,包括:将请求查询实例地址信息的查询请求发送至缓存服务器,其中缓存服务器预先存储有与各个服务实例的地址相对应的地址信息;以及从缓存服务器接收查询到的地址信息,并确定为实例地址信息。

可选地,存储器620还用于为处理器610提供处理以下处理步骤的指令:接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求的操作之前,将与指定服务实例属于相同的应用服务的各个服务实例的地址相对应的地址信息及请求对各个服务实例的地址进行注册的注册请求发送至缓存服务器;以及从缓存服务器接收与地址成功注册相关的成功通知信息。

可选地,根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例的操作,包括:根据实例地址信息,以异步通知的方式将变更通知信息发送至多个服务实例。

可选地,多个服务实例配置于不同的应用服务器中,并且根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例的操作,包括:根据实例地址信息,将变更通知信息发送至与多个服务实例分别对应的多个应用服务器。

从而根据本实施例,装置600首先接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求。然后,装置600响应于变更请求,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息。最后,在确定实例地址信息之后,装置600根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例。使得在多个服务实例接收到变更通知信息后,会自行快速的将目标数据同步至各自的内存中,提高变更后多个服务实例生效的效率,一般控制在1秒以内。使得不再需要在每个服务实例进程内启动一个定时器,以固定频率对多个服务实例的内存数据进行同步的方式,达到了无须定时任务以固定频率,盲目的刷新目标数据到内存中,从而不再需要对每个服务实例进程内的定时器的刷新频率进行设定。进而解决了现有技术中存在的现有的在每个服务实例进程内启动一个定时器,以固定频率对多个服务实例的内存数据进行同步的方式,容易导致每个服务实例进程内的定时器的刷新频率的设定很难取舍的技术问题。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术特征:

1.一种多个服务实例的内存数据的同步方法,其特征在于,包括:

接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求;

响应于所述变更请求,确定与所述指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息;以及

根据所述实例地址信息,将与通知变更内存数据相关的变更通知信息发送至所述多个服务实例,使得所述多个服务实例响应于所述变更通知信息同步所述目标数据至内存中。

2.根据权利要求1所述的方法,其特征在于,确定与所述指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息的操作之前,还包括:响应于所述变更请求,将所述目标数据存储于预设的数据库。

3.根据权利要求2所述的方法,其特征在于,根据所述实例地址信息,将与通知变更内存数据相关的变更通知信息发送至所述多个服务实例,使得所述多个服务实例响应于所述变更通知信息同步所述目标数据至内存中的操作,包括:根据所述实例地址信息,将所述变更通知信息发送至所述多个服务实例,使得所述多个服务实例响应于所述变更通知信息从所述数据库同步所述目标数据至内存中。

4.根据权利要求1所述的方法,其特征在于,确定与所述指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息的操作,包括:

将请求查询所述实例地址信息的查询请求发送至缓存服务器,其中所述缓存服务器预先存储有与各个服务实例的地址相对应的地址信息;以及

从所述缓存服务器接收查询到的地址信息,并确定为所述实例地址信息。

5.根据权利要求4所述的方法,其特征在于,接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求的操作之前,还包括:

将与所述指定服务实例属于相同的应用服务的各个服务实例的地址相对应的地址信息及请求对各个服务实例的地址进行注册的注册请求发送至所述缓存服务器;以及

从所述缓存服务器接收与地址成功注册相关的成功通知信息。

6.根据权利要求1所述的方法,其特征在于,根据所述实例地址信息,将与通知变更内存数据相关的变更通知信息发送至所述多个服务实例的操作,包括:根据所述实例地址信息,以异步通知的方式将所述变更通知信息发送至所述多个服务实例。

7.根据权利要求1所述的方法,其特征在于,所述多个服务实例配置于不同的应用服务器中,并且根据所述实例地址信息,将与通知变更内存数据相关的变更通知信息发送至所述多个服务实例的操作,包括:根据所述实例地址信息,将所述变更通知信息发送至与所述多个服务实例分别对应的多个应用服务器。

8.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1至7中任意一项所述的方法。

9.一种多个服务实例的内存数据的同步装置,其特征在于,包括:

第一接收模块,用于接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求;

确定模块,用于响应于所述变更请求,确定与所述指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息;以及

变更通知信息发送模块,用于根据所述实例地址信息,将与通知变更内存数据相关的变更通知信息发送至所述多个服务实例,使得所述多个服务实例响应于所述变更通知信息同步所述目标数据至内存中。

10.一种多个服务实例的内存数据的同步装置,其特征在于,包括:

处理器;以及

存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:

接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求;

响应于所述变更请求,确定与所述指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息;以及

根据所述实例地址信息,将与通知变更内存数据相关的变更通知信息发送至所述多个服务实例,使得所述多个服务实例响应于所述变更通知信息同步所述目标数据至内存中。

技术总结

本申请公开了一种多个服务实例的内存数据的同步方法、装置及存储介质。其中,该方法包括:接收请求将指定服务实例内存中存储的数据变更为目标数据的变更请求;响应于变更请求,确定与指定服务实例属于相同的应用服务并且当前状态为存活状态的多个服务实例的地址对应的实例地址信息;以及根据实例地址信息,将与通知变更内存数据相关的变更通知信息发送至多个服务实例,使得多个服务实例响应于变更通知信息同步目标数据至内存中。使得在多个服务实例接收到变更通知信息后,会自行快速的将目标数据同步至各自的内存中,提高变更后多个服务实例生效的效率。

技术研发人员:文君;李旭芳

受保护的技术使用者:爱钱进(北京)信息科技有限公司

技术研发日:.10.28

技术公布日:.02.21

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。