CN109522294A - 一种分布式数据缓存系统和数据缓存方法 - Google Patents
一种分布式数据缓存系统和数据缓存方法 Download PDFInfo
- Publication number
- CN109522294A CN109522294A CN201811355132.0A CN201811355132A CN109522294A CN 109522294 A CN109522294 A CN 109522294A CN 201811355132 A CN201811355132 A CN 201811355132A CN 109522294 A CN109522294 A CN 109522294A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- node
- cache node
- module
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000004891 communication Methods 0.000 claims abstract description 27
- 230000001360 synchronised effect Effects 0.000 claims abstract description 13
- 238000011084 recovery Methods 0.000 claims abstract description 10
- 230000005012 migration Effects 0.000 claims description 3
- 238000013508 migration Methods 0.000 claims description 3
- 230000003111 delayed effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种分布式数据缓存系统和数据缓存方法,在分布式数据缓存系统中,缓存管理模块,用于建立和管理缓存节点,以及协调各模块间工作;缓存通信模块,用于向所述缓存同步模块发送从目标缓存节点获取的更新数据;更新数据为所述目标缓存节点对所缓存数据进行更新的数据,缓存同步模块,用于将通过所述缓存通信模块获取的更新数据分发到所述多个缓存节点中;缓存节点,用于从所述缓存同步模块获取所述更新数据,并根据所述更新数据进行数据同步。由此使得在数据同步之后,多个缓存节点所缓存的数据一致,不论系统中任意一个缓存节点退出或失效,都不会造成数据的损失,具有良好的数据冗余备份和失败恢复功能,提高了系统的稳定性。
Description
技术领域
本申请涉及领域,特别是涉及分布式数据缓存。
背景技术
随着目前很多行业所要处理的数据规模越来越大,行业的业务系统面对大量并发请求的处理能力越来越重要。在整个业务系统架构中,数据库层的访问速度会成为整个业务系统的瓶颈。
为此,可以通过数据缓存技术缓存数据库的查询结果,当下次访问同样数据时,可以直接从缓存中取,有效地降低了数据库层的访问负载量,提高了系统性能。但是,随着用户的不断增加,一台或者几台服务器的性能根本无法满足大量的并发请求,这种情况下就要使用服务器集群,而在集群环境下的数据缓存就是分布式数据缓存。
然而,目前的分布式数据缓存系统在数据冗余备份和失败恢复方面存在不足,难以满足当前的数据缓存需求。
发明内容
为了解决上述技术问题,本申请提供了一种分布式数据缓存系统和数据缓存方法,具有良好的数据冗余备份和失败恢复功能,提高了系统的稳定性。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供了一种分布式数据缓存系统,所述系统包括缓存同步模块、缓存通信模块、缓存管理模块和多个缓存节点:
所述缓存管理模块,用于建立和管理缓存节点,以及协调各模块间工作;
所述缓存通信模块,用于向所述缓存同步模块发送从目标缓存节点获取的更新数据;所述更新数据为所述目标缓存节点对所缓存数据进行更新的数据,所述目标缓存节点为所述多个缓存节点中的任意一个;
所述缓存同步模块,用于将通过所述缓存通信模块获取的更新数据分发到所述多个缓存节点中;
所述缓存节点,用于从所述缓存同步模块获取所述更新数据,并根据所述更新数据进行数据同步。
可选的,所述系统还包括替换算法模块:
所述替换算法模块,用于通过缓存替换算法计算所述多个缓存节点所缓存数据中是否包括被替换数据,所述被替换数据为对缓存节点所缓存数据进行数据替换时的替换对象。
可选的,所述缓存替换算法包括FIFO、LRU、LFU中的任意一种或多种的组合。
可选的,所述系统还包括可靠性服务模块:
所述可靠性服务模块,用于为缓存节点间进行数据迁移和失败恢复。
可选的,所述可靠性服务模块还用于当所述系统新加入缓存节点时,将所述缓存节点所缓存的数据复制到所述新加入缓存节点中。
可选的,所述缓存通信模块在所述系统中采用一套通信协议。
可选的,所述多个缓存节点为应用服务器集群中的多个服务器。
第二方面,本申请实施例提供了一种分布式数据缓存方法,应用于分布式数据缓存系统,所述系统中包括多个缓存节点,所述方法包括:
目标缓存节点获取更新数据;
所述目标缓存节点将所述更新数据更新到本地缓存中;
所述目标缓存节点向所述系统的其他缓存节点发送所述更新数据,以便其他缓存节点根据所述更新数据进行数据同步。
可选的,所述更新数据包括对数据的新增、替换、删除。
可选的,在所述数据同步之后,所述多个缓存节点所缓存的数据一致。
由上述技术方案可以看出,在分布式数据缓存系统包括缓存同步模块、缓存通信模块、缓存管理模块和多个缓存节点:所述缓存管理模块,用于建立和管理缓存节点,以及协调各模块间工作;所述缓存通信模块,用于向所述缓存同步模块发送从目标缓存节点获取的更新数据;所述更新数据为所述目标缓存节点对所缓存数据进行更新的数据,所述目标缓存节点为所述多个缓存节点中的任意一个;所述缓存同步模块,用于将通过所述缓存通信模块获取的更新数据分发到所述多个缓存节点中;所述缓存节点,用于从所述缓存同步模块获取所述更新数据,并根据所述更新数据进行数据同步。由此使得在数据同步之后,所述多个缓存节点所缓存的数据一致,不论系统中任意一个缓存节点退出或失效,都不会造成数据的损失,具有良好的数据冗余备份和失败恢复功能,提高了系统的稳定性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一种分布式数据缓存系统的系统架构图;
图2为本申请实施例提供的一种分布式数据缓存系统的系统结构图;
图3为本申请实施例提供的一种数据缓存方法的方法流程图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
由于目前的分布式数据缓存系统在数据冗余备份和失败恢复方面存在不足,难以满足当前的数据缓存需求。为此,本申请实施例提供了一种分布式数据缓存系统和数据缓存方法,在数据同步之后,所述多个缓存节点所缓存的数据一致,不论系统中任意一个缓存节点退出或失效,都不会造成数据的损失,具有良好的数据冗余备份和失败恢复功能,提高了系统的稳定性。
在现代企业应用分层架构中,数据缓存层通常以中间件的形式存在于数据库层的前面,常见的应用架构见图1所示。本缓存系统部署在应用服务器集群上,即在应用程序层缓存数据,第一次请求时访问数据库层查询数据,同时将数据缓存起来,将来有相同请求时,直接从缓存系统中返回数据,减小了数据库层的压力,有效提高了系统的整体性能。
图2为本申请实施例提供的一种分布式数据缓存系统的系统结构图,所述系统包括缓存同步模块、缓存通信模块、缓存管理模块和多个缓存节点(在图2中未示出)。
所述缓存管理模块,用于建立和管理缓存节点,以及协调各模块间工作。
缓存管理模块在本系统中由CacheManager类来实现,它是整个缓存系统的入口点,负责初始化系统的所有配置信息,建立和管理缓存对象,以及协调各模块间工作。初始化过程如下:首先构造CacheManager对象,调用init()方法,该方法先调用ConfigurationFactory类的parseConfiguration()方法构造一个Configuration类对象,然后用Configuration对象构造一个ConfigurationHelper类对象,最后以该ConfigurationHelper对象为参数,调用CacheManager类的configure()方法完成所有配置信息的初始化。
所述缓存通信模块,用于向所述缓存同步模块发送从目标缓存节点获取的更新数据;所述更新数据为所述目标缓存节点对所缓存数据进行更新的数据,所述目标缓存节点为所述多个缓存节点中的任意一个。
所述缓存同步模块,用于将通过所述缓存通信模块获取的更新数据分发到所述多个缓存节点中。
在本申请实施例所提供的分布式数据缓存系统,必然缓存要工作在集群中的多台机器(即缓存节点)上,那么缓存数据如何在集群中的缓存节点间分布就很重要,它保证了缓存数据在集群上的正确性。当集群中某个缓存节点的缓存数据过期或有数据更新时,如何保证所有节点间的缓存数据同步,这就需要有效的同步机制来保证缓存节点间的数据相同。本申请实施例所提供的分布式数据缓存系统实现了其中一种分布式缓存:复制缓存。
复制缓存就是集群中每一缓存节点的缓存内容都是一致的,每个缓存节点都有一份缓存数据的完整备份。当任意一个缓存节点例如目标缓存节点中的复制缓存中有数据更新时,并不需要使用数据分布算法,目标缓存节点可以直接把数据更新到本地机器的复制缓存中,然后调用缓存通信模块把更新消息发送给集群中其它节点,保证所有节点缓存数据同步。
在一种可能的实现方式中,所述缓存通信模块在所述系统中采用一套通信协议。,用于缓存节点间的通信。通信模块的调用是通过给复制缓存和分布式缓存注册监听器的方式实现的。通信模块主要由类JGroupsManager实现。
所述缓存节点,用于从所述缓存同步模块获取所述更新数据,并根据所述更新数据进行数据同步。
在一种可能的实现方式中,所述多个缓存节点为应用服务器集群中的多个服务器。
可见,在分布式数据缓存系统包括缓存同步模块、缓存通信模块、缓存管理模块和多个缓存节点:所述缓存管理模块,用于建立和管理缓存节点,以及协调各模块间工作;所述缓存通信模块,用于向所述缓存同步模块发送从目标缓存节点获取的更新数据;所述更新数据为所述目标缓存节点对所缓存数据进行更新的数据,所述目标缓存节点为所述多个缓存节点中的任意一个;所述缓存同步模块,用于将通过所述缓存通信模块获取的更新数据分发到所述多个缓存节点中;所述缓存节点,用于从所述缓存同步模块获取所述更新数据,并根据所述更新数据进行数据同步。由此使得在数据同步之后,所述多个缓存节点所缓存的数据一致,不论系统中任意一个缓存节点退出或失效,都不会造成数据的损失,具有良好的数据冗余备份和失败恢复功能,提高了系统的稳定性。
在一种可能的实现方式中,所述系统还包括替换算法模块:
所述替换算法模块,用于通过缓存替换算法计算所述多个缓存节点所缓存数据中是否包括被替换数据,所述被替换数据为对缓存节点所缓存数据进行数据替换时的替换对象。
在一种可能的实现方式中,所述缓存替换算法包括先进先出算法FIFO、最近最少使用算法LRU、最不经常使用算法LFU中的任意一种或多种的组合。
缓存替换算法指出当缓存空间满时如何选择缓存中被替换对象。本缓存系统实现了可以包括三种替换算法的应用:先进先出算法(First Input First Output,FIFO)、最近最少使用算法(Least Recently Used,LRU)、最不经常使用算法(least frequently used,LFU)。
其中,通过FIFO进行数据替换时,选择最早放入缓存的对象替换。该算法由类FIFOPolicy实现,每次替换时,从缓存中选择更新时间或者创建时间最早的对象换出缓存。
通过LRU进行数据替换时,选择最近最少使用的对象替换出缓存,很适合具有高局部性的数据访问模式,但对顺序访问模式表现的很糟糕。该算法由类LRUPolicy实现,每次从缓存中选择上一次被访问时间最早的对象换出缓存。
通过LFU选择缓存中被最少访问的对象进行替换,适合具有不相关访问模型的应用。该算法由类LFUPolicy实现,每次从缓存中选择被访问次数最少的对象换出缓存。
不同的算法不同的适用场景,具体如何使用本申请不做限定。
在一种可能的实现方式中,所述系统还包括可靠性服务模块:
所述可靠性服务模块,用于为缓存节点间进行数据迁移和失败恢复。
在一种可能的实现方式中,所述可靠性服务模块还用于当所述系统新加入缓存节点时,将所述缓存节点所缓存的数据复制到所述新加入缓存节点中。
当有新缓存节点加入集群或有节点退出集群时,可靠性服务模块会被动态的调用,可靠性服务模块由Coordinator类实现。
先说明复制缓存的可靠性服务,复制缓存集群中有一个缓存节点退出或失效时,不必做任何处理,因为集群中的所有节点都保存了整个缓存的一份副本。复制缓存集群中有一个新缓存节点加入时,调用Coordinator类进行处理。
图3为本申请实施例提供的一种分布式数据缓存方法的方法流程图,应用于分布式数据缓存系统,所述系统中包括多个缓存节点,所述方法包括:
301:目标缓存节点获取更新数据;
302:所述目标缓存节点将所述更新数据更新到本地缓存中;
303:所述目标缓存节点向所述系统的其他缓存节点发送所述更新数据,以便其他缓存节点根据所述更新数据进行数据同步。
在一种可能的实现方式中,所述更新数据包括对数据的新增、替换、删除。
在一种可能的实现方式中,在所述数据同步之后,所述多个缓存节点所缓存的数据一致。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种分布式数据缓存系统,其特征在于,所述系统包括缓存同步模块、缓存通信模块、缓存管理模块和多个缓存节点:
所述缓存管理模块,用于建立和管理缓存节点,以及协调各模块间工作;
所述缓存通信模块,用于向所述缓存同步模块发送从目标缓存节点获取的更新数据;所述更新数据为所述目标缓存节点对所缓存数据进行更新的数据,所述目标缓存节点为所述多个缓存节点中的任意一个;
所述缓存同步模块,用于将通过所述缓存通信模块获取的更新数据分发到所述多个缓存节点中;
所述缓存节点,用于从所述缓存同步模块获取所述更新数据,并根据所述更新数据进行数据同步。
2.根据权利要求1所述的系统,其特征在于,所述系统还包括替换算法模块:
所述替换算法模块,用于通过缓存替换算法计算所述多个缓存节点所缓存数据中是否包括被替换数据,所述被替换数据为对缓存节点所缓存数据进行数据替换时的替换对象。
3.根据权利要求2所述的系统,其特征在于,所述缓存替换算法包括先进先出算法FIFO、最近最少使用算法LRU、最不经常使用算法LFU中的任意一种或多种的组合。
4.根据权利要求1所述的系统,其特征在于,所述系统还包括可靠性服务模块:
所述可靠性服务模块,用于为缓存节点间进行数据迁移和失败恢复。
5.根据权利要求4所述的系统,其特征在于,所述可靠性服务模块还用于当所述系统新加入缓存节点时,将所述缓存节点所缓存的数据复制到所述新加入缓存节点中。
6.根据权利要求1所述的系统,其特征在于,所述缓存通信模块在所述系统中采用一套通信协议。
7.根据权利要求1所述的系统,其特征在于,所述多个缓存节点为应用服务器集群中的多个服务器。
8.一种分布式数据缓存方法,其特征在于,应用于分布式数据缓存系统,所述系统中包括多个缓存节点,所述方法包括:
目标缓存节点获取更新数据;
所述目标缓存节点将所述更新数据更新到本地缓存中;
所述目标缓存节点向所述系统的其他缓存节点发送所述更新数据,以便其他缓存节点根据所述更新数据进行数据同步。
9.根据权利要求8所述的方法,其特征在于,所述更新数据包括对数据的新增、替换、删除。
10.根据权利要求8或9所述的方法,其特征在于,在所述数据同步之后,所述多个缓存节点所缓存的数据一致。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811355132.0A CN109522294A (zh) | 2018-11-14 | 2018-11-14 | 一种分布式数据缓存系统和数据缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811355132.0A CN109522294A (zh) | 2018-11-14 | 2018-11-14 | 一种分布式数据缓存系统和数据缓存方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109522294A true CN109522294A (zh) | 2019-03-26 |
Family
ID=65777789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811355132.0A Withdrawn CN109522294A (zh) | 2018-11-14 | 2018-11-14 | 一种分布式数据缓存系统和数据缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109522294A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783909A (zh) * | 2021-01-29 | 2021-05-11 | 平安普惠企业管理有限公司 | 数据更新方法、装置、终端设备及存储介质 |
CN113986121A (zh) * | 2021-10-14 | 2022-01-28 | 北京师范大学珠海校区 | 一种数据安全存储与同步更新的自适应阈值调整方法 |
-
2018
- 2018-11-14 CN CN201811355132.0A patent/CN109522294A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783909A (zh) * | 2021-01-29 | 2021-05-11 | 平安普惠企业管理有限公司 | 数据更新方法、装置、终端设备及存储介质 |
CN112783909B (zh) * | 2021-01-29 | 2023-09-26 | 宁夏航天信息有限公司 | 数据更新方法、装置、终端设备及存储介质 |
CN113986121A (zh) * | 2021-10-14 | 2022-01-28 | 北京师范大学珠海校区 | 一种数据安全存储与同步更新的自适应阈值调整方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11894972B2 (en) | System and method for data replication using a single master failover protocol | |
US11120044B2 (en) | System and method for maintaining a master replica for reads and writes in a data store | |
Bravo et al. | Saturn: A distributed metadata service for causal consistency | |
US9460185B2 (en) | Storage device selection for database partition replicas | |
US9886348B2 (en) | System and method for adjusting membership of a data replication group | |
US9489443B1 (en) | Scheduling of splits and moves of database partitions | |
US9411873B2 (en) | System and method for splitting a replicated data partition | |
US9489434B1 (en) | System and method for replication log branching avoidance using post-failover rejoin | |
CN103237046B (zh) | 支持混合云存储应用的分布式文件系统及实现方法 | |
CN103067433B (zh) | 一种分布式存储系统的数据迁移方法、设备和系统 | |
US20100023564A1 (en) | Synchronous replication for fault tolerance | |
CN108234307A (zh) | 网络方法、网络装置和非暂时性计算机可读存储介质 | |
CN108234306A (zh) | 网络装置、网络方法和计算机可读存储介质 | |
CN108234302A (zh) | 保持网络装置用的分布式操作系统中的一致性 | |
CN105472002A (zh) | 基于集群节点间即时拷贝的会话同步方法 | |
CN105744001B (zh) | 分布式缓存系统扩容方法、数据访问方法及装置和系统 | |
CN112463366A (zh) | 面向云原生的微服务自动扩缩容和自动熔断方法及系统 | |
CN108319618B (zh) | 一种分布式存储系统的数据分布控制方法、系统及装置 | |
CN111416875A (zh) | 一种面向云边协同的服务目录同步方法及系统 | |
CN106940696B (zh) | 一种用于sdn多层控制器的信息查询方法及系统 | |
Chang et al. | Write-aware replica placement for cloud computing | |
CN112162846A (zh) | 事务处理方法、设备及计算机可读存储介质 | |
CN109522294A (zh) | 一种分布式数据缓存系统和数据缓存方法 | |
CN109254981A (zh) | 一种分布式缓存系统的数据管理方法和装置 | |
US20220391411A1 (en) | Dynamic adaptive partition splitting |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190326 |
|
WW01 | Invention patent application withdrawn after publication |