一种分布式应用本地缓存的实现系统及实现方法与流程

文档序号:12494982阅读:1049来源:国知局

本发明涉及的是一种算机软件应用技术,尤其是一种分布式应用本地缓存的实现系统及实现方法。



背景技术:

在现有技术中,公知的技术是在一个业务应用中,我们会将业务数据保存到底层的数据源(数据库、文件系统、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把此数据变更消息广播给组内所有成员,组内的通讯器接受到消息之后接着把数据变更信息告知所在节点的缓存管理器,然后各个节点的缓存管理器就会按照消息移除缓存数据。

本发明并不仅限于上述具体实施方式,本领域普通技术人员在本发明的实质范围内做出的变化、改型、添加或替换,也应属于本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1