【技术实现步骤摘要】
本专利技术涉及计算机软件
,尤其涉及云计算
,具体是指一种基于云计算实现缓存的加载或持久化的系统及方法。
技术介绍
缓存作为一种有效提高性能的技术已经被广泛采用,使用缓存的一个难点在于保证缓存中的数据正确性,即保证缓存的数据和数据源的数据一致性。在传统单机环境下,从数据源加载数据和将数据持久化到数据源都由单机应用完成,实现相对简单。但是在云计算环境下,保证缓存的数据和数据源的数据一致性更有挑战,在云计算环境下,一般的数据都通过专门的微服务来访问,为保证可用性,微服务都采用多节点部署,意味着不能再简单的由每个节点来加载和持久化数据。另外云计算环境下,资源多由自动分配,所以将加载和持久化绑定到某个节点也不可行。缓存的数据加载是使用缓存的基础,需要一套成熟的技术和方法来支撑。现在各系统使用缓存时加载和持久化过程呈现多样化的特点,有些系统采用人工初始化的方法,这类系统主要针对的是静态数据,初始化完成后数据长期不会变化,如果需要变化需要人工重新初始化。对于非静态数据,目前大多数采用硬编码的方式,针对不同系统,不同类型的数据源做不同的适配,对于云计算环境下还需要单独的配置指定某个节点完成加载或持久化动作,没有一种统一的规划和技术方案。现有的实现方式存在以下不足:1、实施周期长,而且因为实施人员的水品参差不齐也给测试带来更大的工作量;2、对于云计算环境下,需要指定固定的节点来完成加载或持久化动作,一旦该节点出现问题,就不能保证缓存数据的时效性;3、针对不同类型的数据源硬编码过多,不能达到很好复用的效果。
技术实现思路
本专利技术的目的是克服了上述现有技术的缺点 ...
【技术保护点】
一种基于云计算实现缓存的加载或持久化的系统,其特征在于,所述的系统包括调度模块、缓存模块、数据源模块和事件模块,所述的调度模块分别与所述的缓存模块、数据源模块和事件模块相连接。
【技术特征摘要】
1.一种基于云计算实现缓存的加载或持久化的系统,其特征在于,所述的系统包括调度模块、缓存模块、数据源模块和事件模块,所述的调度模块分别与所述的缓存模块、数据源模块和事件模块相连接。2.根据权利要求1所述的基于云计算实现缓存的加载或持久化的系统,其特征在于,所述的调度模块包括:分布式选举单元,用于对每个缓存的数据集选举一个leader,由该leader执行将缓存的数据项从数据源加载到缓存中,并且由该leader将缓存中的数据持久化到数据源中;任务工作池单元,该任务工作池单元为一用于管理加载和持久化执行的线程,并支持弹性调整执行线程数量,在忙时增加处理线程,在闲时释放处理线程。3.根据权利要求1所述的基于云计算实现缓存的加载或持久化的系统,其特征在于,所述的缓存模块包括:缓存接口单元,定义所述的系统与各缓存实现之间的交互接口,且通过该缓存接口单元与具体的缓存实现进行解耦;缓存适配单元,用于针对具体的缓存存储对缓存SPI的实现。4.根据权利要求1所述的基于云计算实现缓存的加载或持久化的系统,其特征在于,所述的数据源模块包括:数据定义单元,用于定义缓存的数据集来源,所述的数据来源包括配置文件、关系型数据库和外部系统,并且定义数据的加载和持久化策略,所述的数据的加载和持久化策略包括定时加载和持久化策略和通知加载和持久化策略,其中,加载和持久化方法包括同步和异步两种;数据源适配单元,用于从数据读取数据,并将数据写到数据源,该数据源适配单元可以根据需要扩展多个,分别针对不同的数据源。5.根据权利要求1所述的基于云计算实现缓存的加载或持久化的系统,其特征在于,所述的事件模块包括:事件中心单元,leader节点通过该事件中心单元接收非leader节点的状态变化通知。6.一种通过权利要求1所述的系统基于云计算实现缓存的加载或持久化的方法,其特征在于,所述的方法包括以下步骤:(1)定义缓存提供者;(2)定义缓存数据集以及加载或持久化策略;(3)自动调度加载或持久化;(4)发布数据变化事件。7.根据权利要求6所述的基于云计算实现缓存的加载或持久化的方法,其特征在于,所述的步骤(1)包括以下步骤:(1-1)根据缓存提供者配置文件模板新建缓存提供者配置文件,扩展名为:.chpx;(1-2)在所述的缓存提供者配置文件中按照模板增加缓存实例定义;(1-3)为所述的缓存实例定义配置id属性,所配置的id值必须全局唯一;(1-4)为所述的缓存实例定义配置provider属性,provider属性的值是一种缓存SPI接口的实现,如redis缓存SPI实现;(1-5)为所述的缓存实例定义配置私有属性,如果是本地缓存,则配置缓存大小;如果是远程缓存,则配置远程缓存的地址、端口、用户名和密码。8.根据权利要求6所述的基于云计算实现缓存的加载或持久化的方法,其特征在于,所述的步骤(2)包括以下步骤:(2-1)根据缓存数据集配置文件模板新建缓存数据集配置文件,扩展名为:.chsx;(2-2)在所述的缓存数据集配置文件中按照模板增加缓存数据集的定义;(2-3)为所述的缓存数据集定义配置命名空间属性和数据集名称属性,所述的命名空间属性和所述的数据集名称属性组合生成一个唯一的id,组合规则为:命名空间+“.”+数据集名称;(2-4)为所述的缓存数据定义配置数据源类型,如果是数据源类型是文件型,则配置文件路径,如果是关系型数据库类型,则配置关系型数据库的服务器地址和端口;(2-5)为所述的缓存数据定义配置加载或持久化策略。9.根据权利要求8所述的基于云计算实现缓存的加载或持久化的方法,其特征在于,所述的步骤(2-5)包括以下步骤:(2-5-1)为所述的缓存数据集定义配置场景类型:“加载”或“持久化”,如果是“加载”场景类型,则继续步骤(2-5-2),如果是“持久化”场景类型,则继续步骤(2-5-3);(2-5-2)为所述的缓存数据集定义配置read实现类,其中read实现类从上述配置的数据源中读取数据,继续步骤(2-5-4);(2-5-3)为所述的缓存数据集定义配置write实现类,其中write实现类从将缓存中变化的内容持久化到上述的数据源中;(2-5-4)为所述的缓存数据集定义配置调度策略,可设置的值为固定频率刷新、懒加载和缓冲区大小阈值,如果设置的值为固定刷新频率,则继续设置刷新周期,如果设置的值为缓冲区大小,则继续设置缓冲区的阈值;(2-5-5)为所述的缓存数据集定义配置动作模式,...
【专利技术属性】
技术研发人员:田向阳,
申请(专利权)人:普元信息技术股份有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。