CN112765182A - 云服务器集群间的数据同步方法及装置 - Google Patents
云服务器集群间的数据同步方法及装置 Download PDFInfo
- Publication number
- CN112765182A CN112765182A CN202110120849.2A CN202110120849A CN112765182A CN 112765182 A CN112765182 A CN 112765182A CN 202110120849 A CN202110120849 A CN 202110120849A CN 112765182 A CN112765182 A CN 112765182A
- Authority
- CN
- China
- Prior art keywords
- data
- cloud server
- cluster
- service
- server cluster
- 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.)
- Pending
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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
-
- 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
-
- 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
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种云服务器集群间的数据同步方法及装置。其中,方法包括:若本集群内有业务服务更新了Redis缓存数据,则判断所更新的数据对象是否为被监测的目标业务数据;若是,则根据更新内容适应性地修改第一哈希树;第一哈希树用于记录本集群内被监测的目标业务数据的最新数据状态;若所述目标业务数据被第一云服务器集群所关注,则通知所述第一云服务器集群所述目标业务数据发生变更,第一云服务器集群通过比对其维护的哈希树与第一哈希树确定更新内容,将更新内容同步至第一云服务器集群的Redis缓存中。本申请中提高了云服务器集群间的数据共享效率和安全性。
Description
技术领域
本申请涉及云计算技术领域,具体而言,涉及一种云服务器集群间的数据同步方法及装置。
背景技术
随着云计算技术的发展,依赖于云端强大的计算力,越来越多的云应用被部署在云端运行,在云应用大规模部署的场景下,云服务器的数量规模十分庞大,往往需要跨机房进行部署,不同机房的云服务器部署有不同的业务服务,在业务服务以分布式方式运行时,其在架构设计上往往依赖于Redis(Remote Dictionary Server,即远程字典服务)分布式缓存的方式实现系统稳定运行。而Redis缓存中的数据,有些是配置类的全局数据,这类数据的维护和配置是由运行于某个机房的配置服务执行,但是该类数据还需要被同步到其他机房网络的Redis缓存中供其机房的业务服务使用。例如:云游戏平台系统在跨机房部署时,分区机房内运行资源管理服务,该资源管服务在机房内部网络Redis缓存中维护云渲染引擎资源状态,而资源状态数据会同时被中心机房中的弹性伸缩等业务服务使用,进而场景中分区机房的云渲染引擎资源状态数据需要满足能够被中心机房的弹性伸缩等业务服务所获取。
相关技术中,上述Redis缓存数据的跨机房使用的实现方式一般是将需要跨机房使用的数据存储到公网统一的Redis存储系统中供有需要的机房进行访问获取,该方式需要将Redis服务在公网暴露,会给数据访问安全控制带来极大挑战(例如,出现Redis6379端口漏洞等);另外,该方式中多机房跨网访问缓存数据,对公网网络的带宽和质量会有很高的要求。
发明内容
有鉴于此,本申请提供一种云服务器集群间的数据同步方法及装置,以提高云服务器集群间的数据共享效率和安全性。
具体地,本申请是通过如下技术方案实现的:
第一方面,本申请实施例提供了一种云服务器集群间的数据同步方法,所述方法应用于云服务集群中的指定服务器,包括:
若本集群内有业务服务更新了Redis缓存数据,则判断所更新的数据对象是否为被监测的目标业务数据;
若是,则根据更新内容适应性地修改第一哈希树;其中,所述第一哈希树用于记录本集群内被监测的目标业务数据的数据状态;
若所述目标业务数据被第一服务器集群所关注,则通知所述第一云服务器集群,以使所述第一云服务器集群通过比对其维护的哈希树与所述第一哈希树确定更新内容,将所述更新内容同步至所述第一目标云服务器集群的Redis缓存中。
第二方面,本申请实施例提供了一种云服务器集群间的数据同步装置,应用于云服务集群中的指定服务器,包括:
判断模块,用于若本集群内有业务服务更新了Redis缓存数据,则判断所更新的数据对象是否为被监测的目标业务数据;
修改模块,用于根据更新内容适应性地修改第一哈希树;其中,所述第一哈希树用于记录本集群内被监测的目标业务数据的数据状态;
通知模块,用于若所述目标业务数据被第一服务器集群所关注,则通知所述第一云服务器集群所述目标业务数据发生变更,以使所述第一云服务器集群通过比对其维护的哈希树与所述第一哈希树确定更新内容,将所述更新内容同步至所述第一云服务器集群的Redis缓存中。
第三方面,本申请实施例提供了一种机器可读存储介质,机器可读存储介质上存储有若干计算机指令,计算机指令被执行时实现如第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机设备,包括:机器可读存储介质和处理器,机器可读存储介质:存储指令代码,处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中的指令代码,实现如第一方面所述的方法。
本申请实施例中提供的一种云服务器集群间的数据同步方法及装置,云端服务器集群内若有业务服务更新了Redis缓存数据,则判断该业务服务所更新的数据部分是否为被监测的目标业务数据,如果是,则对应更新第一哈希树,该第一哈希树用于记载本集群内所有被监测目标业务数据的变化状态,如果该目标业务数据被第一目标服务器集群所关注,则通知第一目标云服务器集群目标业务数据发生更新,以使该第一目标云服务器集群通过将其所维护的第三哈希树与本集群内所维护的第一哈希树进行比对,得出更新的内容,将更新的内容同步至第一目标云服务器集群的Redis缓存;进而本申请实施例中,通过维护哈希树的方式记录目标业务数据的更新状况,将云服务器集群内发生更新的数据及时同步至其他需要共享该数据的云服务器集群,相比于将Redis缓存数据直接暴露于公网实现跨集群共享的方式,具有数据安全性更高的积极效果。
附图说明
图1是本申请一示例性实施例示出的云服务器集群间的数据同步方法的应用场景示意图;
图2是本申请一示例性实施例示出的一种云服务器集群间的数据同步方法的流程示意图;
图3是本申请一示例性实施例示出的一种云服务器集群内的业务服务之间的数据同步方法的示意图;
图4是本申请另一示例性实施例提供的一种云服务器集群间的数据同步方法的流程示意图;
图5是本申请另一示例性实施例提供的将第二云服务器集群中目标业务数据的更新内容同步至本集群方法的流程示意图;
图6是本申请一示例性实施例示出的一种云服务器集群间的数据同步装置的结构示意图;
图7是本申请一示例性实施例示出的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1是本申请实施例提供的一种云服务器集群间数据同步方法的应用场景示意图;参照图1所示,在进行云端业务系统部署时,可能需要将实现该系统功能的各云服务器进行分机房部署;比如,云游戏业务系统中综合考虑用户地域分布、用户群体规模等因素,将系统中成千上万台云服务器进行分机房部署,本申请各实施例中,同一个云服务器集群中的各服务器处于相同的机房网络内。进而一个云端业务系统可能会包含有多个云服务器集群,本实施例中各云服务器集群通过Redis缓存实现数据的存储。
云服务器集群中部署有不同的业务服务,云服务器集群内所部署的业务服务有时需要跨集群使用其他集群内的业务服务所产生的业务数据,并且在云服务器集群内部的不同业务服务之间也可能需要共享一部分业务数据。
参照图1所示实施例,以一个业务系统中包含云服务器集群1、云服务器集群2、云服务器集群3……云服务器集群n为例,该1-n个云服务器集群分别设于机房1、机房2、机房3……机房n内,图示实施例中,云服务器集群1中的Redis缓存数据中包含有分别需要与云服务器集群2、云服务器集群3、云服务器集群n保持同步的业务数据,该分别需要与云服务器集群2、云服务器集群3、云服务器集群n保持同步的业务数据的数据类型和/或数据位置范围可以是相同或者是不同的;图示实施例中,云服务器集群3中包含有需要与云服务器集群n中的业务服务所共享的业务数据,进而当云服务器集群n内该业务数据发生更新后,需要将更新的数据同步至云服务器集群n供服务器集群n内的业务服务使用;本申请中通过在需要执行业务数据同步操作的云服务器集群内的指定云服务器上部署缓存更新服务,用于执行跨集群的目标业务数据同步,并通过第一哈希树记录目标业务数据的变化状态。
图2是本申请一示例性实施例所示出的一种云服务器集群间的数据同步方法的流程示意图;该方法应用于云服务器集群中的指定服务器,参照图2所示,该方法包括如下步骤S10-S60:
S10、在初始化过程中,加载配置文件;其中,所述配置文件中包含有本集群中需要进行更新监测的目标业务数据的数据类型和存储位置。
示例性地,上述目标业务数据的存储位置用Redis key分布范围进行标识。
S20、根据所述配置文件中所包含的所述目标业务数据的数据类型和存储位置从本集群Redis缓存中获取所述目标业务数据当前数据状态,生成用于记录所述目标业务最新数据状态的第一哈希树。
本实施例中,在初始化时读取配置文件,根据读取到的目标业务数据的数据类型和存储位置判断本集群Redis缓存中的哈希树是否与配置文件中所包含的被监测目标业务数据的当前最新状态相一致,若否,则根据当前目标业务数据的最新状态更新该Redis缓存哈希树,得到本集群第一哈希树;若是,则上述本集群Redis缓存哈希树即为所述的第一哈希树;第一哈希树在Redis缓存中进行存储的。需要说明的是,本申请中的第一哈希树与第二哈希树是相对而言的,仅作为区别用途。
示例性地,若Redis缓存哈希树中包含的数据节点没有完全包括配置文件中所设定的目标业务数据所对应的数据节点,则从Redis缓存读取该业务数据并计算数据哈希值,按照配置文件中所设定目标业务数据Redis key分布范围对应的数据节点及其对应的哈希值、更新时间更新Redis缓存哈希树;若缓存哈希树的节点数多于配置文件中设定的Rediskey分布范围对应的数据节点,则将该缓存哈希树中多出的部分节点删除;若配置文件中的Redis key分布范围和缓存哈希树中的数据节点一致,则查找该节点的哈希值最后更新时间,若更新时间距离当前时间超过更新周期(比如根据读写频率等因素,配置为10分钟),则重新读取Redis缓存数据,重新计算哈希值,判断该哈希值与缓存哈希树中对应节点的哈希值是否一致,若不一致,则将该哈希值更新到该节点上。
可选地,本申请一实施例中,上述方法中,每间隔指定时间段查询第一哈希树各数据节点的哈希值最后更新时间,对于最后更新时间距离当前时间超过设定的更新周期的,重新读取对应的Redis缓存数据并计算哈希值,将该哈希值与第一哈希树中的数据节点的哈希值进行比对,若不一致,则更新第一哈希树该数据节点的哈希值和更新时间,以使第一哈希树中所记录的目标业务数据的状态为最新状态。
进而,本申请中,云服务器集群自动维护本集群网络中的第一哈希树,第一哈希树上记录了redis缓存数据中参与执行数据同步处理的目标业务数据的最新状态,目标业务数据的状态使用数据的哈希值来表示,第一哈希树上的一个分支节点用于表征一个类型的目标业务数据,该分支节点配置有数据Redis key分布范围和哈希值最后一次更新的时间。
示例性地,上述业务数据的类型,比如可以包括:应用基本信息数据、租户基本信息数据、应用分辨率数据等类型。
S30、若本集群内有业务服务更新了Redis缓存数据,则判断所更新的数据对象是否为被监测的目标业务数据。
云服务器集群中部署有不同的业务服务,业务服务在工作过程中会产生新的数据,本集群中的不同数据类型或者不同数据分布范围的Redis缓存数据可能会被不同机房的不同业务服务所使用,因此,本云服务器集群中可能包含有不同的被监测目标业务数据,该不同的目标业务数据的数据类型不同,或者是数据类型相同但是需同步数据的Rediskey分布范围不同。
示例性地,云服务器集群内的业务服务更新了Redis缓存数据后,会向云服务器集群内部署了缓存更新服务的指定服务器发送Redis缓存数据更新通知,该更新通知包含有更新内容的信息,服务器接收到该更新通知后,根据更新内容的信息和第一哈希树的所记录的目标业务数据,判断所更新的业务数据是否为被监测的目标业务数据。
S40、若是,则根据更新内容适应性地修改第一哈希树;其中,所述第一哈希树用于记录本集群内被监测的目标业务数据的最新数据状态。
本申请实施例中,上述更新内容的信息包括所更新的业务数据的数据类型和Redis key分布范围,如果该数据类型被记录在第一哈希树中,则根据数据Redis key分布范围读取更新后的业务数据,根据更新后的业务数据重新计算哈希值,将计算得到的哈希值和更新时间更新至第一哈希树中。
S50、若所述目标业务数据被第一云服务器集群所关注,则通知所述第一云服务器集群,以使所述第一云服务器集群通过比对其维护的哈希树与所述第一哈希树确定更新内容,将所述更新内容同步至所述第一目标云服务器集群的Redis缓存中。
两个独立的云服务器集群间,每个集群内部分别部署了Redis服务,Redis服务只允许在本集群内部内网访问。在一个云服务器集群中的业务服务需要使用另一个云服务器集群中的业务数据情况下,需要将另一个服务器集群中的该业务数据的更新内容同步至云服务器集群内的Redis缓存。
本实施例中,在本集群内的业务服务更新了目标业务数据后,会跨集群通知其他需要同步该目标业务数据的云服务器集群。
S60、若所述目标业务数据被本集群内的第一业务服务所关注,则通知所述第一业务服务所述目标业务数据发生更改,以使所述第一业务服务将所述目标业务数据的更新内容同步至所述第一业务服务对应的本地内存。
在云服务器集群的规模比较大时,redis分布式缓存中存储的业务数据的数据种类和数据量是十分巨大的,redis服务的网络读取压力较大,对于部分业务服务,为提高处理效率,将其所需要使用的某些业务数据(该类业务数据变动的频率较低,但是需要频繁访问)存储至对应的本地内存,这些业务服务在使用这些业务数据的时候,从本地内存读取;并且,如果该业务数据是有其他业务服务所产生的,则需要保持本地内存中存储的业务数据与redis缓存中的业务数据保持同步。
参照图3所示,第一业务服务1为了提高数据处理性能和效率会在其服务器本地内存存储部分数据,这部分数据也会在Redis缓存服务中进行存储,当第一业务服务n更改了Redis缓存中的被第一业务服务1所关注的目标业务数据,第一业务服务1需要把其本地内存的数据同步进行更新。
本实施例中,仅限当前集群数据发生变化时,才需要触发通知其他集群,从其他集群同步过来的数据发生变化,仅需要通知本机房的业务模块。
而本实施例中,通过哈希树机制,在有业务服务更新了Redis缓存数据后,及时通知本集群内的关注了该目标业务数据的业务服务,使该关注了该目标业务数据的业务服务及时将更改后的数据同步至其对应的内存,相对于以接口形式对外提供缓存数据的实时查询能力的方式,节省了大量接口的设计和开发工作。
因此,本申请所提供的技术方案实现了一种跨机房的Redis缓存数据同步机制,通过灵活的配置手段,实现大型业务系统中的业务低耦合、规则统一化、通用的数据同步功能。
本实施例中,上述第一业务服务初始化时向本集群指定服务器注册数据变更关注,指定服务器会记录并维护数据该变更关注关系;进而,在上述步骤S60之前,所述方法,还包括如下步骤A10-A20:
步骤A10、接收本集群内需要进行所述目标业务数据同步的第一业务服务发送的第一注册请求。
步骤A20、将所述第一业务服务和所述目标业务数据进行关联,以使所述指定服务器通过查询所述目标业务数据所关联的业务服务得到关注所述目标业务数据的第一业务服务。
本实施例中,云服务器集群中的业务服务会根据业务需要向本集群内的缓存更新服务发送第一注册请求,该第一注册请求中包含有:目标业务服务的信息和所关注的目标业务数据的信息,该目标业务数据的信息包括:所关注的业务数据的存储位置(可以用Redis key分布范围进行标识)和数据类型,目标业务服务的信息包括:服务名称和服务通信地址。
参照图4所示,本申请一实施例中,上述在初始化过程中,所述方法还包括如下步骤S70-S80:
S70、若配置文件中包含了需要进行指定业务数据关注注册的第二云服务器集群信息,则向所述第二云服务器集群发送针对所述指定业务数据的第二注册请求,以使在注册成功后所述第二云服务器集群在所述指定业务数据发生更新的情况下通知所述指定服务器进行数据同步。
本实施例中,缓存更新服务在初始化时,通过读取配置文件向第二云服务器集群注册数据变更通知,注册给第二云服务器集群的数据包含:集群标识、通知地址、所关注数据的信息(数据类型、数据分布范围)。
本申请一可能的实施例中,上述方法,还包括如下步骤S70:
S80、若接收到所述第二云服务器集群所发送的目标业务数据的更新通知,则将所述第二云服务器集群中所述目标业务数据的更新内容同步至本集群。
本申请一实施例中,上述方法,还包括与第二集群服务器进行数据同步的过程,参照图5所示,该方法,包括如下步骤S81-S84:
S81、若接收到所述第二云服务器集群所发送的指定业务数据的更新通知,从所述第二云服务器集群中获取其第三哈希树中记录的所关注的所述指定业务数据的状态。
S82、将所述状态与本集群的第二哈希树中的所述指定业务数据的状态进行比对;其中,所述第二哈希树用于记录本集群内的从其他云服务器集群所同步过来的指定业务数据的最新数据状态。
S83、根据比对结果确定所述第二云服务器集群中的待进行同步的更新内容,从所述第二云服务集群获取所述更新内容同步至本集群内的Redis缓存中,并适应性的修改本集群的所述第二哈希树。
本申请中,本集群的缓存更新服务会维护两个哈希树:第一哈希树(selfHashTree)是用于维护源自当前集群的数据状态,第二哈希树维护的是从其他集群同步过来的数据的数据状态,用于跟其他集群的selfHashTree(上述的第三哈希树)做状态比对。哈希树中的数据状态就是记录的目标业务数据的哈希值,是通过一定的散列算法(比如MD5)计算目标业务数据得出的数值。
上述Redis Key具体是指在Redis分布式缓存服务中,一个具体业务数据的存储唯一标识,基于该标识可以针对该业务数据做读写操作。
示例性地,上述hash树的结构有三层,顶层为根节点,存储了一个hash值,hash值计算自中间所有分支节点的hash值组合,hash树分支节点维护了数据类型和一个hash值,分支节点hash值计算自该分支节点下的所有叶子节点上的hash值组合,hash树叶子节点记录了具体的业务数据在redis缓存服务中的存储位置(Redis Key),对应业务数据的hash值以及存储结构类别。
本申请中,云服务器集群收到数据变更通知后,调用第二云服务器集群的获取数据节点hash列表接口,传入所关注的业务数据的信息,第二云服务器集群将该数据状态hash列表返回给云服务器集群;云服务器集群收到hash列表后,与其维护的第一哈希树做状态比对,针对第二云服务器集群中新增的数据key或key值相同但hash值不同的情况,云服务器集群调用第二云服务器集群-缓存更新服务的读取缓存数据接口,获取对应的Rediskey的数据,然后更新到云服务器集群Redis服务中,再向云服务器集群Redis执行数据写入时,其Redis Key的构成需要增加云服务器集群的机房标识前缀,以区分不同机房Redis的key命名体系有重读的情况。针对第二云服务器集群中已经删除但在云服务器集群依然维护的数据,需要在云服务器集群的对应的syncHashTree中删除对应hash值节点信息。
云服务器集群执行完Redis数据更新后,将对应的syncHashTree的节点状态做变更,然后更新到Redis进行存储,根据变更的数据范围,匹配注册了数据变更关注的业务模块,得出机房Y-业务服务需要通知其数据D[C]已经发生变动。
本申请一实施例中,上述方法还包括:
在注册成功后定期将所述第一哈希树与所述第二云服务器集群的第三哈希树进行指定业务数据的状态比对,若状态不一致,则触发执行将所述第二云服务器集群中所述指定业务数据的更新内容同步至本集群。
本集群通过获取hash树信息接口获取第三哈希树,然后跟本集群维护的第二哈希树做hash比对,如果hash值一致,则不需要执行数据同步,如果hash值有差异,则调用第二云服务器集群数据读取接口,获取对应的数据,然后更新到本集群Redis缓存中,然后更新本集群的第二哈希树数据同步hash数。
图6是本申请一示例性实施例示出的一种云服务器集群间的数据同步装置的结构示意图;参照图6所示,该装置600应用于云服务集群中的指定服务器,包括:
判断模块601,用于若本集群内有业务服务更新了Redis缓存数据,则判断所更新的数据对象是否为被监测的目标业务数据;
修改模块602,用于根据更新内容适应性地修改第一哈希树;其中,所述第一哈希树用于记录本集群内被监测的目标业务数据的数据状态;
第一通知模块603,用于若所述目标业务数据被第一云服务器集群所关注,则通知所述第一云服务器集群所述目标业务数据发生变更,以使所述第一云服务器集群通过比对其维护的哈希树与所述第一哈希树确定更新内容,将所述更新内容同步至所述第一云服务器集群的Redis缓存中。
可选地,上述装置600,还包括:
加载模块,用于在初始化过程中,加载配置文件;其中,所述配置文件中包含有本集群中需要进行更新监测的目标业务数据的数据类型和存储位置;
第一哈希树生成模块,用于根据所述配置文件中所包含的所述目标业务数据的数据类型和存储位置从本集群Redis缓存中获取所述目标业务数据当前数据状态,生成用于记录所述目标业务数据状态的第一哈希树。
可选地,上述装置还包括:
第二通知模块,用于若所述目标业务数据被本集群内的第一业务服务所关注,则通知所述第一业务服务所述目标业务数据发生更改,以使所述第一业务服务将所述目标业务数据的更新内容同步至所述第一业务服务对应的本地内存。
可选地,上述装置,还包括:
接收模块,用于接收本集群内需要进行所述目标业务数据同步的第一业务服务发送的第一注册请求;
关联模块,用于将所述第一业务服务和所述目标业务数据进行关联,以使所述指定服务器通过查询所述目标业务数据所关联的业务服务得到关注所述目标业务数据的第一业务服务。
可选地,上述装置,还包括:
发送模块,用于若所述配置文件中包含了需要进行指定业务数据关注注册的第二云服务器集群信息,则向所述第二云服务器集群发送针对所述指定业务数据的第二注册请求,以使在注册成功后所述第二云服务器集群在所述指定业务数据发生更新的情况下通知所述指定服务器进行数据同步。
可选地,上述装置600,还包括:
更新模块,用于若接收到所述第二云服务器集群发送的指定业务数据的更新通知,则将所述第二云服务器集群中所述指定业务数据的更新内容同步至本集群。
可选地,上述更新模块,具体用于:
若接收到所述第二云服务器集群所发送的指定业务数据的更新通知,从所述第二云服务器集群中获取其第三哈希树中记录的所关注的所述指定业务数据的状态;
将所述状态与本集群的第二哈希树中的所述指定业务数据的状态进行比对;其中,所述第二哈希树用于记录本集群内的从其他云服务器集群所同步过来的指定业务数据的最新数据状态;
根据比对结果确定所述第二云服务器集群中的待进行同步的更新内容,从所述第二云服务集群获取所述更新内容同步至本集群内的Redis缓存中,并适应性的修改本集群的所述第二哈希树。
可选地,上述装置,还包括:
比对模块,用于在注册成功后定期将所述第二哈希树与所述第二云服务器集群的第三哈希树进行指定业务数据的状态比对,若状态不一致,则触发执行将所述第二云服务器集群中所述指定业务数据的更新内容同步至本集群。
本申请另一实施例中还提供了一种机器可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的云应用的部署方法的步骤。
图7是本申请本申请实施例示出的一种计算机设备的结构示意图。参照图7所示,该计算机设备700,至少包括存储器702和处理器701;所述存储器702通过通信总线703和所述处理器701连接,用于存储所述处理器701可执行的指令代码;所述处理器701用于从所述存储器702读取和执行指令代码以实现上述任一实施例所述的云应用的部署方法的步骤。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种云服务器集群间的数据同步方法,其特征在于,所述方法应用于云服务集群中的指定服务器,包括:
若本集群内的业务服务更新了Redis缓存数据,则判断所更新的数据对象是否为被监测的目标业务数据;
若是,则根据更新内容适应性地修改第一哈希树;其中,所述第一哈希树用于记录本集群内被监测的目标业务数据的最新数据状态;
若所述目标业务数据被第一云服务器集群所关注,则通知所述第一云服务器集群所述目标业务数据发生变更,以使所述第一云服务器集群通过比对其维护的哈希树与所述第一哈希树确定更新内容,将所述更新内容同步至所述第一云服务器集群的Redis缓存中。
2.根据权利要求1所述的方法,其特征在于,在所述判断所更新的数据对象是否为被监测的目标业务数据之前,所述方法,还包括:
在初始化过程中,加载配置文件;其中,所述配置文件中包含有本集群中需要进行更新监测的目标业务数据的数据类型和存储位置;
根据所述配置文件中所包含的所述目标业务数据的数据类型和存储位置从本集群Redis缓存中获取所述目标业务数据当前数据状态,生成用于记录所述目标业务数据状态的第一哈希树。
3.根据权利要求1或2所述的方法,其特征在于,在判断所更新的数据对象为被监测的目标业务数据之后,所述方法还包括:
若所述目标业务数据被本集群内的第一业务服务所关注,则通知所述第一业务服务所述目标业务数据发生更改,以使所述第一业务服务将所述目标业务数据的更新内容同步至所述第一业务服务对应的本地内存。
4.根据权利要求3所述的方法,其特征在于,在所述通知所述第一业务服务所述目标业务数据发生更改之前,所述方法,还包括:
接收本集群内需要进行所述目标业务数据同步的第一业务服务发送的第一注册请求;
将所述第一业务服务和所述目标业务数据进行关联,以使所述指定服务器通过查询所述目标业务数据所关联的业务服务得到关注所述目标业务数据的第一业务服务。
5.根据权利要求2所述的方法,其特征在于,所述在初始化过程中,所述方法,还包括:
若配置文件中包含了需要进行指定业务数据关注注册的第二云服务器集群信息,则向所述第二云服务器集群发送针对所述指定业务数据的第二注册请求,以使在注册成功后所述第二云服务器集群在所述指定业务数据发生更新的情况下通知所述指定服务器进行数据同步。
6.根据权利要求5所述的方法,其特征在于,所述方法,还包括:
若接收到所述第二云服务器集群发送的所述指定业务数据的更新通知,则将所述第二云服务器集群中所述指定业务数据的更新内容同步至本集群。
7.根据权利要求6所述的方法,其特征在于,所述若接收到所述第二云服务器集群发送的指定业务数据的更新通知,则将所述第二云服务器集群中所述指定业务数据的更新内容同步至本集群,包括:
若接收到所述第二云服务器集群所发送的所述第二云服务器集群内的所述指定业务数据的更新通知,从所述第二云服务器集群中获取第三哈希树中记录的所述指定业务数据的状态;
将所述状态与本集群的第二哈希树中的所述指定业务数据的状态进行比对;其中,所述第二哈希树用于记录本集群内的需从其他云服务器集群所同步过来的指定业务数据的最新数据状态;
根据比对结果确定所述第二云服务器集群中的待进行同步的更新内容,从所述第二云服务集群获取所述更新内容同步至本集群内的Redis缓存中,并适应性的修改本集群的所述第二哈希树。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在注册成功后,定期将所述第二哈希树与所述第二云服务器集群的第三哈希树进行指定业务数据的状态比对,若状态不一致,则触发执行将所述第二云服务器集群中所述指定业务数据的更新内容同步至本集群。
9.一种云服务器集群间的数据同步装置,其特征在于,应用于云服务集群中的指定服务器,包括:
判断模块,用于若本集群内有业务服务更新了Redis缓存数据,则判断所更新的数据对象是否为被监测的目标业务数据;
修改模块,用于根据更新内容适应性地修改第一哈希树;其中,所述第一哈希树用于记录本集群内被监测的目标业务数据的数据状态;
通知模块,用于若所述目标业务数据被第一云服务器集群所关注,则通知所述第一云服务器集群所述目标业务数据发生变更,以使所述第一云服务器集群通过比对其维护的哈希树与所述第一哈希树确定更新内容,将所述更新内容同步至所述第一云服务器集群的Redis缓存中。
10.一种机器可读存储介质,其特征在于,机器可读存储介质上存储有若干计算机指令,计算机指令被执行时执行如权利要求1-8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110120849.2A CN112765182A (zh) | 2021-01-28 | 2021-01-28 | 云服务器集群间的数据同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110120849.2A CN112765182A (zh) | 2021-01-28 | 2021-01-28 | 云服务器集群间的数据同步方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112765182A true CN112765182A (zh) | 2021-05-07 |
Family
ID=75706539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110120849.2A Pending CN112765182A (zh) | 2021-01-28 | 2021-01-28 | 云服务器集群间的数据同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112765182A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220669A (zh) * | 2021-06-09 | 2021-08-06 | 京东科技控股股份有限公司 | 业务数据的处理方法、装置及电子设备 |
CN114401319A (zh) * | 2022-01-17 | 2022-04-26 | 星环信息科技(上海)股份有限公司 | 一种请求处理方法、装置、服务器及存储介质 |
CN114500655A (zh) * | 2022-04-15 | 2022-05-13 | 武汉中科通达高新技术股份有限公司 | 接口请求处理方法、装置、微服务框架的集群系统及介质 |
CN114615025A (zh) * | 2022-02-22 | 2022-06-10 | 中国建设银行股份有限公司 | 一种密钥同步处理方法和装置 |
CN117251434A (zh) * | 2023-11-20 | 2023-12-19 | 深圳万物安全科技有限公司 | 数据对比方法、服务器及可读存储介质 |
CN117348975A (zh) * | 2023-12-05 | 2024-01-05 | 中电云计算技术有限公司 | 集群的部署方法、装置、设备及存储介质 |
CN114401319B (zh) * | 2022-01-17 | 2024-05-10 | 星环信息科技(上海)股份有限公司 | 一种请求处理方法、装置、服务器及存储介质 |
-
2021
- 2021-01-28 CN CN202110120849.2A patent/CN112765182A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220669A (zh) * | 2021-06-09 | 2021-08-06 | 京东科技控股股份有限公司 | 业务数据的处理方法、装置及电子设备 |
CN113220669B (zh) * | 2021-06-09 | 2024-04-16 | 京东科技控股股份有限公司 | 业务数据的处理方法、装置及电子设备 |
CN114401319A (zh) * | 2022-01-17 | 2022-04-26 | 星环信息科技(上海)股份有限公司 | 一种请求处理方法、装置、服务器及存储介质 |
CN114401319B (zh) * | 2022-01-17 | 2024-05-10 | 星环信息科技(上海)股份有限公司 | 一种请求处理方法、装置、服务器及存储介质 |
CN114615025A (zh) * | 2022-02-22 | 2022-06-10 | 中国建设银行股份有限公司 | 一种密钥同步处理方法和装置 |
CN114615025B (zh) * | 2022-02-22 | 2024-05-03 | 中国建设银行股份有限公司 | 一种密钥同步处理方法和装置 |
CN114500655A (zh) * | 2022-04-15 | 2022-05-13 | 武汉中科通达高新技术股份有限公司 | 接口请求处理方法、装置、微服务框架的集群系统及介质 |
CN117251434A (zh) * | 2023-11-20 | 2023-12-19 | 深圳万物安全科技有限公司 | 数据对比方法、服务器及可读存储介质 |
CN117348975A (zh) * | 2023-12-05 | 2024-01-05 | 中电云计算技术有限公司 | 集群的部署方法、装置、设备及存储介质 |
CN117348975B (zh) * | 2023-12-05 | 2024-03-15 | 中电云计算技术有限公司 | 集群的部署方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112765182A (zh) | 云服务器集群间的数据同步方法及装置 | |
US9703790B1 (en) | System and method for managing data on a network | |
US9317519B2 (en) | Storage system for eliminating duplicated data | |
EP2414928B1 (en) | Data redistribution in data replication systems | |
CN109597567B (zh) | 一种数据处理方法和装置 | |
EP1589691B1 (en) | Method, system and apparatus for managing computer identity | |
JP2015512551A (ja) | ネットワーク・インフラストラクチャにおけるデータ記憶及び編成を容易にするコンシステント・リング名前空間 | |
CN106873902B (zh) | 一种文件存储系统、数据调度方法及数据节点 | |
CN115510156A (zh) | 一种云原生高可用数据库服务提供系统及方法 | |
CN107038092B (zh) | 一种数据复制方法及装置 | |
CN108304144B (zh) | 数据写入、读取方法与系统、数据读写系统 | |
US20130318086A1 (en) | Distributed file hierarchy management in a clustered redirect-on-write file system | |
CN113672255A (zh) | 一种分布式存储软件升级方法及装置 | |
CN110442645B (zh) | 数据索引方法及装置 | |
CN112000850A (zh) | 进行数据处理的方法、装置、系统及设备 | |
CN111767282A (zh) | 基于MongoDB的存储系统及数据插入方法和存储介质 | |
CN114840487A (zh) | 分布式文件系统的元数据管理方法和装置 | |
CN113032408B (zh) | 数据处理方法、系统及设备 | |
CN107168645B (zh) | 一种分布式系统的存储控制方法及系统 | |
CN114528260A (zh) | 文件访问请求的处理方法、电子设备及计算机程序产品 | |
CN109343959B (zh) | 多用户计算和IO密集型SaaS系统及应用方法 | |
CN107066206B (zh) | 一种分布式物理磁盘的存储控制方法及系统 | |
CN111399753A (zh) | 写入图片的方法和装置 | |
CN111221623A (zh) | 镜像库管理系统 | |
CN113868605B (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 |