CN110413418A - 缓存同步装置及方法,缓存同步***、电子设备 - Google Patents
缓存同步装置及方法,缓存同步***、电子设备 Download PDFInfo
- Publication number
- CN110413418A CN110413418A CN201910557298.9A CN201910557298A CN110413418A CN 110413418 A CN110413418 A CN 110413418A CN 201910557298 A CN201910557298 A CN 201910557298A CN 110413418 A CN110413418 A CN 110413418A
- Authority
- CN
- China
- Prior art keywords
- caching
- local cache
- cache
- interface
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种缓存同步装置,属于数据处理技术领域,本申请实施例公开的缓存同步装置,通过在应用所在服务器设置所述同步缓存装置,由所述缓存同步装置对多种开源缓存进行封装,并基于泛型进行调用;当所述同步缓存装置操作本地缓存导致本地缓存变化后,会通过内置的缓存更新管理模块将本地缓存变化信息同步到应用预先注册的其他节点,以进行数据同步;所述同步缓存装置通过缓存更新管理模块接收其他节点的缓存数据发生变化的消息,并更新本地缓存。本申请实施例公开的缓存同步装置,不需要对服务器端进行额外开发和繁琐配置,仅需要在缓存节点安装本地缓存同步装置,即可实现不同缓存节点间本地缓存的同步,节省了开发成本,提升了开发效率。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种缓存同步装置及方法、缓存同步***、电子设备及计算机可读存储介质。
背景技术
在服务器端应用开发过程中,通常都会使用服务器端的本地缓存。本地缓存具有读取速度快、安全稳定的优点。相对于redis/memcache(一种开源缓存)等外部分布式缓存,本地缓存直接读取本地内存,避免了序列化、网络输入输出接口的过程,对于提高***性能有很大的帮助。由于应用的客户端通常是海量的,为了提升应用的处理效率,客户端的访问通常被映射到不同的服务器端,因此,服务器端之间缓存的应用数据同步是保证应用程序稳定性的关键技术。现有技术中,通常通过引入外部消息队列解决某个应用的不同服务器端的本地缓存同步问题,当数据源或单个服务器端节点(即服务器)缓存数据发生变更,通过发布/订阅模式,将数据变更消息通过消息队列广播到集群各个服务器端节点,通知各个服务器进行数据同步更新。
在通过发布/订阅模式,将数据变更消息通过消息队列广播到集群各个服务器时,首先需要进行消息队列配置,服务器端节点需要申请消息队列主题。另一方面,还需要将每个服务器端节点配置为一个独立的消费者,开发相关的消费者注册和消费解析逻辑。
可见,现有技术中的本地缓存同步方法至少存在开发和配置成本高的缺陷。
发明内容
本申请提供一种缓存同步装置,有助于降低服务器端本地缓存同步的开发和配置成本,使业务***以零开发成本实现服务器端的缓存同步。
为了解决上述问题,第一方面,本申请实施例提供了一种缓存同步装置,包括:缓存操作接口模块、缓存注册管理模块、缓存操作管理模块和缓存更新模块,其中,
所述缓存操作接口模块,用于响应目标应用更新本地缓存的接口调用,将所述更新本地缓存的接口调用发送至所述缓存操作管理模块;
所述缓存操作管理模块,用于将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存;
所述缓存操作接口模块,还用于响应目标应用更新本地缓存的接口调用,构造本地缓存更新信息;
所述缓存注册管理模块,用于通过预设节点注册中心获取所述目标应用对应的缓存节点列表,所述缓存节点列表中包括所述目标应用的不同服务端预先注册的本地缓存所在节点的IP地址(IP Address,Internet Protocol Address,互联网协议地址)和端口;
所述缓存更新模块,用于通过所述缓存注册管理模块获取所述IP地址和端口,并通过所述IP地址和端口向所述目标应用的各节点广播所述本地缓存更新信息,以使得所述目标应用的各节点执行缓存更新操作。
第二方面,本申请实施例提供了一种缓存同步方法,包括:
响应目标应用更新本地缓存的接口调用,将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存;
响应目标应用更新本地缓存的接口调用,构造本地缓存更新信息;
通过预设节点注册中心获取所述目标应用对应的缓存节点列表,所述缓存节点列表中包括所述目标应用的不同服务端预先注册的本地缓存所在节点的IP地址和端口;
通过所述IP地址和端口向所述目标应用的各节点广播所述本地缓存更新信息,以使得所述目标应用的各节点执行缓存更新操作。
第三方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的缓存同步方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的缓存同步方法的步骤。
本申请实施例公开的缓存同步装置,通过在应用服务端设置所述同步缓存装置,所述同步缓存装置进一步包括:缓存操作接口模块、缓存注册管理模块、缓存操作管理模块和缓存更新模块,所述缓存操作接口模块,用于响应目标应用更新本地缓存的接口调用,将所述更新本地缓存的接口调用发送至所述缓存操作管理模块;所述缓存操作管理模块,用于将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存;所述缓存操作接口模块,还用于响应目标应用更新本地缓存的接口调用,构造本地缓存更新信息;所述缓存注册管理模块,用于通过预设节点注册中心获取所述目标应用对应的缓存节点列表,所述缓存节点列表中包括所述目标应用的不同服务端预先注册的本地缓存所在节点的IP地址和端口;所述缓存更新模块,用于通过所述缓存注册管理模块获取所述IP地址和端口,并通过所述IP地址和端口向所述目标应用的各节点广播所述本地缓存更新信息,以使得所述目标应用的各节点执行缓存更新操作,在不需要对服务器端进行额外开发和繁琐配置的情况下,仅需要在缓存节点安装本地缓存同步装置,即可实现不同缓存节点间本地缓存的同步,节省了开发成本,提升了开发效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一的缓存同步装置结构示意图之一;
图2是本申请实施例一应用的缓存同步***结构示意图;
图3是应用本申请实施例一应用***架构示意图;
图4本申请实施例一的缓存同步装置结构示意图之二;
图5本申请实施例一的缓存同步装置应用***具体结构示意图;
图6是本申请实施例二的缓存同步方法流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
本申请实施例公开的一种缓存同步装置,如图1所示,所述装置包括:缓存操作接口模块110、缓存注册管理模块120、缓存操作管理模块130和缓存更新模块140。
通常,目标应用会包括多个服务器,本申请实施例中的缓存同步装置可以以组件的形式设置在目标应用的每个服务器上。服务器处理目标应用的请求,并在本地缓存目标应用的部分或全部数据。所述缓存同步装置提供封装的本地缓存操作接口供目标应用调用。所述缓存同步装置进一步根据目标应用调用的封装的本地缓存操作接口,执行本地缓存的注册、查询、更新、删除等操作。在执行上述操作的过程中,当本地缓存发生了变化,则所述缓存同步装置通过网络通信将本地缓存发生变化的信息发送到该目标应用的其他服务器上的缓存同步装置,使得该目标应用的其他服务器通过设置在所述其他服务器上的缓存同步装置实现所述其他服务器的本地缓存的同步更新。
如图2所示,在本申请的一些实施例中,所述缓存同步装置应用于如图2所示的缓存同步***中,所述缓存同步***包括:目标应用的多个节点210、节点注册中心220和设置在每个所述节点210上的、本申请实施例中所述的缓存同步装置230,其中,所述节点210包括本地缓存2101,所述目标应用所在节点210通过设置在该节点上的所述缓存同步装置230执行本地缓存更新;所述节点注册中心220用于根据所述节点的注册信息,向所述缓存同步装置发送所述目标应用的节点变化信息。
下面以一个上述缓存同步装置和缓存同步***的具体应用架构详细说明缓存同步***和缓存同步装置的实施方案。如图3所示的应用架构,目标应用包括3个服务器(即节点),分别表示为服务器310、服务器320和服务器330为例,结合应用***架构对每个模块的具体实施方式分别进行说明。如图3所示,服务器310、服务器320和服务器330上分别设置有所述缓存同步装置,将服务器310上设置的缓存同步装置表示为缓存同步装置3101、将服务器320上设置的缓存同步装置表示为缓存同步装置3201、将服务器330上设置的缓存同步装置表示为缓存同步装置3301。服务器310、320和330上同时安装有目标应用的不同服务端(即目标应用的服务器端软件)3102、3202和3302。目标应用的某个服务器在处理目标应用的数据时,通常从数据库340中读取数据,并缓存到服务器310至330本地缓存中。节点注册中心350用于根据缓存同步装置3101、3201和3301发送的节点(如图3中的服务器310至330)的注册信息完成节点注册,并向所述缓存同步装置3101、3201和3301发送所述目标应用的节点(即服务器310至330)的变化信息。
在本申请的一些实施例中,可以采用ZooKeeper(一个开源的分布式协调服务)作为节点注册中心,即缓存同步***中用作服务器(即节点)IP和端口的注册中心,当缓存同步***内的服务器有上/下线变更时,可以通知所有其他节点的缓存同步装置。
具体应用过程中,以目标应用在服务器310上的服务端举例,目标应用从服务器310上申请本地缓存,然后,将本地缓存注册到服务器310上的缓存同步装置3101中。在应用开始使用该本地缓存时,所述缓存同步装置3101首先将服务器310的IP地址和端口注册到节点注册中心350。同理,目标应用的其他服务器320和330也会注册到节点注册中心350。应用***运行过程中,当节点注册中心350检测到目标应用的某个服务器发生变化时(如服务器330取消注册,或新增了该目标应用的其他服务器注册信息),会将目标应用的服务器信息发送给所述缓存同步装置3101至所述缓存同步装置3103。
进一步的,所述缓存操作接口模块110,用于响应目标应用注册本地缓存的缓存注册操作,根据所述缓存注册操作生成缓存注册信息,并将所述缓存注册信息转发至所述缓存注册管理模块120,其中,所述缓存注册信息包括:所述缓存注册操作所注册的本地缓存所在节点的IP地址和端口。
所述缓存注册管理模块120,用于根据接收到的所述缓存注册信息,将所述IP地址和端口注册到所述预设节点注册中心(如图3中的350)。
所述缓存操作接口模块110,用于响应目标应用更新本地缓存的接口调用,将所述更新本地缓存的接口调用发送至所述缓存操作管理模块130。
当目标应用需要修改缓存在服务器210上的数据时,目标应用会调用服务器210上的缓存同步装置2101提供的封装接口,例如调用写本地缓存的接口。所述缓存操作接口模块110响应于目标应用写本地缓存的接口调用,将所述写本地缓存的接口调用发送至所述缓存操作管理模块130进一步执行本地缓存的写操作。
所述缓存操作管理模块130,用于将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存。
具体实施时,缓存操作管理模块130对多种缓存进行封装,提供封装接口,用于实现缓存操作,缓存操作管理模块130提供的封装接口包括:注册、查询、更新、删除等。这些封装接口通过泛型和反射技术兼容了多种本地缓存,如HashMap、GuavaCache、Caffeine、EhCache等缓存(一些开源缓存)。
本申请的一些实施例中,所述将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存的步骤,包括:根据接收到的更新本地缓存的接口调用确定缓存种类;通过反射技术将所述更新本地缓存的接口调用映射为所述缓存种类的相应缓存操作接口调用;调用所述缓存操作接口更新所述本地缓存。
通常,目标应用在使用本地缓存之前,需要调用所述缓存操作管理模块130提供的封装接口向所述缓存操作管理模块130注册本地缓存。在向所述缓存操作管理模块130注册本地缓存时,需要提供本地缓存种类(如GuavaCache)、大小、有效时间等信息。所述缓存操作管理模块130将根据本地缓存的上述注册信息为该本地缓存创建一个缓存名称,并管理创建的缓存名称和缓存类型、大小、有效时间等缓存信息的对应关系。例如,目标应用通过调用本地缓存装置的缓存注册接口将创建的guava cache实例注册到本地缓存装置中,此时,缓存操作管理模块130将为注册的本地缓存指定一个缓存名称cacheName,并将所述guava cache实例添加到缓存操作管理模块130的管理列表中。
在目标应用调用所述缓存操作管理模块130提供的查询、更新等接口时,需要输入缓存名称,所述缓存操作管理模块130将根据缓存名称确定目标应用操作的缓存类型(如GuavaCache)。所述缓存操作管理模块130通过接口调用时传入的缓存名称和预先创建的缓存名称和缓存类型的对应关系可以确定所述更新本地缓存的接口调用操作的缓存类型。然后,将所述更新本地缓存的接口调用映射到该缓存类型的相应缓存操作接口。
进一步的,缓存操作管理模块130为每种类型的缓存基于反射机制设置了一套映射方法。缓存操作管理模块130通过反射技术将查询、更新、删除等封装接口的调用映射为所述缓存种类(如GuavaCache)的相应缓存操作接口(如缓存查询接口、缓存更新接口、缓存删除接口)调用。
之后,缓存操作管理模块130通过反射技术调用所述本地缓存的缓存操作接口,实现本地缓存操作(如写本地缓存)。
因为在对本地缓存执行写操作之后,目标应用缓存在服务器310上的数据会发生改变,因此,需要对服务器320和服务器330上缓存的数据进行同步更新。所述缓存操作接口模块110,还用于响应目标应用更新本地缓存的接口调用,构造本地缓存更新信息,并将所述本地缓存更新信息发送给所述缓存更新模块140。通常目标应用更新本地缓存的接口调用中包括缓存名称、缓存的key(即数据信息或地址信息)、变更类型(更新或删除),所述缓存操作接口模块110根据所述更新本地缓存的接口调用中包括的信息,构造本地缓存更新信息。所述本地缓存更新信息遵循TCP(Transmission Control Protocol传输控制协议)数据传输协议,同时包括缓存名称、缓存的key(即数据信息或地址信息)、变更类型(更新或删除)等信息。本地缓存的接口调用中通常包括缓存名称、操作类型、数据标识或缓存位置信息。在本申请的一些实施例中,可以根据本地缓存的接口调用中携带的上述信息构造一个本地缓存更新信息,将需要更新的缓存名称、位置信息或数据信息发送给服务器320和服务器330,用于进行相应位置的缓存数据更新。
所述缓存更新模块140,用于通过所述缓存注册管理模块120获取所述IP地址和端口,并通过所述IP地址和端口向所述目标应用的各节点广播本地缓存更新信息,以使得所述目标应用的各节点执行缓存更新操作。
其中,所述缓存注册管理模块120,用于通过预设节点注册中心获取所述目标应用对应的缓存节点列表(即目标应用包括的服务器列表),所述缓存节点列表中包括所述目标应用的不同服务端预先注册的本地缓存所在节点的IP地址和端口。具体到本实施例中,所述缓存注册管理模块120获取的缓存节点列表包括服务器310、服务器320和服务器330的IP地址和端口。
之后,所述缓存更新模块140将逐次通过服务器320和服务器330的IP地址和端口向服务器320和服务器330广播本地缓存更新信息,以使得所述服务器320和服务器330执行缓存更新操作。所述本地缓存更新信息包括缓存名称、更新的位置信息或数据信息。
在本申请的一些实施例中,如图4所示,所述缓存更新模块140进一步包括:消息广播子模块1401和消息发送子模块1402。
所述消息广播子模块1401,用于通过所述缓存注册管理模块120获取所述目标应用预先注册的本地缓存的节点的IP地址和端口;以及,从所述缓存操作接口模块110接收的所述本地缓存更新信息。
所述消息发送子模块1402,用于通过与所述IP地址和端口的TCP连接向对端目标应用预先注册的本地缓存的节点逐一发送所述本地缓存更新信息。其中,所述对端目标应用为与所述目标应用在不同节点上的同一应用,也可以认为是目标应用的不同服务端。具体实施时,所述消息发送子模块1402可以通过开源软件Netty的发送模块实现,将本地缓存更新信息等数据通过TCP连接发送到指定的IP地址和端口。
在本申请的一些实施例中,如图4所示,所述缓存更新模块140进一步还包括:消息接收子模块1403和消息处理子模块1404。
其中,所述消息接收子模块1403,用于通过TCP连接接收任意一个所述对端目标应用的本地缓存所在节点发送的所述本地缓存更新信息。例如,通过开源软件Netty的接收模块实现的消息接收子模块1403,消息接收子模块1403通过本服务器注册的端口上的TCP连接接收外部服务器(如服务器320和服务器330)发来的本地缓存更新信息。
所述消息处理子模块1404,用于对所述本地缓存更新信息进行解析,并将解析得到的更新本地缓存的接口调用发送至所述缓存操作管理模块130。具体的,所述消息处理子模块1404解析外部服务器发来的本地缓存更新信息,并进行解析,得到缓存操作的变更类型(如更新缓存、删除缓存)、缓存名称、key缓存的key(即数据信息或地址信息)等信息,并根据这些信息,将所述本地缓存更新信息转化为本地缓存同步装置(如服务器310上的缓存同步装置3101)对应的更新本地缓存的接口调用。然后,所述消息处理子模块1404将解析得到的更新本地缓存的接口调用发送至所述缓存操作管理模块130,由所述缓存操作管理模块130最终实现缓存更新。
在本申请的一些实施例中,如图4所示,所述缓存更新模块140进一步还包括:连接管理子模块1405,所述连接管理子模块1405用于管理目标应用的本地缓存所在节点与所述目标应用的对端节点之间的网络连接。具体应用中,所述目标应用的本地缓存所在节点通过自身的消息接收子模块(如服务器310)和对端目标应用所在节点(如服务器320和服务器320)的消息发送子模块长连接,所述目标应用的本地缓存所在节点(如服务器310)通过自身的消息发送子模块和对端目标应用所在节点(如服务器320和服务器320)的消息接收子模块长连接。例如,服务器310上的缓存同步装置3101中的消息接收子模块(如NettyServer)和服务器320上的缓存同步装置3201中的消息发送子模块(如NettyClient)长连接,可以使服务器310通过缓存同步装置3101及时接收到服务器320发送的本地缓存更新信息。
在本申请的另一些实施例中,所述缓存操作接口模块110,还用于响应目标应用查询本地缓存的接口调用,将所述查询本地缓存的接口调用发送至所述缓存操作管理模块130;所述缓存操作管理模块130,用于根据接收到的查询本地缓存的接口调用确定缓存种类,然后,通过反射技术将所述查询本地缓存的接口调用映射为所述缓存种类的相应缓存查询接口调用,并调用所述缓存查询接口查询所述本地缓存。即,所述缓存同步装置完全实现了现有技术中的缓存操作,并且,实现了不改变现有***,不增加开发在成本的情况下,有效实现不同节点之间的缓存同步。
为了便于读者理解本申请,下面以本地缓存为Guava Cache举例,结合图4所述同步缓存装置说明在图5所述的应用***中同步缓存装置的工作过程。所述缓存同步装置以本地缓存组件的形式安装在应用程序的各服务器。所述本地缓存组件包括:缓存操作接口模块(如Client)、缓存注册管理模块(如NodeWatcher)、缓存操作管理模块(例如CacheManager)、缓存更新模块,其中,缓存更新模块进一步包括:消息广播子模块(如BroadCaster)、消息发送子模块(如NettyClient)、消息接收子模块(如NettyServer)、消息处理子模块(如RequestHandler)和连接管理子模块(如ChannelManager)。
首先,应用***启动时,应用的各服务端将自定义的本地缓存注册到所述同步缓存装置中。
应用程序启动时,应用程序在各服务器(即缓存节点)的服务端将创建的guavacache实例注册到本地缓存组件中。例如,通过缓存操作接口模块(如Client)的方法CacheSyncClient.addLocalCache(cacheName,cache)将自定义的本地缓存注册到所述节点注册中心(如Zookeeper),其中,cacheName为本地缓存组件的缓存注册管理模块(如NodeWatcher)返回的缓存名称,cache为应用程序的服务端创建的缓存实例,包括:缓存类型、大小等信息。
然后,应用***启动本地缓存组件的缓存同步功能。例如,通过调用接口CacheSyncClient.start()启动本地缓存组件的缓存同步功能。本地缓存组件会通过缓存注册管理模块(例如表示为NodeWatcher)将应用程序所在的服务(即本地缓存所在节点)的IP地址和端口注册到预设的节点注册中心(如zookeeper)中。同时,NodeWatcher从ZooKeeper中获取本应用程序下其他服务器注册的IP地址和端口。
在应用程序运行过程中,应用程序可以通过所述本地缓存组件的缓存接口查询本地缓存。例如:通过接口CacheSyncClient.query(cacheName,key)查询本地缓存。这个过程会通过cacheName在缓存操作管理模块(例如CacheManager)中找到预先注册的guavacache缓存,然后通过泛型(即预先建立的封装接口和guava cache缓存自身接口的映射关系)执行guava cache自身的缓存查询方法,传入对应的Key值进行查询操作。
在应用程序运行过程中,应用程序还可以通过所述本地缓存组件的缓存接口修改或删除本地缓存,此时,本地缓存的数据会发生变化,需要将本地缓存的数据变化同步到该应用程序的其他本地缓存节点(即其他注册的服务器)。例如,应用程序通过接口CacheSyncClient.refreshCache(cacheName,key)刷新本地缓存。当应用程序的本地缓存组件感知到数据变化,会调用缓存操作接口模块提供的刷新方法,然后,缓存更新模块的消息广播子模块将构造构造广播消息(即构造本地缓存更新信息),并调用消息广播子模块(如BroadCaster)的广播接口;BroadCaster的广播接口会去NodeWatcher获取其他服务器的IP地址和端口,然后通过消息发送子模块(如NettyClient)逐一向每个服务器发送本地缓存更新信息。NettyClient与其他服务器交互时,会通过连接管理子模块(如ChannelManager)维护与其他服务器的网络连接。
进一的步的,当应用程序的某一台服务器通过消息接收子模块(如NettyServer)收到其他服务器发来的本地缓存更新信息时,会将消息转发给消息处理子模块(如RequestHandler),消息处理子模块会识别数据变化对应的具体缓存名称、类别和key等信息,然后从缓存操作管理模块CacheManager中找到对应的缓存执行本地刷新操作。
本申请实施例公开的缓存同步装置,通过在应用服务端设置所述同步缓存装置,所述同步缓存装置进一步包括:缓存操作接口模块、缓存注册管理模块、缓存操作管理模块和缓存更新模块,所述缓存操作接口模块,用于响应目标应用更新本地缓存的接口调用,将所述更新本地缓存的接口调用发送至所述缓存操作管理模块;所述缓存操作管理模块,用于将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存;所述缓存操作接口模块,还用于响应目标应用更新本地缓存的接口调用,构造本地缓存更新信息;所述缓存注册管理模块,用于通过预设节点注册中心获取所述目标应用对应的缓存节点列表,所述缓存节点列表中包括所述目标应用的不同服务端预先注册的本地缓存所在节点的IP地址和端口;所述缓存更新模块,用于通过所述缓存注册管理模块获取所述IP地址和端口,并通过所述IP地址和端口向所述目标应用的各节点广播所述本地缓存更新信息,以使得所述目标应用的各节点执行缓存更新操作,在不需要对服务器端进行额外开发和繁琐配置的情况下,仅需要在缓存节点安装本地缓存同步装置,即可实现不同缓存节点间本地缓存的同步,节省了开发成本,提升了开发效率。
另一方面,通过集群自动注册、服务器间长连接通信等技术,提供了单个应用内多个服务器之间自动同步功能,达到一点更新,多点实时同步的效果。通过对多种缓存应用封装了统一缓存操作接口,不同服务器可以使用不同的缓存应用,应用***搭建更灵活。
实施例二
本实施例公开的一种缓存同步方法,如图6所示,所述方法包括:步骤610至步骤650。本申请的缓存同步方法应用于如图4和图3所示的缓存同步装置和缓存同步***中。本实施例中,所述缓存同步装置以本地缓存组件的形式与目标应用安装在服务器上。
步骤610,响应目标应用注册本地缓存的缓存注册操作,将所述本地缓存所在节点的IP地址和端口注册到所述预设节点注册中心。
本申请的一些实施例中,所述响应目标应用更新本地缓存的接口调用的步骤之前,还包括:响应目标应用注册本地缓存的缓存注册操作,根据所述缓存注册操作生成缓存注册信息,其中,所述缓存注册信息包括:所述缓存注册操作注册的本地缓存所在节点的IP地址和端口;根据接收到的所述缓存注册信息,将所述IP地址和端口注册到所述预设节点注册中心。
具体实施时,首先应用***启动时,目标应用的各服务端将自定义的本地缓存注册到所述同步缓存装置中。例如,通过缓存操作接口模块将自定义的本地缓存所在服务器的IP地址和端口注册到所述节点注册中心。然后,应用***启动所述缓存同步装置的缓存同步功能。
完成本地缓存所在节点的注册之后,所述缓存同步装置可以获取所述目标应用下其他服务器的注册IP地址和端口,用于实现不同服务器之间的网络通信。
步骤620,响应目标应用更新本地缓存的接口调用,将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存。
在应用程序运行过程中,应用程序可以通过所述本地缓存组件的缓存接口修改或删除本地缓存。所述将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存的步骤,包括:根据接收到的更新本地缓存的接口调用确定缓存种类;通过反射技术将所述更新本地缓存的接口调用映射为所述缓存种类的相应缓存操作接口调用;调用所述缓存操作接口更新所述本地缓存。
具体实施时,缓存同步组件通过内置的缓存操作接口模块获取目标引用的缓存修改、删除等缓存更新相关的操作,之后,通过内置的缓存操作管理模块完成缓存应用的修改、删除等操作。
响应目标应用更新本地缓存的接口调用,将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存的具体实施方式参见实施例一中的相关说明,此处不再赘述。
步骤630,响应目标应用更新本地缓存的接口调用,构造本地缓存更新信息。
应用程序通过所述本地缓存组件的缓存接口修改或删除本地缓存之后,本地缓存的数据会发生变化,需要将本地缓存的数据变化同步到该目标应用的其他注册服务器。所述本地缓存组件通过内置的缓存操作接口模块构造本地缓存更新消息。所述缓存操作接口模块构造本地缓存更新消息的具体实施方式参见实施例一,本实施例不再赘述。
之后,所述缓存操作接口模块将构造的本地缓存更新消息发送至缓存更新模块。
步骤640,通过预设节点注册中心获取所述目标应用对应的缓存节点列表,所述缓存节点列表中包括所述目标应用的不同服务端预先注册的本地缓存所在节点的IP地址和端口。
所述缓存更新模块在接收到所述本地缓存更新消息之后,首先通过预设节点注册中心获取所述目标应用对应的缓存节点列表,所述缓存节点列表中包括所述目标应用的不同服务端预先注册的本地缓存所在节点的IP地址和端口。
步骤650,通过所述IP地址和端口向所述目标应用的各节点广播所述本地缓存更新信息,以使得所述目标应用的各节点执行缓存更新操作。
接下来,所述缓存更新模块将通过所述IP地址和端口向所述目标应用的各节点广播所述本地缓存更新信息。在本申请的一些实施例中,所述通过所述IP地址和端口向所述目标应用的各节点广播所述本地缓存更新信息的步骤,包括:通过与所述IP地址和端口的TCP连接向对端目标应用预先注册的本地缓存的节点逐一发送所述本地缓存更新信息。
控制所述缓存更新模块将通过所述IP地址和端口向所述目标应用的各节点广播所述本地缓存更新信息,以使得所述目标应用的各节点执行缓存更新操作的具体实施方式,参见实施例一中的相关描述,本实施例不再赘述。
在本申请的另一些实施例中,如图6所示,所述根据接收到的所述缓存注册信息,将所述IP地址和端口注册到所述预设节点注册中心的步骤之后,还包括:步骤660和步骤670。
步骤660,通过TCP连接接收任意一个所述对端目标应用的本地缓存所在节点发送的本地缓存更新信息。
步骤670,对所述对端目标应用的本地缓存所在节点发送的本地缓存更新信息进行解析,得到所述目标应用更新本地缓存的接口调用,跳转至步骤620。
本申请具体实施时,所述缓存同步方法应用的缓存同步***中目标应用包括多个服务器,每个服务器上的本地缓存发生更新之后,都会向其他服务器发送本地缓存更新消息,当某个服务器接收到本地缓存更新消息之后,会对消息内容进行解析,并根据解析结果执行本地缓存的更新。因此,每个服务器上的本地缓存组件通过内置的缓存更新模块实时接收对端服务器发送的本地缓存更新信息。
通过TCP连接接收任意一个所述对端目标应用的本地缓存所在节点发送的本地缓存更新信息,以及对所述对端目标应用的本地缓存所在节点发送的本地缓存更新信息进行解析,得到所述目标应用更新本地缓存的接口调用的具体实施方式参见实施例一中对缓存更新模块的具体描述,本实施例不再赘述。
在解析得到所述目标应用更新本地缓存的接口调用之后,将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存。
本申请的又一些实施例中,所述方法还包括:响应目标应用查询本地缓存的接口调用,根据接收到的查询本地缓存的接口调用确定缓存种类;通过反射技术将所述查询本地缓存的接口调用映射为所述缓存种类的相应缓存查询接口调用,并调用所述缓存查询接口查询所述本地缓存。
在目标应用运行过程中,所述目标应用可以通过所述本地缓存组件的缓存接口查询本地缓存。在查询本地缓存的过程中,所述本地缓存组件在缓存操作管理模块中找到预先注册的本地缓存,然后通过反射技术将所述查询本地缓存的接口调用映射为所述缓存应用自身接口,执行相应缓存应用自身的缓存查询方法,传入对应的参数进行查询操作。
本申请实施例公开的缓存同步装置,用于实现本申请实施例二中所述的缓存同步方法的各步骤,方法的各步骤的具体实施方式参见相应模块,此处不再赘述。
本申请实施例公开的缓存同步方法,通过在目标应用启动之后,将目标应用申请的本地缓存节点注册到预设节点注册中心进行管理,然后,在目标应用运行过程中,响应目标应用更新本地缓存的接口调用,将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存;响应目标应用更新本地缓存的接口调用,构造本地缓存更新信息;通过预设节点注册中心获取所述目标应用对应的缓存节点列表,所述缓存节点列表中包括所述目标应用的不同服务端预先注册的本地缓存所在节点的IP地址和端口;通过所述IP地址和端口向所述目标应用的各节点广播所述本地缓存更新信息,以使得所述目标应用的各节点执行缓存更新操作,在不需要对服务器端进行额外开发和繁琐配置的情况下,仅需要在缓存节点安装本地缓存同步装置,即可实现不同缓存节点间本地缓存的同步,节省了开发成本,提升了开发效率。
另一方面,通过集群自动注册、服务器间长连接通信等技术,提供了单个应用内多个服务器之间自动同步功能,达到一点更新,多点实时同步的效果。通过对多种缓存应用封装了统一缓存操作接口,不同服务器可以使用不同的缓存应用,应用***搭建更灵活。
相应的,本申请还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例二所述的缓存同步方法。所述电子设备可以为PC机、移动终端、个人数字助理、平板电脑等。
本申请还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例二所述的缓存同步方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请提供的一种缓存同步方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
Claims (14)
1.一种缓存同步装置,其特征在于,包括:缓存操作接口模块、缓存注册管理模块、缓存操作管理模块和缓存更新模块,其中,
所述缓存操作接口模块,用于响应目标应用更新本地缓存的接口调用,将所述更新本地缓存的接口调用发送至所述缓存操作管理模块;
所述缓存操作管理模块,用于将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存;
所述缓存操作接口模块,还用于响应目标应用更新本地缓存的接口调用,构造本地缓存更新信息;
所述缓存注册管理模块,用于通过预设节点注册中心获取所述目标应用对应的缓存节点列表,所述缓存节点列表中包括所述目标应用的不同服务端预先注册的本地缓存所在节点的IP地址和端口;
所述缓存更新模块,用于通过所述缓存注册管理模块获取所述IP地址和端口,并通过所述IP地址和端口向所述目标应用的各节点广播所述本地缓存更新信息,以使得所述目标应用的各节点执行缓存更新操作。
2.根据权利要求1所述的装置,其特征在于,
所述缓存操作接口模块,还用于响应目标应用注册本地缓存的缓存注册操作,根据所述缓存注册操作生成缓存注册信息,并将所述缓存注册信息转发至所述缓存注册管理模块,其中,所述缓存注册信息包括:所述缓存注册操作注册的本地缓存所在节点的IP地址和端口;
所述缓存注册管理模块,用于根据接收到的所述缓存注册信息,将所述IP地址和端口注册到所述预设节点注册中心。
3.根据权利要求2所述的装置,其特征在于,所述缓存更新模块进一步包括:
消息广播子模块,用于通过所述缓存注册管理模块获取所述目标应用预先注册的本地缓存的节点的IP地址和端口;以及,从所述缓存操作接口模块接收所述本地缓存更新信息;
消息发送子模块,用于通过与所述IP地址和端口的TCP连接向对端目标应用预先注册的本地缓存的节点逐一发送所述本地缓存更新信息。
4.根据权利要求3所述的装置,其特征在于,所述缓存更新模块进一步包括:
消息接收子模块,用于通过TCP连接接收任意一个所述对端目标应用的本地缓存所在节点发送的所述本地缓存更新信息;
消息处理子模块,用于对所述本地缓存更新信息进行解析,并将解析得到的更新本地缓存的接口调用发送至所述缓存操作管理模块。
5.根据权利要求4所述的装置,其特征在于,所述目标应用的本地缓存所在节点通过自身的消息接收子模块和对端目标应用的消息发送子模块长连接,所述目标应用的本地缓存所在节点通过自身的消息发送子模块和多个对端目标应用的消息接收子模块长连接。
6.根据权利要求1至5任一项所述的装置,其特征在于,所述将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存的步骤,包括:
根据接收到的更新本地缓存的接口调用确定缓存种类;
通过反射技术将所述更新本地缓存的接口调用映射为所述缓存种类的相应缓存操作接口调用;
调用所述缓存操作接口更新所述本地缓存。
7.一种缓存同步方法,其特征在于,包括:
响应目标应用更新本地缓存的接口调用,将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存;
响应目标应用更新本地缓存的接口调用,构造本地缓存更新信息;
通过预设节点注册中心获取所述目标应用对应的缓存节点列表,所述缓存节点列表中包括所述目标应用的不同服务端预先注册的本地缓存所在节点的IP地址和端口;
通过所述IP地址和端口向所述目标应用的各节点广播所述本地缓存更新信息,以使得所述目标应用的各节点执行缓存更新操作。
8.根据权利要求7所述的方法,其特征在于,所述响应目标应用更新本地缓存的接口调用的步骤之前,还包括:
响应目标应用注册本地缓存的缓存注册操作,根据所述缓存注册操作生成缓存注册信息,其中,所述缓存注册信息包括:所述缓存注册操作注册的本地缓存所在节点的IP地址和端口;
根据接收到的所述缓存注册信息,将所述IP地址和端口注册到所述预设节点注册中心。
9.根据权利要求8所述的方法,其特征在于,所述通过所述IP地址和端口向所述目标应用的各节点广播所述本地缓存更新信息的步骤,包括:
通过与所述IP地址和端口的TCP连接向对端目标应用预先注册的本地缓存的节点逐一发送所述本地缓存更新信息。
10.根据权利要求9所述的方法,其特征在于,所述根据接收到的所述缓存注册信息,将所述IP地址和端口注册到所述预设节点注册中心的步骤之后,还包括:
通过TCP连接接收任意一个所述对端目标应用的本地缓存所在节点发送的本地缓存更新信息;
对所述对端目标应用的本地缓存所在节点发送的本地缓存更新信息进行解析,得到所述目标应用更新本地缓存的接口调用,跳转至所述响应目标应用更新本地缓存的接口调用,将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存的步骤。
11.根据权利要求7至10任一项所述的方法,其特征在于,所述将所述更新本地缓存的接口调用映射为预先封装的缓存操作接口,并调用所述缓存操作接口更新所述本地缓存的步骤,包括:
根据接收到的更新本地缓存的接口调用确定缓存种类;
通过反射技术将所述更新本地缓存的接口调用映射为所述缓存种类的相应缓存操作接口调用;
调用所述缓存操作接口更新所述本地缓存。
12.一种缓存同步***,其特征在于,包括:目标应用的多个节点、节点注册中心和设置在每个所述节点上的、如权利要求1至6任一项所述的缓存同步装置,其中,
所述节点包括本地缓存,所述目标应用所在节点通过设置在该节点上的所述缓存同步装置执行本地缓存更新;
所述节点注册中心用于根据所述节点的注册信息,向所述缓存同步装置发送所述目标应用的节点变化信息。
13.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7至11任意一项所述的缓存同步方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求7至11任意一项所述的缓存同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910557298.9A CN110413418B (zh) | 2019-06-25 | 2019-06-25 | 缓存同步装置及方法,缓存同步***、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910557298.9A CN110413418B (zh) | 2019-06-25 | 2019-06-25 | 缓存同步装置及方法,缓存同步***、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413418A true CN110413418A (zh) | 2019-11-05 |
CN110413418B CN110413418B (zh) | 2022-04-05 |
Family
ID=68358225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910557298.9A Active CN110413418B (zh) | 2019-06-25 | 2019-06-25 | 缓存同步装置及方法,缓存同步***、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413418B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159233A (zh) * | 2019-12-18 | 2020-05-15 | 金蝶软件(中国)有限公司 | 分布式缓存方法、***、计算机设备以及存储介质 |
CN111522605A (zh) * | 2020-04-16 | 2020-08-11 | 艾普阳科技(深圳)有限公司 | 一种本地过程调用方法、装置、设备及介质 |
CN111797119A (zh) * | 2020-05-19 | 2020-10-20 | 武汉乐程软工科技有限公司 | 一种缓存装置、***及缓存方法 |
CN111866170A (zh) * | 2020-07-30 | 2020-10-30 | 南京甄视智能科技有限公司 | Iot集群内发送同步消息的方法 |
CN111988427A (zh) * | 2020-08-31 | 2020-11-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种基于分布式的本地缓存处理方法及*** |
CN112559632A (zh) * | 2020-12-15 | 2021-03-26 | 北京百度网讯科技有限公司 | 分布式图数据库的状态同步方法、装置、电子设备及介质 |
CN118093212A (zh) * | 2024-04-23 | 2024-05-28 | 北京控达科技有限公司 | 多用户任务访问全局变量的同步方法及相关设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6477543B1 (en) * | 1998-10-23 | 2002-11-05 | International Business Machines Corporation | Method, apparatus and program storage device for a client and adaptive synchronization and transformation server |
US20060271606A1 (en) * | 2005-05-25 | 2006-11-30 | Tewksbary David E | Version-controlled cached data store |
US20100293332A1 (en) * | 2009-05-13 | 2010-11-18 | Microsoft Corporation | Cache enumeration and indexing |
CN105515872A (zh) * | 2015-12-23 | 2016-04-20 | 北京奇虎科技有限公司 | 配置信息的更新方法、装置及*** |
CN106790705A (zh) * | 2017-02-27 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种分布式应用本地缓存的实现***及实现方法 |
CN107291750A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种数据迁移方法和装置 |
CN107948318A (zh) * | 2017-12-27 | 2018-04-20 | 世纪龙信息网络有限责任公司 | 多节点间的缓存同步方法和*** |
CN108897868A (zh) * | 2018-06-29 | 2018-11-27 | 北京奇虎科技有限公司 | 基于触发器的缓存同步方法及装置、计算设备及存储介质 |
CN108920670A (zh) * | 2018-07-06 | 2018-11-30 | 深圳市小牛在线互联网信息咨询有限公司 | 缓存同步方法、装置、***及存储介质 |
CN109213792A (zh) * | 2018-07-06 | 2019-01-15 | 武汉斗鱼网络科技有限公司 | 数据处理的方法、服务端、客户端、装置及可读存储介质 |
CN109582730A (zh) * | 2018-10-11 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 缓存同步方法、装置、电子设备及计算机可读存储介质 |
-
2019
- 2019-06-25 CN CN201910557298.9A patent/CN110413418B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6477543B1 (en) * | 1998-10-23 | 2002-11-05 | International Business Machines Corporation | Method, apparatus and program storage device for a client and adaptive synchronization and transformation server |
US20060271606A1 (en) * | 2005-05-25 | 2006-11-30 | Tewksbary David E | Version-controlled cached data store |
US20100293332A1 (en) * | 2009-05-13 | 2010-11-18 | Microsoft Corporation | Cache enumeration and indexing |
CN105515872A (zh) * | 2015-12-23 | 2016-04-20 | 北京奇虎科技有限公司 | 配置信息的更新方法、装置及*** |
CN107291750A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种数据迁移方法和装置 |
CN106790705A (zh) * | 2017-02-27 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种分布式应用本地缓存的实现***及实现方法 |
CN107948318A (zh) * | 2017-12-27 | 2018-04-20 | 世纪龙信息网络有限责任公司 | 多节点间的缓存同步方法和*** |
CN108897868A (zh) * | 2018-06-29 | 2018-11-27 | 北京奇虎科技有限公司 | 基于触发器的缓存同步方法及装置、计算设备及存储介质 |
CN108920670A (zh) * | 2018-07-06 | 2018-11-30 | 深圳市小牛在线互联网信息咨询有限公司 | 缓存同步方法、装置、***及存储介质 |
CN109213792A (zh) * | 2018-07-06 | 2019-01-15 | 武汉斗鱼网络科技有限公司 | 数据处理的方法、服务端、客户端、装置及可读存储介质 |
CN109582730A (zh) * | 2018-10-11 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 缓存同步方法、装置、电子设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
曾志常等: "J2EE集群的持久对象缓存同步的研究", 《计算机技术与发展》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159233A (zh) * | 2019-12-18 | 2020-05-15 | 金蝶软件(中国)有限公司 | 分布式缓存方法、***、计算机设备以及存储介质 |
CN111159233B (zh) * | 2019-12-18 | 2024-03-08 | 金蝶软件(中国)有限公司 | 分布式缓存方法、***、计算机设备以及存储介质 |
CN111522605A (zh) * | 2020-04-16 | 2020-08-11 | 艾普阳科技(深圳)有限公司 | 一种本地过程调用方法、装置、设备及介质 |
CN111522605B (zh) * | 2020-04-16 | 2022-07-29 | 艾普阳科技(深圳)有限公司 | 一种本地过程调用方法、装置、设备及介质 |
CN111797119A (zh) * | 2020-05-19 | 2020-10-20 | 武汉乐程软工科技有限公司 | 一种缓存装置、***及缓存方法 |
CN111797119B (zh) * | 2020-05-19 | 2024-01-30 | 武汉乐程软工科技有限公司 | 一种缓存装置、***及缓存方法 |
CN111866170A (zh) * | 2020-07-30 | 2020-10-30 | 南京甄视智能科技有限公司 | Iot集群内发送同步消息的方法 |
CN111866170B (zh) * | 2020-07-30 | 2023-08-08 | 小视科技(江苏)股份有限公司 | Iot集群内发送同步消息的方法 |
CN111988427A (zh) * | 2020-08-31 | 2020-11-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种基于分布式的本地缓存处理方法及*** |
CN112559632A (zh) * | 2020-12-15 | 2021-03-26 | 北京百度网讯科技有限公司 | 分布式图数据库的状态同步方法、装置、电子设备及介质 |
CN118093212A (zh) * | 2024-04-23 | 2024-05-28 | 北京控达科技有限公司 | 多用户任务访问全局变量的同步方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110413418B (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413418A (zh) | 缓存同步装置及方法,缓存同步***、电子设备 | |
CN106453288B (zh) | 一种支持异步模式的分布式微服务框架***及其实现方法 | |
US8112537B2 (en) | Trickle sync protocol | |
WO2018153346A1 (zh) | 一种网络切片的选择方法及装置 | |
EP1940107A1 (en) | A method for processing data synchronization and client terminal, server and data synchronization system thereof | |
CN112019369A (zh) | 一种微服务框架下动态配置管理方法及*** | |
CN111340470B (zh) | 区块链交易处理方法、节点及合约容器 | |
US20100330971A1 (en) | System and method for providing a production upgrade of components within a multiprotocol gateway | |
EP3780493A1 (en) | Subscription processing method, network node, and user data repository | |
CN113973129B (zh) | 一种支持多种注册中心微服务的网关 | |
CN110601981A (zh) | 服务路由方法、服务提供方云域及服务调用方云域 | |
CN112350873B (zh) | 应用服务信息处理方法、应用服务调用方法、装置及*** | |
CN104320405B (zh) | 一种适用于星型卫星网络的上网优化方法 | |
EP4340333A1 (en) | Communication protocol conversion method, and device, system, and gateway device | |
CN112328413B (zh) | 应用服务的调用方法、装置及*** | |
US20210329098A1 (en) | Methods of operating service instance sets and/or set restoration storage resources and related network nodes | |
US20170123829A1 (en) | Method And System To Dynamically Instantiate Virtual Repository For Any Services | |
CN102740466B (zh) | 物联网中对资源进行操作的方法及装置 | |
CN101925158A (zh) | 号码详情的获取***及方法 | |
CN114448686B (zh) | 一种基于微服务的跨网络通信装置与方法 | |
US20090198821A1 (en) | Method, system and network entity for negotiating the session description protocol version and obtaining the session description protocol version information | |
CN114039930B (zh) | 数据包处理方法及*** | |
CN110267077A (zh) | 离线缓存方法、装置、终端及可读存储介质 | |
CN114840329A (zh) | 一种基于区块链的云原生混合集成方法 | |
CN110413677A (zh) | 一种支持并发应用的分布式数据同步方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |