CN114328618B - 一种缓存数据同步方法、装置、设备及存储介质 - Google Patents
一种缓存数据同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114328618B CN114328618B CN202111445506.XA CN202111445506A CN114328618B CN 114328618 B CN114328618 B CN 114328618B CN 202111445506 A CN202111445506 A CN 202111445506A CN 114328618 B CN114328618 B CN 114328618B
- Authority
- CN
- China
- Prior art keywords
- data
- cache data
- server
- file
- target cache
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004590 computer program Methods 0.000 claims description 15
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000002688 persistence Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种缓存数据同步方法、装置、设备及存储介质,应用于分布式消息中间件***,该方法包括:获取远程字典服务集群的主服务器中的目标缓存数据;所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据;通过分布式消息中间件***的服务端将目标缓存数据广播至分布式消息中间件***的各客户端;控制分布式消息中间件***的每个客户端将各自获取到的目标缓存数据分别传输至相应的从服务器,以便每台所述从服务器将各自获取到的目标缓存数据保存至各自的本地缓存空间。通过本申请的技术方案,可以减少应用服务器和主服务器压力,实现缓存数据的实时同步,并保证了数据的一致性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种缓存数据同步方法、装置、设备及介质。
背景技术
为提高应用***中***的访问速度,往往在应用层面加入缓存机制,也就是将查询的数据放在内存中,Redis(Remote Dictionary Server,远程字典服务)是对缓存数据管理的重要内存数据库。在多服务集群模式下的数据缓存的管理既要保证数据的一致性,又要保证数据的实时性,及时可靠是对缓存同步的一个基本要求。现有的远程字典服务中缓存数据的同步方式可以分为以下几种:
(1)如图1所示,应用服务器连接多个Redis服务器,多个Redis服务器分别对应多个客户端,实现缓存数据的同步,这种方式的缺点是:应用服务器需要同步连接多个Redis服务,也即应用服务器的压力增加。
(2)如图2所示,采用Redis备份机制,实现一对多数据同步,针对一个主Redis服务器,其他从Redis服务器通过同步主服务器缓存数据,实现缓存数据的同步,这种方式的缺点是:主服务器在更新缓存的时候,还需要处理从Redis服务器的数据同步的请求,也即主Redis服务器的压力增大。
(3)如图3所示,加入多个主Redis服务器,此时同步到从Redis服务器的压力减小,但是不能保证各主Redis服务器缓存数据的一致性。
因此,在进行缓存数据同步时,减轻应用服务器和主服务器的压力,并实现缓存数据一致性是本领域亟待解决的问题
发明内容
有鉴于此,本发明的目的在于提供一种缓存数据同步方法、装置、设备及介质,能够解决一个主服务器连接多个从服务器时,主服务器压力大的问题,并且保证缓存数据的一致性,其具体方案如下:
第一方面,本申请公开了一种缓存数据同步方法,应用于分布式消息中间件***,包括:
获取远程字典服务集群的主服务器中的目标缓存数据;所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据;
通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端;不同的所述客户端分别对应于所述远程字典服务集群中不同的从服务器;
控制所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间。
可选的,所述获取远程字典服务集群的主服务器中的目标缓存数据,包括:
读取远程字典服务集群的主服务器中的缓存数据文件,并通过数据文件转换器对读取到的所述缓存数据文件进行文件转换处理,以得到所述目标缓存数据。
可选的,所述读取远程字典服务集群的主服务器中的缓存数据文件,包括:
读取远程字典服务集群的主服务器中的RDB文件,并在读取到所述RDB文件后读取所述主服务器中的AOF文件。
可选的,所述读取远程字典服务集群的主服务器中的RDB文件,并在读取到所述RDB文件后读取所述主服务器中的AOF文件,包括:
基于预设时间周期,定期读取远程字典服务集群的主服务器中的RDB文件,并在读取到所述RDB文件后读取所述主服务器中的AOF文件。
可选的,所述通过数据文件转换器对读取到的所述缓存数据文件进行文件转换处理,以得到所述目标缓存数据,包括:
通过所述数据文件转换器,对读取到的所述RDB文件和所述AOF文件分别进行解析得到相应的第一解析后数据和第二解析后数据,并以键值对作为数据记录方式对所述第一解析后数据和所述第二解析后数据进行重新封装,以得到所述目标缓存数据。
可选的,所述缓存数据同步方法,还包括:
在读取所述主服务器中的AOF文件之后,记录相应的AOF文件的读取位置。
可选的,所述通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端之前,还包括:
通过所述分布式消息中间件***的服务端为所述目标缓存数据设置一个消息主题,并为所述消息主题配置一个消息队列,然后将所述目标缓存数据以消息的形式保存至所述消息队列;
相应的,所述通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端,包括:
通过所述分布式消息中间件***的服务端,获取每个客户端针对所述消息主题的订阅请求,然后将所述消息队列中保存的所述目标缓存数据广播至所述分布式消息中间件***的各客户端。
第二方面,本申请公开了一种缓存数据同步装置,应用于分布式消息中间件***,包括:
数据获取模块,用于获取远程字典服务集群的主服务器中的目标缓存数据;所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据;
数据广播模块,用于通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端;不同的所述客户端分别对应于所述远程字典服务集群中不同的从服务器;
数据发送模块,用于控制所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的缓存数据同步方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的缓存数据同步方法。
可见,本申请提出一种缓存数据同步方法,包括:获取远程字典服务集群的主服务器中的目标缓存数据;所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据;通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端;不同的所述客户端分别对应于所述远程字典服务集群中不同的从服务器;控制所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间,如此一来,本申请中的应用服务器只连接一个主服务器,因此减轻了应用服务器的压力。此外,本申请在主从服务器之间加入了分布式消息中间件***,并利用分布式消息中间件***来处理从服务器的数据同步请求,从而减轻了主服务器的压力。最后,具有广播发送的机制并且只有一个主服务器实现了缓存数据的实时同步,保证了从服务器上的数据的一致性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为第一种现有的缓存数据同步方法示意图;
图2为第二种现有的缓存数据同步方法示意图;
图3为第三种现有的缓存数据同步方法示意图;
图4为本申请公开的一种缓存数据同步方法流程图;
图5为本申请公开的一种具体的缓存数据同步方法流程图;
图6为本申请公开的一种具体的缓存数据同步方法结构示意图;
图7为本申请公开的一种缓存数据同步装置结构示意图;
图8为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在进行缓存数据同步时,现有技术面临应用服务器和主服务器的压力大,并且不能保证缓存数据一致性的问题。为此,本申请实施例提出一种缓存数据同步方案,能够减轻应用服务器和主服务器的压力,并实现缓存数据一致性。
本申请实施例公开了一种缓存数据同步方法,参见图4所示,该方法包括:
步骤S11:获取远程字典服务集群的主服务器中的目标缓存数据;所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据。
本实施中的远程字典服务(Redis),是一个完全开源的、遵守BSD(BerkeleySoftware Distribution,伯克利软件发行版)协议并且高性能的键值对(Key-Value)数据库,用来存储缓存数据。需要指出的是,应用层面会进行数据的更新,得到缓存数据,将缓存数据传输至远程字典服务集群的主服务器中,远程字典服务器能够将内存中的缓存持久化到磁盘上,进行持久化保存。所以分布式消息中间件***在进行缓存数据同步时,首先需要获取远程字典服务集群的主服务器中的目标缓存数据,可以理解的是,获取到的目标缓存数据是会根据实际场景而产生变更的,所以,所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据。
具体的,在远程字典服务器进行持久化保存的过程中,首先需要在远程字典服务集群的主服务器中配置文件,利用redis.conf进行配置,开启远程字典服务的持久化功能,其格式如下:
RDB持久化配置:
save 900 1
save 300 10
save 60 10000;
AOF持久化配置:
appendfsync always#每次有数据修改发生时都会写入AOF文件。
需要指出的是,在分布式消息中间件***中加入了远程字典服务数据转换器,因为远程字典服务器保存的数据文件有两种方式:一种是RDB(Redis Database)文件,定时将缓存数据导出到RDB文件中;另一种是AOF(Append Only File)文件,将远程字典服务的操作日志以追加的方式写入文件;所以在获取远程字典服务集群的主服务器中的目标缓存数据的过程中,首先要利用分布式消息中间件***中的远程字典服务数据转换器对读取到的远程字典服务集群的主服务器中的缓存数据文件进行文件转换处理,数据转换器将RDB文件或者AOF文件进行数据解析,得到相应的第一解析后数据和第二解析后数据,然后以键值对(key-value)作为数据记录方式对第一解析后数据和第二解析后数据进行重新封装,以得到目标缓存数据。
本申请实施例中,对于分布式消息中间件***中的远程字典服务数据转换器会进行定时配置,这样数据转换器则会基于预设时间周期,定期读取远程字典服务集群的主服务器中最新的RDB文件,并在读取到RDB文件后读取主服务器中的AOF文件。可以理解的是,在进行AOF文件持久化配置的时候,一旦缓存区的内容发生了变化,就将其写入到AOF文件中,当读取到RDB文件后实现了远程字典服务的全量同步,在应用层面缓存有更新的时候,再读取主服务器中的AOF文件,实现了远程字典服务的增量同步,可以进一步提高传输数据的速度和数据同步的效率。需要指出的是,在读取所述主服务器中的AOF文件之后,要随时记录相应的AOF文件的读取位置。
步骤S12:通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端;不同的所述客户端分别对应于所述远程字典服务集群中不同的从服务器。
本实施例中,在Redis主服务器以及从服务器之间加入了分布式消息中间件以进行数据广播。具体的,在获取到所述目标缓存数据后,将所述目标缓存数据发送至分布式消息中间件***的服务端,然后由所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端,并且只有注册在所述分布式消息中间件服务端的所述分布式消息中间件***的各客户端才能够接收到所述目标缓存数据。本申请中,通过广播发送的方式实现了从服务器接收数据的一致性。需要注意的是,为了将所述目标缓存数据发送至分布式消息中间件***的服务端,在数据转换器中部署了一个客户端。
本实施例中,为所述主服务器建立了多个从服务器节点,并且设定好不同的所述客户端分别对应于所述远程字典服务集群中不同的从服务器,也即,每个所述从服务器节点对应一个所述分布式消息中间件***的客户端。
步骤S13:控制所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间。
本实施例中,由于不同的所述客户端分别对应于所述远程字典服务集群中不同的从服务器,因此所述分布式消息中间件***控制所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间。
可见,本申请提出一种缓存数据同步方法,包括:获取远程字典服务集群的主服务器中的目标缓存数据;所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据;通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端;不同的所述客户端分别对应于所述远程字典服务集群中不同的从服务器;控制所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间,如此一来,本申请中的应用服务器只连接一个主服务器,因此减轻了应用服务器的压力。此外,本申请在主从服务器之间加入了分布式消息中间件***,并利用分布式消息中间件***来处理从服务器的数据同步请求,从而减轻了主服务器的压力。最后,具有广播发送的机制并且只有一个主服务器实现了缓存数据的实时同步,保证了从服务器上的数据的一致性。
本申请实施例公开了一种具体的缓存数据同步方法,参见图5所示,该方法包括:
步骤S21:获取远程字典服务集群的主服务器中的目标缓存数据;所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据。
其中,关于上述步骤S21更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S22:通过所述分布式消息中间件***的服务端为所述目标缓存数据设置一个消息主题,并为所述消息主题配置一个消息队列,然后将所述目标缓存数据以消息的形式保存至所述消息队列。
本申请实施例中,在获取到远程字典服务集群的主服务器中的目标缓存数据后,需要对分布式消息中间件***的服务端进行集群部署,然后广播数据。具体的,在分布式消息中间件***的服务端为目标缓存数据设置一个消息主题,并为所述消息主题配置一个消息队列,然后将所述目标缓存数据以消息的形式保存至所述消息队列,以供分布式消息中间件集群中对应的每个客户端获取目标缓存数据,并将所述目标缓存数据广播到注册在其相应的分布式消息中间件客户端的远程字典服务集群的从服务器上。
可以理解的是,因为每个队列中消息顺序一定,发送数据的时候有先后顺序,设置为一个消息主题,并将该主题设置成只有一个队列,这样还原的时候也会基于发送数据时的顺序,可以保证备份数据的顺序一致性。
步骤S23:通过所述分布式消息中间件***的服务端,获取每个客户端针对所述消息主题的订阅请求,然后将所述消息队列中保存的所述目标缓存数据广播至所述分布式消息中间件***的各客户端。
本实施例中,当所述分布式消息中间件的各客户端需要所述目标缓存数据时,所述分布式消息中间件的各客户端向所述分布式消息中间件***的服务端发送所述目标缓存数据对应的所述消息主题的订阅请求,所述分布式消息中间件***的服务端获取到每个客户端针对所述消息主题的订阅请求后,将所述消息队列中保存的所述目标缓存数据广播至所述分布式消息中间件***的各客户端。
步骤S24:控制所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间。
本实施例中,所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器中,需要注意的是,所述目标缓存数据在所述消息队列中以消息形式进行存储,因此所述从服务器获取到的所述目标缓存数据仍然是消息形式,进一步的需要将消息形式的所述目标缓存数据进行解析,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间,从而实现缓存数据的同步。
可见,本申请实施例提供了一种缓存数据同步的方法,首先通过获取远程字典服务集群的主服务器中的目标缓存数据;所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据;再通过所述分布式消息中间件***的服务端为所述目标缓存数据设置一个消息主题,并为所述消息主题配置一个消息队列,然后将所述目标缓存数据以消息的形式保存至所述消息队列;通过所述分布式消息中间件***的服务端,获取每个客户端针对所述消息主题的订阅请求,然后将所述消息队列中保存的所述目标缓存数据广播至所述分布式消息中间件***的各客户端;最后控制所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间。可见,通过分布式消息中间件***的服务端的广播通知机制将目标缓存数据广播至分布式消息中间件***的各客户端,并为服务端设置一个消息的主题,将该主题设置成只有一个队列,保证了备份数据的顺序一致性。并且,由于本申请中的应用服务器只连接一个主服务器,因此减轻了应用服务器的压力。此外,本申请在主从服务器之间加入了分布式消息中间件***,并利用分布式消息中间件***来处理从服务器的数据同步请求,从而减轻了主服务器的压力。最后,具有广播发送的机制并且只有一个主服务器实现了缓存数据的实时同步,保证了从服务器上的数据的一致性。
图6给出了关于缓存数据同步方法的具体过程的结构示意图。
需要指出的是,本实施例在数据文件转换器中部署了RocketMQ客户端,用来将经过数据文件转换器转换后得到的所述目标缓存数据发送给所述分布式消息中间件***的RocketMQ服务端。参见图6所示,本实施例中的应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主Redis服务器,在主Redis服务器中,缓存数据经过配置后得到RDB文件和AOF文件,然后经数据文件转换器对读取到的RDB文件和AOF文件进行文件转换处理,得到目标缓存数据,并由数据文件转换器中预先部署的RocketMQ客户端将所述目标缓存数据发送给所述分布式消息中间件***的RocketMQ服务端。需要指出的是,所述目标缓存数据是以消息的形式保存在所述分布式消息中间件***的RocketMQ服务端中的消息队列中的,并且所述目标缓存数据对应一个消息主题,因此基于每个RocketMQ客户端订阅的所述消息主题,所述分布式消息中间件***的RocketMQ服务端会将所述消息队列中保存的所述目标缓存数据广播至所述分布式消息中间件***的各RocketMQ客户端,最后所述分布式消息中间件***控制所述分布式消息中间件***的每个所述RocketMQ客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从Redis服务器,以便每台所述从Redis服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间。
相应的,本申请实施例还公开了一种缓存数据同步装置,参见图7所示,该装置包括:
数据获取模块11:获取远程字典服务集群的主服务器中的目标缓存数据;所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据;
数据广播模块12:通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端;不同的所述客户端分别对应于所述远程字典服务集群中不同的从服务器;
数据发送模块13:控制所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请提出一种缓存数据同步方法,包括:获取远程字典服务集群的主服务器中的目标缓存数据;所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据;通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端;不同的所述客户端分别对应于所述远程字典服务集群中不同的从服务器;控制所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间,如此一来,本申请中的应用服务器只连接一个主服务器,因此减轻了应用服务器的压力。此外,本申请在主从服务器之间加入了分布式消息中间件***,并利用分布式消息中间件***来处理从服务器的数据同步请求,从而减轻了主服务器的压力。最后,具有广播发送的机制并且只有一个主服务器实现了缓存数据的实时同步,保证了从服务器上的数据的一致性。
进一步的,本申请实施例还提供了一种电子设备。图8是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图8为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、显示屏23、输入输出接口24、通信接口25、电源26、和通信总线27。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的缓存数据同步方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源26用于为电子设备20上的各硬件设备提供工作电压;通信接口25能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口24,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括计算机程序221,存储方式可以是短暂存储或者永久存储。其中,计算机程序221除了包括能够用于完成前述任一实施例公开的由电子设备20执行的缓存数据同步方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的缓存数据同步方法。
关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种缓存数据同步方法、装置、设备、存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (7)
1.一种缓存数据同步方法,其特征在于,应用于分布式消息中间件***,包括:
获取远程字典服务集群的主服务器中的目标缓存数据;所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据;
通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端;不同的所述客户端分别对应于所述远程字典服务集群中不同的从服务器;
控制所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间;
其中,所述获取远程字典服务集群的主服务器中的目标缓存数据,包括:
读取远程字典服务集群的主服务器中的缓存数据文件,并通过数据文件转换器对读取到的所述缓存数据文件进行文件转换处理,以得到所述目标缓存数据;
所述读取远程字典服务集群的主服务器中的缓存数据文件,包括:
读取远程字典服务集群的主服务器中的RDB文件,并在读取到所述RDB文件后读取所述主服务器中的AOF文件;
所述通过数据文件转换器对读取到的所述缓存数据文件进行文件转换处理,以得到所述目标缓存数据,包括:
通过所述数据文件转换器,对读取到的所述RDB文件和所述AOF文件分别进行解析得到相应的第一解析后数据和第二解析后数据,并以键值对作为数据记录方式对所述第一解析后数据和所述第二解析后数据进行重新封装,以得到所述目标缓存数据。
2.根据权利要求1所述的缓存数据同步方法,其特征在于,所述读取远程字典服务集群的主服务器中的RDB文件,并在读取到所述RDB文件后读取所述主服务器中的AOF文件,包括:
基于预设时间周期,定期读取远程字典服务集群的主服务器中的RDB文件,并在读取到所述RDB文件后读取所述主服务器中的AOF文件。
3.根据权利要求2所述的缓存数据同步方法,其特征在于,还包括:
在读取所述主服务器中的AOF文件之后,记录相应的AOF文件的读取位置。
4.根据权利要求1至3任一项所述的缓存数据同步方法,其特征在于,所述通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端之前,还包括:
通过所述分布式消息中间件***的服务端为所述目标缓存数据设置一个消息主题,并为所述消息主题配置一个消息队列,然后将所述目标缓存数据以消息的形式保存至所述消息队列;
相应的,所述通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端,包括:
通过所述分布式消息中间件***的服务端,获取每个客户端针对所述消息主题的订阅请求,然后将所述消息队列中保存的所述目标缓存数据广播至所述分布式消息中间件***的各客户端。
5.一种缓存数据同步装置,其特征在于,应用于分布式消息中间件***,包括:
数据获取模块,用于获取远程字典服务集群的主服务器中的目标缓存数据;所述目标缓存数据为应用服务器在业务数据发生变更后将相应的变更后业务数据保存至所述主服务器后得到的缓存数据;
数据广播模块,用于通过所述分布式消息中间件***的服务端将所述目标缓存数据广播至所述分布式消息中间件***的各客户端;不同的所述客户端分别对应于所述远程字典服务集群中不同的从服务器;
数据发送模块,用于控制所述分布式消息中间件***的每个所述客户端将各自获取到的所述目标缓存数据分别传输至相应的所述从服务器,以便每台所述从服务器将各自获取到的所述目标缓存数据保存至各自的本地缓存空间;
其中,所述数据获取模块,包括:
缓存文件读取单元,用于读取远程字典服务集群的主服务器中的缓存数据文件;
文件转换处理单元,用于通过数据文件转换器对读取到的所述缓存数据文件进行文件转换处理,以得到所述目标缓存数据;
所述缓存文件读取单元,具体用于读取远程字典服务集群的主服务器中的RDB文件,并在读取到所述RDB文件后读取所述主服务器中的AOF文件;
所述文件转换处理单元,具体用于通过所述数据文件转换器,对读取到的所述RDB文件和所述AOF文件分别进行解析得到相应的第一解析后数据和第二解析后数据,并以键值对作为数据记录方式对所述第一解析后数据和所述第二解析后数据进行重新封装,以得到所述目标缓存数据。
6.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至4任一项所述的缓存数据同步方法。
7.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的缓存数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111445506.XA CN114328618B (zh) | 2021-11-30 | 2021-11-30 | 一种缓存数据同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111445506.XA CN114328618B (zh) | 2021-11-30 | 2021-11-30 | 一种缓存数据同步方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114328618A CN114328618A (zh) | 2022-04-12 |
CN114328618B true CN114328618B (zh) | 2024-02-09 |
Family
ID=81049265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111445506.XA Active CN114328618B (zh) | 2021-11-30 | 2021-11-30 | 一种缓存数据同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114328618B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114547511B (zh) * | 2022-04-27 | 2022-07-19 | 成都瑞华康源科技有限公司 | 基于物联网mqtt协议的***数据字典使用方法及*** |
CN114780643B (zh) * | 2022-06-16 | 2022-10-21 | 恒生电子股份有限公司 | 数据同步处理方法、装置、电子设备及可读存储介质 |
CN115118590B (zh) * | 2022-06-22 | 2024-05-10 | 平安科技(深圳)有限公司 | 配置数据的管理方法、装置、***、设备和存储介质 |
CN115412603B (zh) * | 2022-11-02 | 2022-12-27 | 中国电子科技集团公司第十五研究所 | 一种消息中间件的消息客户端模块的高可用的方法及装置 |
CN116938961B (zh) * | 2023-09-15 | 2024-03-01 | 北京趋动智能科技有限公司 | 用于数据同步的***、方法及数据读取方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893543A (zh) * | 2016-03-31 | 2016-08-24 | 微梦创科网络科技(中国)有限公司 | 数据缓冲服务方法及*** |
CN110633320A (zh) * | 2018-05-30 | 2019-12-31 | 北京京东尚科信息技术有限公司 | 分布式数据服务的处理方法、***、设备及存储介质 |
CN113010549A (zh) * | 2021-01-29 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 基于异地多活***的数据处理方法、相关设备及存储介质 |
CN113157466A (zh) * | 2021-04-27 | 2021-07-23 | 上海销氪信息科技有限公司 | 一种消息推送方法、装置、***、电子设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495250B2 (en) * | 2009-12-16 | 2013-07-23 | International Business Machines Corporation | Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system |
-
2021
- 2021-11-30 CN CN202111445506.XA patent/CN114328618B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893543A (zh) * | 2016-03-31 | 2016-08-24 | 微梦创科网络科技(中国)有限公司 | 数据缓冲服务方法及*** |
CN110633320A (zh) * | 2018-05-30 | 2019-12-31 | 北京京东尚科信息技术有限公司 | 分布式数据服务的处理方法、***、设备及存储介质 |
CN113010549A (zh) * | 2021-01-29 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 基于异地多活***的数据处理方法、相关设备及存储介质 |
CN113157466A (zh) * | 2021-04-27 | 2021-07-23 | 上海销氪信息科技有限公司 | 一种消息推送方法、装置、***、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114328618A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114328618B (zh) | 一种缓存数据同步方法、装置、设备及存储介质 | |
US10901812B2 (en) | Managing communication between cloud and heterogeneous devices across networks | |
EP3490224B1 (en) | Data synchronization method and system | |
CN109542865B (zh) | 分布式集群***配置文件同步方法、装置、***及介质 | |
CN106453288B (zh) | 一种支持异步模式的分布式微服务框架***及其实现方法 | |
US20200336769A1 (en) | Video Live Broadcast Method and Apparatus | |
CN108696374B (zh) | 更新客户端配置的方法和装置 | |
US8543646B2 (en) | Subscriber device and subscription management that supports real-time communication | |
US20150237113A1 (en) | Method and system for file transmission | |
US20120323990A1 (en) | Efficient state reconciliation | |
EP2574004B1 (en) | Method, apparatus and system for improving synchronization efficiency of really simple syndication service | |
CN108200219B (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN109547524B (zh) | 基于物联网的用户行为存储方法、装置、设备及存储介质 | |
CN111355986B (zh) | 一种直播间中的消息处理方法、装置和存储介质 | |
CN110995566A (zh) | 一种消息数据推送方法、***及装置 | |
CN102763373A (zh) | 基于远程访问使用本地网络装置的服务的方法和设备 | |
CN106899605B (zh) | 基于stomp协议的通信方法和装置 | |
US20240015135A1 (en) | Domain management and synchronization system | |
CN109542981B (zh) | 一种数据同步的***及方法、电子设备、存储介质 | |
CN116800835A (zh) | 一种监控数据采集方法、装置、设备及介质 | |
CN101958934B (zh) | 一种电子节目指南增量内容同步方法、装置及*** | |
CN109257448B (zh) | 一种会话信息同步的方法及装置、电子设备、存储介质 | |
WO2011160549A1 (zh) | 电子节目指南***及文件下载方法 | |
CN115629909A (zh) | 业务数据处理的方法、装置、电子设备和存储介质 | |
CN113242313B (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 |