欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 分布式应用缓存刷新系统、方法、电子设备及存储介质独创技术14005字

分布式应用缓存刷新系统、方法、电子设备及存储介质

2022-12-10 17:03:11

分布式应用缓存刷新系统、方法、电子设备及存储介质

  技术领域

  本发明涉及计算机软件技术领域,尤其涉及分布式应用缓存刷新系统、方法、电子设备及存储介质。

  背景技术

  随着电商平台的业务增长,业务数据的体量在逐步增大,平台业务的数据在深度和广度上都出现了大幅的增长。在这种场景下,当最基础数据出现变更时,会导致依赖基础数据的上层业务数据过期、失效,此时需要对部分业务数据进行清理和重建。

  在中小型系统中,常用的集中方法包括:1、将依赖的缓存直接删除,当请求发生时自动触发缓存的构建。当查询发现缓存不存在时,此方法会自动触发到数据库查询关联数据并重新生成新的缓存。但此方法存在缓存击穿的问题。2、启用专用缓存刷新系统,将涉及缓存更新的项目逐条生成并且替换过期和失效的数据。此方案避免了缓存穿透带来的风险,但是牺牲了一致性,当更新的缓存数量大时导致刷新任务积压,最终导致产生大量的脏数据,业务系统也必须针对此类情况做大量的容错处理。

  无论何种方案,当缓存组合过于复杂时,梳理缓存所依赖的基础数据以及层级都很难处理。当基础数据变更时,如何将关联缓存精准定位,这也是一件相当困难的事情。

  发明内容

  为了克服现有技术的不足,本发明的目的在于提供分布式应用缓存刷新系统,解决当缓存组合过于复杂时,难以梳理缓存所依赖的基础数据以及层级,以及当基础数据变更时,如何将关联缓存精准定位的问题。

  本发明提供分布式应用缓存刷新系统,包括缓存刷新系统、缓存存储单元、消息订阅发布模块;其中,

  所述缓存刷新系统由缓存管理模块、缓存刷新模块、缓存路由模块组成;

  所述缓存管理模块,用于接收缓存重构任务,将全量刷新任务进行拆分、细化、分配、检测,当刷新任务缓存后,发布缓存切换通知,通知缓存路由进行切换;

  所述缓存刷新模块,用于通过所述消息订阅发布模块注册到所述缓存管理模块,获取刷新任务项,进行缓存刷新操作;

  所述缓存路由模块,用于通过所述消息订阅发布模块获取当前缓存分区设置,提前连接于缓存的连接池,根据所述缓存管理模块的通知实时切换缓存引用组;

  所述缓存存储单元,用于将缓存划分为第一分区和第二分区,所述第一分区为应用提供缓存查询服务,所述第二分区用于缓存的全量构建,当缓存刷新完成后,将所述第一分区和所述第二分区的用途进行切换;

  所述消息订阅发布模块,用于服务注册服务与发现,通知信息的订阅与推送。

  进一步地,所述缓存刷新模块使用Java多线程技术和Redis Pipline操作进行缓存刷新操作。

  进一步地,所述缓存存储单元采用开源的Redis集群,将Redis缓存划分为第一分区和第二分区。

  分布式应用缓存刷新方法,包括以下步骤:

  初始化模块,初始化缓存管理模块、缓存刷新模块、设置缓存存储单元的第一分区和第二分区,所述第一分区为应用提供缓存查询服务,所述第二分区用于缓存的全量构建;

  建立连接,建立所述缓存管理模块与所述缓存刷新模块的连接,准备接收全量刷新请求;

  确认刷新条件,当外围管理系统通过接口调用所述缓存管理模块触发全量缓存刷新时,锁定所述缓存管理模块,拒绝新的全量刷新请求,重置所述第一分区的第一缓存和第二缓存;

  推送刷新任务,所述缓存管理模块将所述第一分区的第一缓存基础数据缓存的任务信息推送至所述缓存刷新模块;

  处理任务,所述缓存刷新模块接收到所述第一分区的第一缓存基础数据缓存的任务,根据任务的需要从数据库读取数据,经过处理后序列化至第一分区的第一缓存基础数据缓存库;

  切换缓存线程,所述缓存管理模块检测到所述第一分区的第一缓存刷新任务完成后,将缓存刷新路由切换至所述第一分区的第二缓存业务缓存层,将所述第一分区的第二缓存业务缓存的任务推送至所述缓存刷新模块;

  组合数据,所述缓存刷新模块接收到所述第一分区的第二缓存业务数据缓存的任务,根据任务内容从所述第一分区的第一缓存基础数据缓存层读取数据再进行组合,将组合数据序列化至所述第一分区的第二缓存业务数据缓存库;

  切换缓存,所述缓存管理模块检测到所述第一分区的第二缓存刷新完成后,通过订阅发布组件发布路由切换通知,将所述第一分区和所述第二分区的用途进行切换,释放全量刷新锁;

  循环刷新缓存,准备接受下一轮全量刷新请求。

  进一步地,所述推送刷新任务步骤中,所述缓存管理模块将所述第一分区的第一缓存基础数据缓存的任务信息进行细分,通过预设的负载均衡策略将刷新任务推送至所述缓存刷新模块。

  进一步地,所述切换缓存线程步骤中,所述缓存管理模块将所述第一分区的第二缓存业务缓存的任务进行细分,推送至所述缓存刷新模块。

  进一步地,所述切换缓存步骤中还包括所述缓存管理模块检测到所述第一分区的第二缓存刷新完成后,触发缓存刷新检查,确认全量缓存刷新并且正确无误后,通过订阅发布组件发布路由切换通知。

  进一步地,所述确认刷新条件步骤中还包括当外围管理系统通过接口调用所述缓存管理模块触发全量缓存刷新时,检查是否有刷新任务正在进行,确认满足刷新条件后锁定所述缓存管理模块。

  一种电子设备,包括:处理器;

  存储器;以及程序,其中所述程序被存储在所述存储器中,并且被配置成由处理器执行,所述程序包括用于执行分布式应用缓存刷新方法。

  一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行分布式应用缓存刷新方法。

  相比现有技术,本发明的有益效果在于:

  本发明提供分布式应用缓存刷新系统,包括缓存刷新系统、缓存存储单元、消息订阅发布模块;缓存刷新系统由缓存管理模块、缓存刷新模块、缓存路由模块组成。本发明涉及一种分布式应用缓存刷新方法。本发明还涉及一种电子设备和存储介质,用于执行分布式应用缓存刷新方法。本发明的缓存刷新节点服务可以动态横向扩展,可以根据业务的体量选择添加服务器,再结合多线程并发程序以及Redis Pipline操作能够大幅度提高缓存刷新速度;缓存分区和分层,缓存分区避免了缓存刷新时对业务应用操作缓存的影响;缓存分层,数据加载路径为DB->L1->L2,复杂的业务缓存基于L1的缓存进行构建,减少数据库读取,大幅度提升L2缓存的构建,大幅度减少缓存构建耗时;开发缓存路由功能组件,对缓存线程池进行预热再切换,避免因缓存分区切换导致的业务抖动。

  上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。

  附图说明

  此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

  图1为本发明的分布式应用缓存刷新系统示意图;

  图2为本发明的分布式应用缓存刷新方法流程图。

  具体实施方式

  下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

  分布式应用缓存刷新系统,如图1、图2所示,包括缓存刷新系统、缓存存储单元、消息订阅发布模块;其中,

  缓存刷新系统由缓存管理模块、缓存刷新模块、缓存路由模块组成;

  缓存管理模块,用于接收缓存重构任务,将全量刷新任务进行拆分、细化、分配、检测,当刷新任务缓存后,发布缓存切换通知,通知缓存路由进行切换;

  缓存刷新模块,用于通过消息订阅发布模块注册到缓存管理模块,获取刷新任务项,使用Java多线程技术和Redis Pipline操作,实现高性能的缓存刷新操作;

  缓存路由模块,用于通过消息订阅发布模块获取当前缓存分区设置,提前连接于缓存的连接池,根据缓存管理模块的通知实时切换缓存引用组;

  缓存存储单元,采用开源的Redis集群,将Redis缓存划分为第一分区和第二分区,图1中,第一分区以A区表示,第二分区以B区表示,第一分区为应用提供缓存查询服务,第二分区用于缓存的全量构建,当缓存刷新完成后,将第一分区和第二分区的用途进行切换;

  消息订阅发布模块,用于服务注册服务与发现,通知信息的订阅与推送。

  分布式应用缓存刷新方法,如图2所示,包括以下步骤:

  初始化模块,初始化缓存管理模块、缓存刷新模块、设置缓存存储单元的分区,包括第一分区和第二分区,第一分区为缓存刷新区,第二分区为业务使用区;

  建立连接,建立缓存管理模块与缓存刷新模块的连接,具体为master-worker(主-从)关系,准备接收全量刷新请求;

  确认刷新条件,当外围管理系统通过接口调用缓存管理模块触发全量缓存刷新时,先检查是否有刷新任务正在进行,确认满足刷新条件后锁定缓存管理模块,拒绝新的全量刷新请求,重置第一分区的第一缓存(L1 Cache)和第二缓存(L2 Cache);

  推送刷新任务,缓存管理模块将L1基础数据缓存的任务信息进行细分,通过预设的负载均衡策略将刷新任务推送至缓存刷新模块;

  处理任务,缓存刷新模块接收到L1基础数据缓存的任务,根据任务的需要从数据库读取数据,经过处理后序列化至第一分区的L1基础数据缓存库;

  切换缓存线程,缓存管理模块检测到L1刷新任务完成后,将缓存刷新路由切换至L2业务缓存层,将L2业务缓存的任务进行细分,推送至缓存刷新模块;

  组合数据,缓存刷新模块接收到L2业务数据缓存的任务,根据任务内容从L1基础数据缓存层读取数据再进行组合,将组合数据序列化至第一分区的L2业务数据缓存库;

  切换缓存,缓存管理模块检测到第一分区的L2刷新完成后,触发缓存刷新检查,确认全量缓存刷新并且正确无误后,通过订阅发布组件发布路由切换通知,将第一分区和第二分区的用途进行切换,即业务系统由换至第一分区,缓存刷新区切换至第二分区,释放全量刷新锁;

  循环刷新缓存,准备接受下一轮全量刷新请求。

  一种电子设备,包括:处理器;

  存储器;以及程序,其中程序被存储在存储器中,并且被配置成由处理器执行,程序包括用于执行分布式应用缓存刷新方法。

  一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行分布式应用缓存刷新方法。

  本发明提供分布式应用缓存刷新系统,包括缓存刷新系统、缓存存储单元、消息订阅发布模块;缓存刷新系统由缓存管理模块、缓存刷新模块、缓存路由模块组成。本发明涉及一种分布式应用缓存刷新方法。本发明还涉及一种电子设备和存储介质,用于执行分布式应用缓存刷新方法。本发明的缓存刷新节点服务可以动态横向扩展,可以根据业务的体量选择添加服务器,再结合多线程并发程序以及Redis Pipline操作能够大幅度提高缓存刷新速度;缓存分区和分层,缓存分区避免了缓存刷新时对业务应用操作缓存的影响;缓存分层,数据加载路径为DB->L1->L2,复杂的业务缓存基于L1的缓存进行构建,减少数据库读取,大幅度提升L2缓存的构建,大幅度减少缓存构建耗时;开发缓存路由功能组件,对缓存线程池进行预热再切换,避免因缓存分区切换导致的业务抖动。

  以上,仅为本发明的较佳实施例而已,并非对本发明作任何形式上的限制;凡本行业的普通技术人员均可按说明书附图所示和以上而顺畅地实施本发明;但是,凡熟悉本专业的技术人员在不脱离本发明技术方案范围内,利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对以上实施例所作的任何等同变化的更动、修饰与演变等,均仍属于本发明的技术方案的保护范围之内。

《分布式应用缓存刷新系统、方法、电子设备及存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)