CN106790705A - 一种分布式应用本地缓存的实现系统及实现方法 - Google Patents
一种分布式应用本地缓存的实现系统及实现方法 Download PDFInfo
- Publication number
- CN106790705A CN106790705A CN201710108068.5A CN201710108068A CN106790705A CN 106790705 A CN106790705 A CN 106790705A CN 201710108068 A CN201710108068 A CN 201710108068A CN 106790705 A CN106790705 A CN 106790705A
- Authority
- CN
- China
- Prior art keywords
- data
- caching
- cache
- cached
- communicator
- 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
Classifications
-
- 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
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式应用本地缓存的实现系统及实现方法,包括缓存管理器、缓存服务组件、缓存构建器、缓存监控器、通讯器,缓存管理器用于其他组件的统一调度和管理,分组管理缓存,管理缓存数据的生命周期,过期的缓存数据将会自动移除;管理缓存数据容量;缓存服务组件对外暴露接口,负责提供给用户所需的服务;缓存构建器负责缓存实体的构建,不同的缓存构建器可以有不同的缓存实体;缓存监控器负责缓存的监控;通讯器负责集群环境下多个应用节点之间缓存数据的同步,本方法实现了一种在分布式应用系统中本地数据的缓存管理功能,可管理缓存数据大小、控制缓存数据时效性,实现缓存监控,在集群环境下可以做到缓存内容的同步。
Description
技术领域
本发明涉及的是一种算机软件应用技术,尤其是一种分布式应用本地缓存的实现系统及实现方法。
背景技术
在现有技术中,公知的技术是在一个业务应用中,我们会将业务数据保存到底层的数据源(数据库、文件系统、LDAP等)中,在进行业务操作时,又会使用底层数据源的数据进行业务处理。众所周知,直接存取底数据源的系统开销是比较大的,这需要创建连接,打开连接等一系列系统各层之间的调用操作,低速磁盘的存取,各种低速I/O之间的传输,都会影响系统的性能。如果系统中所有的数据交换和数据存取都是通过直接读取底层数据源的方式进行,那么系统的性能肯定会变得非常糟糕。
但是,如果将所有的业务数据都存放在内存中,虽然会提高数据的存取速度,但是,这需要大容量价格昂贵的内存,并且也违背了分层设计的原理,所以这样的做法也是不可取的。
发明内容
本发明的目的就是针对现有技术所存在的不足,而提供一种分布式应用本地缓存的实现系统及实现方法,该方法缓存的数据适用于比较稳定的内容,避免缓存频繁变化的内容,频繁更新的内容不适于本方法。如果由于频繁的更新,系统用于更新缓存内容的时间超过系统直接获取新内容的时间,那样本实现方法就没有意义,本方法实现了一种在分布式应用系统中本地数据的缓存管理功能,可管理缓存数据大小、控制缓存数据时效性,实现缓存监控,在集群环境下可以做到缓存内容的同步,解决了在云计算复杂环境下,分布式应用程序存取底数据源时,系统开销大,性能消耗高的问题。
本方案是通过如下技术措施来实现的:一种分布式应用本地缓存的实现系统,包括缓存管理器、缓存服务组件、缓存构建器、缓存监控器、通讯器,
缓存管理器用于负责其他组件的统一调度和管理,分组管理缓存,用户可以根据应用系统的具体情况整体规划缓存组;管理缓存数据的生命周期,用户可以设置缓存的生命期,过期的缓存数据将会自动移除;管理缓存数据容量;
缓存服务组件对外暴露接口,负责提供给用户所需的服务,服务主要包括缓存的检测、创建、删除、获取、清空、容量配置等;
缓存构建器负责缓存实体的构建,不同的缓存构建器可以有不同的缓存实体;
缓存监控器负责缓存的监控,可以通过调用相关接口获取缓存的监控信息;
通讯器负责集群环境下多个应用节点之间缓存数据的同步,集群中所有节点的通讯器构成通讯组,当某个节点的数据发生变更时,缓存管理器告知通讯器本地缓存数据发生变更,通讯器就会把此数据变更消息广播给组内所有成员,组内的通讯器接受到消息之后接着把数据变更信息告知所在节点的缓存管理器,然后各个节点的缓存管理器就会按照消息移除缓存数据。
所述的缓存管理器设置缓存容量大小,缓存满后,如果继续放入数据就会按照LRU策略移除缓存里闲置时间最长的数据。
缓存数据变更消息包括四种类型,全部删除、组删除、缓存删除、缓存数据删除。
一种分布式应用本地缓存的实现方法,其特征在于包括如下步骤:
1)首先判断是读取数据还是数据变更,读取数据则进入步骤2),数据变更则进入步骤4)
2)读取数据,首先从缓存中获取数据,如果取到数据,则直接返回即可,如果取不到,则进入步骤3)
3)从数据库中将查询到的数据放入缓存,缓存管理器查看缓存容量是否已满,如果已满,则按照LRU策略移除缓存里闲置时间最长的数据,然后缓存构建器针对放入的数据构建缓存实体,取到数据返回;如果未满,则缓存构建器针对放入的数据构建缓存实体,取到数据返回;
4)将要变更的数据从缓存中移除,缓存管理器告知通讯器本地缓存数据发生变更,通讯器通过jGroups把此数据变更消息广播给组内所有成员,组内的通讯器接受到消息之后接着把数据变更信息告知所在节点的缓存管理器,然后各个节点的缓存管理器就会按照消息移除缓存数据。
缓存数据变更消息包括四种类型,全部删除、组删除、缓存删除、缓存数据删除。
本方案的有益效果可根据对上述方案的叙述得知,由于在该方案实现了在分布式应用系统中本地数据的缓存管理功能,可管理缓存数据大小、控制缓存数据时效性,实现缓存监控,在集群环境下可以做到缓存内容的同步;分布式应用本地缓存系统包括如下几个组件:缓存管理器、缓存服务组件、缓存构建器、缓存监控器、通讯器。缓存管理器是核心组件,负责其他组件的统一调度和管理。缓存管理器分组管理缓存,用户可以根据应用系统的具体情况整体规划缓存组。缓存管理器负责管理缓存数据的生命周期,用户可以设置缓存的生命期,过期的缓存数据将会自动移除。缓存管理器负责管理缓存数据容量,缓存可以设置容量大小,缓存满后,如果继续放入数据就会按照LRU策略移除缓存里闲置时间最长的数据。缓存服务组件对外暴露接口,负责提供给用户所需的服务。缓存构建器负责根据配置来构建一个缓存对象,不同的Builder可以有不同的缓存实现。缓存监控器负责缓存的监控,可以通过调用相关接口获取缓存的监控信息。通讯器负责集群环境下多个应用节点之间缓存数据的同步,集群中所有节点的通讯器构成通讯组,当某个节点的数据发生变更时,缓存管理器告知通讯器本地缓存数据发生变更,通讯器就会通过群组通信组件jGroups把此数据变更消息广播给组内所有成员,组内的通讯器接受到消息之后接着把数据变更信息告知所在节点的缓存管理器,然后各个节点的缓存管理器就会按照消息移除缓存数据。缓存数据变更消息有四种类型:全部删除、组删除、缓存删除、缓存数据删除。缓存实体则就是内存中实际的缓存数据对象,由缓存构建器负责缓存实体的构建。用户操作主要有三种:取缓存数据、移除缓存数据和将数据放入缓存。用户获取数据包含取和放两种操作,首先从缓存中取数据,如果取不到,就查询数据库,然后将查询到的数据放入缓存,取到直接返回即可。用户在修改数据库数据时需要直接从缓存中移除相关数据。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
图1为本发明具体实施方式的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过一个具体实施方式,并结合其附图,对本方案进行阐述。
通过附图可以看出,本方案的一种分布式应用本地缓存的实现系统,包括缓存管理器、缓存服务组件、缓存构建器、缓存监控器、通讯器,
缓存管理器用于负责其他组件的统一调度和管理,分组管理缓存,用户可以根据应用系统的具体情况整体规划缓存组;管理缓存数据的生命周期,用户可以设置缓存的生命期,过期的缓存数据将会自动移除;管理缓存数据容量;
缓存服务组件对外暴露接口,负责提供给用户所需的服务,服务主要包括缓存的检测、创建、删除、获取、清空、容量配置等;
缓存构建器负责缓存实体的构建,不同的缓存构建器可以有不同的缓存实体;
缓存监控器负责缓存的监控,可以通过调用相关接口获取缓存的监控信息;
通讯器负责集群环境下多个应用节点之间缓存数据的同步,集群中所有节点的通讯器构成通讯组,当某个节点的数据发生变更时,缓存管理器告知通讯器本地缓存数据发生变更,通讯器就会把此数据变更消息广播给组内所有成员,组内的通讯器接受到消息之后接着把数据变更信息告知所在节点的缓存管理器,然后各个节点的缓存管理器就会按照消息移除缓存数据。
所述的缓存管理器设置缓存容量大小,缓存满后,如果继续放入数据就会按照LRU策略移除缓存里闲置时间最长的数据。
缓存数据变更消息包括四种类型,全部删除、组删除、缓存删除、缓存数据删除。
一种基于上述系统的分布式应用本地缓存的实现方法,包括如下步骤:
1)首先判断是读取数据还是数据变更,读取数据则进入步骤2),数据变更则进入步骤4)
2)读取数据,首先从缓存中获取数据,如果取到数据,则直接返回即可,如果取不到,则进入步骤3)
3)从数据库中将查询到的数据放入缓存,缓存管理器查看缓存容量是否已满,如果已满,则按照LRU策略移除缓存里闲置时间最长的数据,然后缓存构建器针对放入的数据构建缓存实体,取到数据返回;如果未满,则缓存构建器针对放入的数据构建缓存实体,取到数据返回;
4)将要变更的数据从缓存中移除,缓存管理器告知通讯器本地缓存数据发生变更,通讯器通过jGroups把此数据变更消息广播给组内所有成员,组内的通讯器接受到消息之后接着把数据变更信息告知所在节点的缓存管理器,然后各个节点的缓存管理器就会按照消息移除缓存数据。
本发明并不仅限于上述具体实施方式,本领域普通技术人员在本发明的实质范围内做出的变化、改型、添加或替换,也应属于本发明的保护范围。
Claims (5)
1.一种分布式应用本地缓存的实现系统,其特征是:包括缓存管理器、缓存服务组件、缓存构建器、缓存监控器、通讯器,
缓存管理器用于负责其他组件的统一调度和管理,分组管理缓存,用户可以根据应用系统的具体情况整体规划缓存组;管理缓存数据的生命周期,用户可以设置缓存的生命期,过期的缓存数据将会自动移除;管理缓存数据容量;
缓存服务组件对外暴露接口,负责提供给用户所需的服务;
缓存构建器负责缓存实体的构建,不同的缓存构建器可以有不同的缓存实体;
缓存监控器负责缓存的监控,可以通过调用相关接口获取缓存的监控信息;
通讯器负责集群环境下多个应用节点之间缓存数据的同步,集群中所有节点的通讯器构成通讯组,当某个节点的数据发生变更时,缓存管理器告知通讯器本地缓存数据发生变更,通讯器就会把此数据变更消息广播给组内所有成员,组内的通讯器接受到消息之后接着把数据变更信息告知所在节点的缓存管理器,然后各个节点的缓存管理器就会按照消息移除缓存数据。
2.根据权利要求1所述的分布式应用本地缓存的实现系统,其特征是:所述的缓存管理器设置缓存容量大小,缓存满后,如果继续放入数据就会按照LRU策略移除缓存里闲置时间最长的数据。
3.根据权利要求1所述的分布式应用本地缓存的实现系统,其特征是:缓存数据变更消息包括四种类型,全部删除、组删除、缓存删除、缓存数据删除。
4.一种分布式应用本地缓存的实现方法,其特征在于包括如下步骤:
1)首先判断是读取数据还是数据变更,读取数据则进入步骤2),数据变更则进入步骤4)
2)读取数据,首先从缓存中获取数据,如果取到数据,则直接返回即可,如果取不到,则进入步骤3)
3)从数据库中将查询到的数据放入缓存,缓存管理器查看缓存容量是否已满,如果已满,则按照LRU策略移除缓存里闲置时间最长的数据,然后缓存构建器针对放入的数据构建缓存实体,取到数据返回;如果未满,则缓存构建器针对放入的数据构建缓存实体,取到数据返回;
4)将要变更的数据从缓存中移除,缓存管理器告知通讯器本地缓存数据发生变更,通讯器通过jGroups把此数据变更消息广播给组内所有成员,组内的通讯器接受到消息之后接着把数据变更信息告知所在节点的缓存管理器,然后各个节点的缓存管理器就会按照消息移除缓存数据。
5.根据权利要求4所述的分布式应用本地缓存的实现方法,其特征是:缓存数据变更消息包括四种类型,全部删除、组删除、缓存删除、缓存数据删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710108068.5A CN106790705A (zh) | 2017-02-27 | 2017-02-27 | 一种分布式应用本地缓存的实现系统及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710108068.5A CN106790705A (zh) | 2017-02-27 | 2017-02-27 | 一种分布式应用本地缓存的实现系统及实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106790705A true CN106790705A (zh) | 2017-05-31 |
Family
ID=58960618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710108068.5A Pending CN106790705A (zh) | 2017-02-27 | 2017-02-27 | 一种分布式应用本地缓存的实现系统及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106790705A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273047A (zh) * | 2017-06-08 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种缓存管理方法、缓存管理器及存储管理软件 |
CN107948318A (zh) * | 2017-12-27 | 2018-04-20 | 世纪龙信息网络有限责任公司 | 多节点间的缓存同步方法和系统 |
CN108182213A (zh) * | 2017-12-20 | 2018-06-19 | 福建新大陆软件工程有限公司 | 一种基于分布式系统的数据处理优化装置及方法 |
CN110413418A (zh) * | 2019-06-25 | 2019-11-05 | 北京三快在线科技有限公司 | 缓存同步装置及方法,缓存同步系统、电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244685A (zh) * | 2011-08-11 | 2011-11-16 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及系统 |
US8195610B1 (en) * | 2007-05-08 | 2012-06-05 | IdeaBlade, Inc. | Method and apparatus for cache management of distributed objects |
CN104142896A (zh) * | 2013-05-10 | 2014-11-12 | 阿里巴巴集团控股有限公司 | 一种缓存控制方法和系统 |
CN105608159A (zh) * | 2015-12-18 | 2016-05-25 | 北京奇虎科技有限公司 | 数据缓存的方法和装置 |
-
2017
- 2017-02-27 CN CN201710108068.5A patent/CN106790705A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8195610B1 (en) * | 2007-05-08 | 2012-06-05 | IdeaBlade, Inc. | Method and apparatus for cache management of distributed objects |
CN102244685A (zh) * | 2011-08-11 | 2011-11-16 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及系统 |
CN104142896A (zh) * | 2013-05-10 | 2014-11-12 | 阿里巴巴集团控股有限公司 | 一种缓存控制方法和系统 |
CN105608159A (zh) * | 2015-12-18 | 2016-05-25 | 北京奇虎科技有限公司 | 数据缓存的方法和装置 |
Non-Patent Citations (1)
Title |
---|
张水平,张凤琴: "《云计算原理及应用技术》", 30 April 2014, 北京交通大学出版社 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273047A (zh) * | 2017-06-08 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种缓存管理方法、缓存管理器及存储管理软件 |
CN108182213A (zh) * | 2017-12-20 | 2018-06-19 | 福建新大陆软件工程有限公司 | 一种基于分布式系统的数据处理优化装置及方法 |
CN107948318A (zh) * | 2017-12-27 | 2018-04-20 | 世纪龙信息网络有限责任公司 | 多节点间的缓存同步方法和系统 |
CN110413418A (zh) * | 2019-06-25 | 2019-11-05 | 北京三快在线科技有限公司 | 缓存同步装置及方法,缓存同步系统、电子设备 |
CN110413418B (zh) * | 2019-06-25 | 2022-04-05 | 北京三快在线科技有限公司 | 缓存同步装置及方法,缓存同步系统、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8161244B2 (en) | Multiple cache directories | |
US7249152B2 (en) | Dynamic disk space management by multiple database server instances in a cluster configuration | |
CN106790705A (zh) | 一种分布式应用本地缓存的实现系统及实现方法 | |
EP2153317B1 (en) | Managing object lifetime for native/managed peers | |
EP3089039B1 (en) | Cache management method and device | |
CN108833503A (zh) | 一种基于ZooKeeper的Redis集群方法 | |
CN108182213A (zh) | 一种基于分布式系统的数据处理优化装置及方法 | |
CN101673192B (zh) | 时序化的数据处理方法、装置及系统 | |
CN106878376A (zh) | 一种配置管理方法与系统 | |
CN109144791A (zh) | 数据转存方法、装置和数据管理服务器 | |
CN107800808A (zh) | 一种基于Hadoop架构的数据存储系统 | |
CN1575575A (zh) | 电信网中的分级高速缓存 | |
CN106713250B (zh) | 基于分布式系统的数据访问方法和装置 | |
CN104021088B (zh) | 日志存储方法和装置 | |
CN107633045A (zh) | 一种云存储服务中租户数据容量的统计方法及其系统 | |
CN104111896B (zh) | 大数据处理中的虚拟内存管理方法及其装置 | |
CN109063192A (zh) | 一种高性能海量文件存储系统工作方法 | |
CN108052569A (zh) | 数据库访问方法、装置、计算机可读存储介质和计算设备 | |
CN110147331A (zh) | 缓存数据处理方法、系统及可读存储介质 | |
CN109726037A (zh) | 用于备份数据的方法、设备和计算机程序产品 | |
CN107241444A (zh) | 一种分布式缓存数据管理系统、方法及装置 | |
CN103729309A (zh) | 一种目录Cache一致性方法 | |
US20200250135A1 (en) | Excluding directory trees from data service operations | |
CN101605049B (zh) | 网管数据统计分析指标的处理方法和装置、数据管理系统 | |
CN105871659A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |
|
RJ01 | Rejection of invention patent application after publication |