CN113722401B - 数据缓存方法、装置、计算机设备及可读存储介质 - Google Patents
数据缓存方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN113722401B CN113722401B CN202111296744.9A CN202111296744A CN113722401B CN 113722401 B CN113722401 B CN 113722401B CN 202111296744 A CN202111296744 A CN 202111296744A CN 113722401 B CN113722401 B CN 113722401B
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- production log
- synchronous
- data center
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种数据缓存方法、装置、计算机设备及可读存储介质,应用于第一数据中心的微服务端,所述数据缓存方法包括:接收用户端发送的数据请求,根据所述数据请求修改分布式数据库中的数据并生成初始生产日志;根据修改数据,调整微服务端缓存;根据所述微服务端缓存的调整记录获得同步生产日志;向数据同步收集器发送所述同步生产日志,以使所述数据同步收集器将所述同步生产日志上传至消息队列,以使所述第二数据中心从所述消息队列同步读取所述同步生产日志并进行数据更新处理。从而用户对第一数据中心的服务端进行数据调整后,第二数据中心能够及时从消息队列中获取数据调整信息,保证数据和缓存的一致性。
Description
技术领域
本发明涉及同步数据处理领域,尤其涉及一种数据缓存方法、装置、计算机设备及可读存储介质。
背景技术
联邦架构在大数据组件和联盟区块链中被广泛提及,架构内能够存在多个数据中心,且每个数据中心都是自治的,不同的数据中心与数据中心之间可以进行通信,从而完成复杂的数字化协同任务。
每个数据中心是能够独立处理数据的,因此,当一个数据中心内部因为用户的请求导致后端数据库发生变化时,会使得数据中心中的微服务端所维护的缓存中产生脏数据。
现有的数据同步方案中,往往因为数据中心之间独立进行更新,从而无法保证事务的原子性,也就无法避免出现数据同步,但缓存并未同步的情况出现。
发明内容
为了解决上述技术问题,本申请实施例提出了一种数据缓存方法、装置、计算机设备及可读存储介质,具体方案如下:
第一方面,本申请实施例提出了一种数据缓存方法,应用于第一数据中心的微服务端,联邦架构包括所述第一数据中心和第二数据中心,所述第一数据中心与所述第二数据中心之间通过消息队列进行信息交互,所述数据缓存方法包括:
接收用户端发送的数据请求;
根据所述数据请求修改分布式数据库中的数据并生成初始生产日志;
根据所述初始生产日志中所述分布式数据库修改数据,调整微服务端缓存;
根据所述微服务端缓存的调整记录生成第一缓存调整指令,并结合所述第一缓存调整指令和所述初始生产日志,以获得同步生产日志;
向数据同步收集器发送所述同步生产日志,以使所述数据同步收集器将所述同步生产日志上传至消息队列,以使所述第二数据中心从所述消息队列同步读取所述同步生产日志并进行数据更新处理。
根据本申请实施例的一种具体实施方式,所述第一数据中心的微服务端还连接有多个子服务端,所述微服务端通过应用程序编程接口与各所述子服务端通信连接;所述获得同步生产日志的步骤,还包括:
向消息队列中发送所述初始生产日志,以使所述子服务端根据所述初始生产日志调整子服务端缓存;
从消息队列中接收所述子服务端的第二缓存调整指令,并结合所述第二缓存调整指令和所述初始生产日志,以获得同步生产日志。
根据本申请实施例的一种具体实施方式,所述根据所述初始生产日志中所述分布式数据库的修改数据,调整微服务端缓存的步骤,包括:
检测所述初始生产日志的数据修改类型;
若所述初始生产日志的数据修改类型为添加数据,检测缓存中是否包括所述添加数据动作对应的修改数据;
当缓存中不包括所述修改数据时,将所述修改数据添加至缓存中;
若所述初始生产日志的数据修改类型为删除数据或调整数据,检测缓存中是否包括所述删除数据动作或调整数据动作对应的修改数据;
当所述缓存中包括所述修改数据时,调整或者删除缓存中的所述修改数据。
第二方面,本申请实施例提供了一种数据缓存方法,应用于第二数据中心的微服务端,联邦架构包括第一数据中心和所述第二数据中心,所述第一数据中心与所述第二数据中心之间通过消息队列进行信息交互,所述数据缓存方法包括:
从数据同步接收器中读取同步生产日志,其中,所述数据同步接收器从消息队列中监测并获取所述同步生产日志;
检测所述同步生产日志的消息类型,并根据所述消息类型进行数据更新处理。
根据本申请实施例的一种具体实施方式,所述检测所述同步生产日志的消息类型,根据所述消息类型进行数据更新处理的步骤,包括:
若所述同步生产日志的消息类型为初始生产日志,则根据所述初始生产日志修改分布式数据库的数据;
若所述同步生产日志的消息类型为第一缓存调整指令,则根据所述第一缓存调整指令调整微服务端缓存。
根据本申请实施例的一种具体实施方式,所述第二数据中心的微服务端还连接有多个子服务端,所述微服务端通过应用程序编程接口与所述子服务端通信连接;所述检测所述同步生产日志的消息类型,根据所述消息类型进行数据更新处理的步骤,还包括:
若所述同步生产日志的消息类型为第二缓存调整指令,则向消息队列中发送所述第二缓存调整指令,以使所述子服务端根据所述第二缓存调整指令调整子服务端缓存。
第三方面,本申请实施例提供了一种数据缓存装置,应用于第一数据中心的微服务端,联邦架构包括所述第一数据中心和第二数据中心,所述第一数据中心与所述第二数据中心之间通过消息队列进行信息交互,所述数据缓存装置包括:
请求接收模块,用于接收用户端发送的数据请求;
数据修改模块,用于根据所述数据请求修改分布式数据库中的数据并生成初始生产日志;
缓存调整模块,用于根据所述初始生产日志中所述分布式数据库修改数据,调整微服务端缓存;
指令更新模块,用于根据所述微服务端缓存的调整记录生成第一缓存调整指令,并结合所述第一缓存调整指令和所述初始生产日志,以获得同步生产日志;
数据同步模块,用于向数据同步收集器发送所述同步生产日志,以使所述数据同步收集器将所述同步生产日志上传至消息队列,以使所述第二数据中心从所述消息队列同步读取所述同步生产日志并进行数据更新处理。
第四方面,本申请实施例提供了一种数据缓存装置,应用于第二数据中心的微服务端,联邦架构包括第一数据中心和所述第二数据中心,所述第一数据中心与所述第二数据中心之间通过消息队列进行信息交互,所述数据缓存装置包括:
指令读取模块,用于从数据同步接收器中读取同步生产日志,其中,所述数据同步接收器从消息队列中监测并获取所述同步生产日志;
数据更新模块,用于检测所述同步生产日志的消息类型,并根据所述消息类型进行数据更新处理。
第五方面,本申请实施例提供了一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行第一方面或第二方面所述的数据缓存方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序在处理器上运行时执行第一方面或第二方面所述的数据缓存方法。
本申请实施例提供了一种数据缓存方法、装置、计算机设备及可读存储介质,应用于第一数据中心的微服务端,第一数据中心和第二数据中心之间通过消息队列进行信息交互,所述数据缓存方法包括:接收用户端发送的数据请求,根据所述数据请求修改分布式数据库中的数据并生成初始生产日志;根据修改数据,调整微服务端缓存;根据所述微服务端缓存的调整记录生成第一缓存调整指令,并结合所述第一缓存调整指令和所述初始生产日志,以获得同步生产日志;向数据同步收集器发送所述同步生产日志,以使所述数据同步收集器将所述同步生产日志上传至消息队列,以使所述第二数据中心从所述消息队列同步读取所述同步生产日志并进行数据更新处理。从而用户对第一数据中心的服务端进行数据调整后,第二数据中心能够及时从消息队列中获取数据调整信息,保证数据和缓存的一致性。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本申请实施例提供的一种数据缓存方法应用的联邦架构的结构示意图;
图2示出了本申请实施例提供的一种应用于第一数据中心的微服务端的数据缓存方法的方法流程示意图;
图3示出了本申请实施例提供的一种应用于第二数据中心的微服务端的数据缓存方法的方法流程示意图;
图4示出了本申请实施例提供的一种应用于第一数据中心的微服务端的数据缓存装置的装置模块示意图;
图5示出了本申请实施例提供的一种应用于第二数据中心的微服务端的数据缓存装置的装置模块示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
参考图1,为本申请实施例提供的一种数据缓存方法应用的联邦架构的结构示意图,参考图2,为本申请实施例提供的一种数据缓存方法的方法流程示意图,本申请实施例提供的一种数据缓存方法,应用于第一数据中心的微服务端,联邦架构包括所述第一数据中心和第二数据中心,所述第一数据中心与所述第二数据中心之间通过消息队列进行信息交互,如图2所示,所述数据缓存方法包括:
步骤S101,接收用户端发送的数据请求;
在具体实施例中,联邦架构可以包括多个数据中心,其中,每个数据中心均可以单独进行数据处理动作。在本实施例中,以第一数据中心作为同步数据的发送方,以第二数据中心作为同步数据的接收方进行描述,在实际应用中,各数据中心均可同时作为同步数据的接收方和发送方。
数据中心与数据中心之间通过消息队列进行信息交互,主要是基于数据中心中的两个同步服务组件,分别为数据同步收集器DataShake Collector和数据接收收集器DataShake Receiver,其中,所述数据同步收集器为一个变更数据捕获(Changer DataCapturer,简称CDC)的组件,用于监听数据的变化。所述数据接收收集器负责消费全局消息队列kafka的消息,并负责根据消息进行分类,在所在的数据中心进行必要的操作。
其中,对于数据中心来说,可以采用分布式数据库来存放数据中心的数据,所述分布式数据库可以为MongoDB数据库或Mycircle数据库等,此处不对分布式数据库的类型作具体限定。
每一数据中心提供至少一个微服务端,所述微服务端直接与数据中心的分布式数据库进行通信。对于一个数据中心来说,仅对部分微服务端进行授权操作,经过授权处理的微服务端才能直接与所述数据中心的分布式数据库进行通信,并从所述分布式数据库中获取数据。
每一微服务端均维护一个对应的服务端缓存,存放在远程字典服务(RemoteDictionary Server,即Redis服务)中。
所述用户端为与第一数据中心的微服务端进行通信的用户终端,所述用户终端可以为手机、计算机、平板电脑等智能终端。
在具体实施例中,微服务端会以事务的方式,接收用户端发送的数据请求,并执行所述数据请求中的内容。
首先,根据用户请求的类型判断用户请求的具体内容,在具体应用过程中,若用户的请求已经提前存储在微服务端的微服务端缓存中,那么所述微服务端会直接从所述微服务端缓存中提取对应请求的数据返回用户端。
若用户的请求并未提前存储在微服务端缓存中,那么就需要涉及对分布式数据库的修改,对分布式数据库修改的数据请求可以为对于第一数据中心中的数据进行创建、修改或删除的请求。
步骤S102,根据所述数据请求修改分布式数据库中的数据并生成初始生产日志;
在具体实施例中,微服务端会以事务的方式,接收用户端发送的数据请求,并执行所述数据请求中的内容。
所述微服务端根据所述数据请求的具体内容,在所述第一数据中心的分布式数据库中创建、修改或删除相对应的数据。
步骤S103,根据所述初始生产日志中所述分布式数据库的修改数据,调整微服务端缓存;
所述微服务端在修改了所述分布式数据库中的数据后,会对修改数据部分进行记录,并对应修改动作生成相应的初始生产日志。
因为第一数据中心对分布式数据库进行了修改,那么相对应的微服务端缓存则会因为与分布式数据库中存储的数据不对应而产生的脏数据。所述微服务端即根据所述初始生产日志中对所述分布式数据库的修改数据部分,调整微服务端缓存的内容,以使缓存与数据保持一致。
根据本申请实施例的一种具体实施方式,所述根据根据所述初始生产日志中所述分布式数据库修改数据,调整微服务端缓存的步骤,包括:
检测所述初始生产日志的数据修改类型;
若所述初始生产日志的数据修改类型为添加数据,检测缓存中是否包括所述添加数据动作对应的修改数据;
当缓存中不包括所述修改数据时,将所述修改数据添加至缓存中;
若所述初始生产日志的数据修改类型为删除数据或调整数据,检测缓存中是否包括所述删除数据动作或调整数据动作对应的修改数据;
当所述缓存中包括所述修改数据时,调整或者删除缓存中的所述修改数据。
在具体实施例中,所述微服务端维护缓存的方式是根据所属数据中心的分布式数据库来决定的,所述微服务端缓存中的数据内容应该与所述分布式数据库中存储的数据内容相一致。
当所述分布式数据库中的数据内容发生变化时,所述微服务端首先需要检测所述初始生产日志数据的修改类型,并根据所述修改类型执行相应的维护缓存动作。
当所述分布式数据库中数据的数据修改类型为添加数据时,所述微服务端向Redis服务发送一个检测指令,检测Redis服务中是否存储有与修改数据相同的数据,若存在相同的数据时,则从所述Redis服务中直接调用数据请求需要的数据。若存在不同的数据时,则需要从分布式数据库中提取所述修改数据部分,并添加至Redis服务中进行缓存,以供下一次用户进行数据请求时,能够直接从缓存中进行调用。
当所述分布式数据库中的数据的数据修改类型为调整或删除数据时,所述微服务端同样会向Redis服务发送一个检测指令,检测Redis服务中是否存储有与修改数据相同的数据。若Redis服务中存在与所述修改数据相同的数据,那么意味着此部分数据已经被分布式数据库中删除或修改了,此部分数据在Redis服务中变成了无效的脏数据,那么Redis服务则删除此部分数据,以保证Redis服务中的数据与分布式数据库中的数据保持一致。
若用户请求的调整动作对所述分布式数据库中的数据进行了部分修改,导致所述Redis服务中存储的缓存发生了改变,那么所述微服务端则需要先删除Redis服务中原来的缓存,然后从分布式数据库中将修改数据重新缓存在Redis服务中。
步骤S104,根据所述微服务端缓存的调整记录生成第一缓存调整指令,并结合所述第一缓存调整指令和所述初始生产日志,以获得同步生产日志;
在具体实施例中,所述微服务端在调整了所述微服务端缓存后,会主动调用缓存收集器CacheCollector来生成一个对应的缓存事件CacheEvent,所述缓存事件用来存放所述微服务端缓存的调整记录,和其它业务数据一起,被数据同步服务同步到kafka消息队列中,所述缓存事件CacheEvent支持Redis,kafkaMsg等多种类型的数据。
所述缓存事件CacheEvent包括缓存事件的标识、缓存事件的类型和载荷信息,所述载荷信息主要为json格式的字符串,存储有与所述缓存类型对应的缓存更新的详细信息。如果缓存事件的类型为Redis类型的数据,则所述载荷信息中存储有与Redis相关的信息,比如db number,redis key,redis key type,redis sub key等。如果缓存事件的类型为kafkaMsg类型的数据,则所述载荷信息中存储有与kafka消息相关的信息,比如topicname,message key,message value。
所述微服务端中还设置有一个缓存重播器CacheReplayer,所述缓存重播器能够根据缓存事件CacheEvent进行同样的缓存更新处理。
在本实施例中,所述第一缓存调整指令即存储有Redis类型数据的缓存事件。
将第一缓存调整指令和初始同步生产日志相结合,能够得到同步生产日志,将所述同步生产日志发送至第二数据中心后,所述第二数据中心即能够根据初始同步生产日志更新第二数据中心中的分布式数据库,并根据所述第一缓存调整指令更新第二数据中心的微服务端缓存。
所述第一缓存调整指令也可以等同于Redis类型的生产日志,所述同步生产日志包括第一缓存调整指令和所述初始同步生产日志。将所述同步生产日志发送至数据同步收集器以进行数据中心间的同步时,可以分别发送所述初始同步生产日志和所述第一缓存调整指令,也可以同时发送所述初始同步生产日志和所述第一缓存调整指令,根据实际情况进行自适应选择。
根据本申请实施例的一种具体实施方式,所述第一数据中心的微服务端还连接有多个子服务端,所述微服务端通过应用程序编程接口与各所述子服务端通信连接;所述获得同步生产日志的步骤,还包括:
向消息队列中发送所述初始生产日志,以使所述子服务端根据所述初始生产日志调整子服务端缓存;
从消息队列中接收所述子服务端的第二缓存调整指令,并结合所述第二缓存调整指令和所述初始生产日志,以获得同步生产日志。
在具体实施例中,所述数据中心中还存在一些子服务端,所述子服务端即不被授权与分布式数据库直接通信的微服务端。
各子服务端通过应用程序编程接口(Application Programming Interface,简称API)与授权的微服务端通信连接,从而可以通过API接口调用微服务端从分布式数据库中提取的数据。
每一子服务端均维护了一个对应的子服务端缓存,从而能够避免用户请求发送至子服务端时,子服务端需要耗费大量资源通过API从分布式数据库中调用数据。
当微服务端中的缓存发生改变是,会向kafka消息队列中上传初始生产日志,即向子服务端通知分布式数据库中的数据修改动作,所述子服务端即能够根据所述初始生产日志更新子服务端缓存。所述子服务端更新缓存的步骤可以参考上述对微服务端更新缓存的描述,此处不再赘述。
所述子服务端在调整所述子服务端缓存后,会生成一个第二缓存调整指令,即存储有kafkaMsg数据类型的缓存事件,并通过kafka消息队列将所述第二缓存调整指令发送至所述微服务端。
所述微服务端即根据针对分布式数据库修改动作的初始生产日志、针对微服务缓存修改动作的第一缓存调整指令和针对子服务端修改动作的第二缓存调整指令进行整合,形成同步生产日志,以供第二数据中心根据所述同步生产日志进行缓存和数据的同步。
步骤S105,向数据同步收集器发送所述同步生产日志,以使所述数据同步收集器将所述同步生产日志上传至消息队列,以使所述第二数据中心从所述消息队列同步读取所述同步生产日志并进行数据更新处理。
在具体实施例中,第一数据中心的数据同步收集器收集上述实施例中的各项数据同步信息,并将各项数据同步信息一一上传至消息队列,以便于第二数据中心进行同步。
从而,通过第一数据中心的微服务端进行更新、同步和管理,能够保持第一数据中心的数据与各服务端的缓存之间保持一致,维护了数据同步过程中,数据中心内部的一致性。
参考图3,为申请实施例提供的一种数据缓存方法,应用于第二数据中心的微服务端,联邦架构包括第一数据中心和所述第二数据中心,所述第一数据中心与所述第二数据中心之间通过消息队列进行信息交互,如图3所示,所述数据缓存方法包括:
步骤S201,从数据同步接收器中读取同步生产日志,其中,所述数据同步接收器从消息队列中监测并获取所述同步生产日志;
在具体实施例中,联邦架构中作为接受方的第二数据中心通过数据同步接收器订阅kafka消息队列中的同步消息,以得到对应作为发送方的第一数据中心生成的同步生产日志。
步骤S202,检测所述同步生产日志的消息类型,并根据所述消息类型进行数据更新处理。
在获取所述同步生产日志后,需要根据所述同步生产日志中更新消息的消息类型,来判断是对所述第二数据中心的哪一部分进行数据更新。
根据本申请实施例的一种具体实施方式,所述检测所述同步生产日志的消息类型,根据所述消息类型进行数据更新处理的步骤,包括:
若所述同步生产日志的消息类型为初始生产日志,则根据所述初始生产日志修改分布式数据库的数据;
若所述同步生产日志的消息类型为第一缓存调整指令,则根据所述第一缓存调整指令调整微服务端缓存。
在具体实施例中,若同步生产日志中的消息是初始生产日志,即对应分布式数据库的更新指令,则通过生产日志重播器,对所述初始生产日志进行重播处理,以实现在第二数据中心执行与第一数据中心相同的分布式数据库变更操作。
若同步生产日志中的消息是第一缓存调整指令,即对应Redis服务的缓存更新指令,则会通过缓存重播器执行所述第一缓存调整指令,根据载荷中存储的相关信息链接第二数据中心的微服务端缓存,并对Redis服务中的缓存进行添加或删除操作。
根据本申请实施例的一种具体实施方式,所述第二数据中心的微服务端还连接有多个子服务端,所述微服务端通过应用程序编程接口与所述子服务端通信连接;所述检测所述同步生产日志的消息类型,根据所述消息类型进行数据更新处理的步骤,还包括:
若所述同步生产日志的消息类型为第二缓存调整指令,则向消息队列中发送所述第二缓存调整指令,以使所述子服务端根据所述第二缓存调整指令调整子服务端缓存。
具体的,若同步生产日志中的消息是第二缓存调整指令,即对应消息队列kafka的缓存更新指令,则会根据所述第二缓存调整指令的载荷内容向消息队列中上传相应的调整信息,使得子服务端根据所述调整信息进行子服务端缓存更新。
通过第二数据中心的微服务端的管理和同步,能够按类别接收所述第一数据中心中数据和缓存的改变,从而保证了整个联邦架构中,各数据中心之间的数据和缓存的一致性。
参考图4,为本申请实施例提供的一种数据缓存装置400,应用于第一数据中心的微服务端,联邦架构包括所述第一数据中心和第二数据中心,所述第一数据中心与所述第二数据中心之间通过消息队列进行信息交互,如图4所示,所述数据缓存装置400包括:
请求接收模块401,用于接收用户端发送的数据请求;
数据修改模块402,用于根据所述数据请求修改分布式数据库中的数据并生成初始生产日志;
缓存调整模块403,用于根据所述初始生产日志中所述分布式数据库修改数据,调整微服务端缓存;
指令更新模块404,用于根据所述微服务端缓存的调整记录生成第一缓存调整指令,并结合所述第一缓存调整指令和所述初始生产日志,以获得同步生产日志;
数据同步模块405,用于向数据同步收集器发送所述同步生产日志,以使所述数据同步收集器将所述同步生产日志上传至消息队列,以使所述第二数据中心从所述消息队列同步读取所述同步生产日志并进行数据更新处理。
参考图5,为本申请实施例提供的一种数据缓存装置500的装置模块示意图,本申请实施例提供的一种数据缓存装置500,应用于第二数据中心的微服务端,联邦架构包括第一数据中心和所述第二数据中心,所述第一数据中心与所述第二数据中心之间通过消息队列进行信息交互,如图5所示,所述数据缓存装置500包括:
指令读取模块501,用于从数据同步接收器中读取同步生产日志,其中,所述数据同步接收器从消息队列中监测并获取所述同步生产日志;
数据更新模块502,用于检测所述同步生产日志的消息类型,并根据所述消息类型进行数据更新处理。
另外,本申请实施例提供了一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行上述实施例中所述的数据缓存方法。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序在处理器上运行时执行上述实施例中所述的数据缓存方法。
综上所述,本公开实施例提供了一种数据缓存方法、装置、计算机设备及可读存储介质,通过第一数据中心的微服务端和第二数据中心的微服务端,能够提供一个数据同步紧耦合的缓存同步方案。所述第一数据中心的微服务端能够在分布式数据库中数据发生变化时,同步变更信息调整微服务端缓存,并发送同步消息使各子服务端调整子服务端缓存,使得数据中心中的数据与缓存一致。而所述第二数据中心与所述第一数据中心的交互,能够使得整个联邦架构中的数据和缓存保持同步,使得数据中心之间的同步能够同时维护缓存的一致性。所提供的数据缓存装置、计算机设备及计算机可读存储介质的具体实施过程,可以参见上述方法实施例的具体实施过程,在此不再一一赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种数据缓存方法,其特征在于,应用于第一数据中心的微服务端,联邦架构包括所述第一数据中心和第二数据中心,所述第一数据中心与所述第二数据中心之间通过消息队列进行信息交互,所述数据缓存方法包括:
接收用户端发送的数据请求;
根据所述数据请求修改分布式数据库中的数据并生成初始生产日志;
根据所述初始生产日志中所述分布式数据库的修改数据,调整微服务端缓存;
根据所述微服务端缓存的调整记录生成第一缓存调整指令,并结合所述第一缓存调整指令和所述初始生产日志,以获得同步生产日志;
向数据同步收集器发送所述同步生产日志,以使所述数据同步收集器将所述同步生产日志上传至消息队列,以使所述第二数据中心从所述消息队列同步读取所述同步生产日志并进行数据更新处理;
所述根据所述初始生产日志中所述分布式数据库的修改数据,调整微服务端缓存的步骤,包括:
检测所述初始生产日志的数据修改类型;
若所述初始生产日志的数据修改类型为添加数据,检测缓存中是否包括所述添加数据动作对应的修改数据;
当缓存中不包括所述添加数据动作对应的修改数据时,将所述添加数据动作对应的修改数据添加至缓存中;
若所述初始生产日志的数据修改类型为删除数据或调整数据,检测缓存中是否包括所述删除数据动作或调整数据动作对应的修改数据;
当所述缓存中包括所述删除数据动作或调整数据动作对应的修改数据时,调整或者删除缓存中的所述删除数据动作或调整数据动作对应的修改数据。
2.根据权利要求1所述的方法,其特征在于,所述第一数据中心的微服务端还连接有多个子服务端,所述微服务端通过应用程序编程接口与各所述子服务端通信连接;所述获得同步生产日志的步骤,还包括:
向消息队列中发送所述初始生产日志,以使所述子服务端根据所述初始生产日志调整子服务端缓存;
从消息队列中接收所述子服务端的第二缓存调整指令,并结合所述第二缓存调整指令和所述初始生产日志,以获得同步生产日志。
3.一种数据缓存方法,其特征在于,应用于第二数据中心的微服务端,联邦架构包括第一数据中心和所述第二数据中心,所述第一数据中心与所述第二数据中心之间通过消息队列进行信息交互,所述数据缓存方法包括:
从数据同步接收器中读取同步生产日志,其中,所述数据同步接收器从消息队列中监测并获取所述同步生产日志;
检测所述同步生产日志的消息类型,并根据所述消息类型进行数据更新处理;
所述检测所述同步生产日志的消息类型,并根据所述消息类型进行数据更新处理的步骤,包括:
若所述同步生产日志的消息类型为初始生产日志,则根据所述初始生产日志修改分布式数据库的数据,所述初始生产日志为所述第一数据中心的微服务端修改分布式数据库中的数据而生成的生产日志;
若所述同步生产日志的消息类型为第一缓存调整指令,则根据所述第一缓存调整指令调整微服务端缓存,所述第一缓存调整指令为所述第一数据中心的微服务端根据微服务端缓存的调整记录生成的调整指令。
4.根据权利要求3所述的方法,其特征在于,所述第二数据中心的微服务端还连接有多个子服务端,所述微服务端通过应用程序编程接口与所述子服务端通信连接;所述检测所述同步生产日志的消息类型,并根据所述消息类型进行数据更新处理的步骤,还包括:
若所述同步生产日志的消息类型为第二缓存调整指令,则向消息队列中发送所述第二缓存调整指令,以使所述子服务端根据所述第二缓存调整指令调整子服务端缓存,所述第二缓存调整指令为所述第一数据中心的子服务端根据子服务端缓存的调整记录生成的调整指令。
5.一种数据缓存装置,其特征在于,应用于第一数据中心的微服务端,联邦架构包括所述第一数据中心和第二数据中心,所述第一数据中心与所述第二数据中心之间通过消息队列进行信息交互,所述数据缓存装置包括:
请求接收模块,用于接收用户端发送的数据请求;
数据修改模块,用于根据所述数据请求修改分布式数据库中的数据并生成初始生产日志;
缓存调整模块,用于根据所述初始生产日志中所述分布式数据库修改数据,调整微服务端缓存;
指令更新模块,用于根据所述微服务端缓存的调整记录生成第一缓存调整指令,并结合所述第一缓存调整指令和所述初始生产日志,以获得同步生产日志;
数据同步模块,用于向数据同步收集器发送所述同步生产日志,以使所述数据同步收集器将所述同步生产日志上传至消息队列,以使所述第二数据中心从所述消息队列同步读取所述同步生产日志并进行数据更新处理;
所述缓存调整模块,具体用于检测所述初始生产日志的数据修改类型;若所述初始生产日志的数据修改类型为添加数据,检测缓存中是否包括所述添加数据动作对应的修改数据;当缓存中不包括所述添加数据动作对应的修改数据时,将所述添加数据动作对应的修改数据添加至缓存中;若所述初始生产日志的数据修改类型为删除数据或调整数据,检测缓存中是否包括所述删除数据动作或调整数据动作对应的修改数据;当所述缓存中包括所述删除数据动作或调整数据动作对应的修改数据时,调整或者删除缓存中的所述删除数据动作或调整数据动作对应的修改数据。
6.一种数据缓存装置,其特征在于,应用于第二数据中心的微服务端,联邦架构包括第一数据中心和所述第二数据中心,所述第一数据中心与所述第二数据中心之间通过消息队列进行信息交互,所述数据缓存装置包括:
指令读取模块,用于从数据同步接收器中读取同步生产日志,其中,所述数据同步接收器从消息队列中监测并获取所述同步生产日志;
数据更新模块,用于检测所述同步生产日志的消息类型,并根据所述消息类型进行数据更新处理;
所述数据更新模块,具体用于若所述同步生产日志的消息类型为初始生产日志,则根据所述初始生产日志修改分布式数据库的数据,所述初始生产日志为所述第一数据中心的微服务端修改分布式数据库中的数据而生成的生产日志;若所述同步生产日志的消息类型为第一缓存调整指令,则根据所述第一缓存调整指令调整微服务端缓存,所述第一缓存调整指令为所述第一数据中心的微服务端根据微服务端缓存的调整记录生成的调整指令。
7.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行权利要求1至4任一项所述的数据缓存方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序在处理器上运行时执行权利要求1-4中任一项所述的数据缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111296744.9A CN113722401B (zh) | 2021-11-04 | 2021-11-04 | 数据缓存方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111296744.9A CN113722401B (zh) | 2021-11-04 | 2021-11-04 | 数据缓存方法、装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113722401A CN113722401A (zh) | 2021-11-30 |
CN113722401B true CN113722401B (zh) | 2022-02-01 |
Family
ID=78686638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111296744.9A Active CN113722401B (zh) | 2021-11-04 | 2021-11-04 | 数据缓存方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113722401B (zh) |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9596122B2 (en) * | 2010-12-03 | 2017-03-14 | International Business Machines Corporation | Identity provider discovery service using a publish-subscribe model |
CN102724304A (zh) * | 2012-06-06 | 2012-10-10 | 哈尔滨工程大学 | 订阅/发布系统中信息仓库联邦及数据同步方法 |
WO2014133522A2 (en) * | 2013-02-28 | 2014-09-04 | Empire Technology Development, Llc | Local message queue processing for co-located workers |
US10817500B2 (en) * | 2014-03-13 | 2020-10-27 | Sybase, Inc. | Reduce log contention by batching log record transfers to the log |
US10397353B2 (en) * | 2015-10-01 | 2019-08-27 | Nicira, Inc. | Context enriched distributed logging services for workloads in a datacenter |
CN105577423A (zh) * | 2015-11-23 | 2016-05-11 | 江苏瑞中数据股份有限公司 | 一种实时数据中心群集管理系统 |
US10803048B2 (en) * | 2016-09-16 | 2020-10-13 | Oracle International Corporation | Change data capture processing and analysis |
US11360942B2 (en) * | 2017-03-13 | 2022-06-14 | Wandisco Inc. | Methods, devices and systems for maintaining consistency of metadata and data across data centers |
CN107180116A (zh) * | 2017-06-28 | 2017-09-19 | 努比亚技术有限公司 | 一种数据同步处理方法、移动终端以及计算机可读存储介质 |
CN109284066B (zh) * | 2017-07-19 | 2022-09-30 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置、设备及系统 |
CN107729366B (zh) * | 2017-09-08 | 2021-01-05 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
CN110134648A (zh) * | 2019-05-22 | 2019-08-16 | 中国联合网络通信集团有限公司 | 日志处理方法、装置、设备、系统及计算机可读存储介质 |
CN110502572A (zh) * | 2019-06-26 | 2019-11-26 | 中电万维信息技术有限责任公司 | 一种数据同步的方法及服务器 |
CN111414416B (zh) * | 2020-02-28 | 2023-05-23 | 平安科技(深圳)有限公司 | 数据处理方法、装置、设备和存储介质 |
CN111694840B (zh) * | 2020-04-29 | 2023-05-30 | 平安科技(深圳)有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN112087490A (zh) * | 2020-08-07 | 2020-12-15 | 上海绊糖信息科技有限公司 | 一种高性能移动端应用软件日志收集系统 |
CN112000737B (zh) * | 2020-08-14 | 2022-05-31 | 苏州浪潮智能科技有限公司 | 基于多云管理的数据同步方法、系统、终端及存储介质 |
CN112527899A (zh) * | 2020-12-03 | 2021-03-19 | 北京百度网讯科技有限公司 | 数据同步的方法、装置、设备以及存储介质 |
CN112667440A (zh) * | 2020-12-28 | 2021-04-16 | 紫光云技术有限公司 | 一种高可用MySQL的异地灾备方法 |
CN113297323A (zh) * | 2021-02-19 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据处理系统、方法及装置 |
-
2021
- 2021-11-04 CN CN202111296744.9A patent/CN113722401B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113722401A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106453572B (zh) | 基于云服务器同步图像的方法及系统 | |
CN107315825B (zh) | 一种索引更新系统、方法及装置 | |
CN103841167A (zh) | 一种用户数据同步方法及设备 | |
US20080201475A1 (en) | Device Management Method Using Nodes Having Additional Attribute and Device Management Client Thereof | |
CN105407117A (zh) | 分布式备份数据的方法、装置和系统 | |
CN110650164B (zh) | 文件的上传方法、装置、终端以及计算机存储介质 | |
US10972296B2 (en) | Messaging to enforce operation serialization for consistency of a distributed data structure | |
CN102769640A (zh) | 用户信息的更新方法、服务器以及系统 | |
CN109151056B (zh) | 基于Canal的消息推送方法和系统 | |
EP3506599B1 (en) | Method for synchronizing contact information, apparatus and medium | |
CN113656490A (zh) | 一种数据同步的方法、装置、终端以及存储介质 | |
CN102594874A (zh) | 一种同步处理方法和装置 | |
CN103092988A (zh) | 一种直接在桌面管理手机媒体资源的实现方法 | |
CN113722401B (zh) | 数据缓存方法、装置、计算机设备及可读存储介质 | |
CN101924815A (zh) | 3g moa 手机中间件嵌入式系统 | |
CN101610225A (zh) | 一种同步处理方法、系统和装置 | |
CN104346346A (zh) | 业务发布方法和系统、业务更新方法、客户端 | |
CN107040455B (zh) | 一种基于redis的即时消息通讯方法和系统 | |
CN115510832A (zh) | 信息同步处理方法、系统、装置、电子设备和存储介质 | |
CN105991417A (zh) | 网络社交圈内的好友动态信息接收方法和装置 | |
CN117009632A (zh) | 数据拉取方法、装置、计算机设备、存储介质及程序产品 | |
CN116132528B (zh) | 一种航班管理消息的推送方法、装置及电子设备 | |
CN117478535B (zh) | 一种日志存储的方法和装置 | |
CN114064619A (zh) | 一种数据维护方法及装置 | |
CN102045657A (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 |