[发明专利]一种业务解耦并实现多级缓存的自动化更新的方法及装置在审
申请号: | 202111354429.7 | 申请日: | 2021-11-16 |
公开(公告)号: | CN113836162A | 公开(公告)日: | 2021-12-24 |
发明(设计)人: | 张爱平 | 申请(专利权)人: | 湖北省楚建易网络科技有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F12/0811;G06F12/0866;G06F12/0877;G06F16/2455;G06F16/957 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 430075 湖北省武汉市东湖新技术开发*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 业务 实现 多级 缓存 自动化 更新 方法 装置 | ||
针对现有缓存技术中存在的痛点,本发明的目的是提供一种多层缓存方法:第一层为进程内缓存空间,第二层为进程外本地缓存,第三层为远程缓存;提供一致的调用方法让业务系统根据业务数据大小及读取、更新频率,灵活使用对应层级的缓存或者组合使用。并且多级缓存更新与业务解耦,引入缓存数据的独有命名空间结构,定义并存储不同层级(表、字段、字段值等)数据元素的版本号,实现缓存的读写分离,支持了任意复杂的业务场景(跨库跨表、分页查询等)。数据的写更新只影响缓存的版本号,读数据判断缓存版本即可实现缓存的自动更新,解决了缓存的多级架构混合使用的技术问题,实现了数据多级缓存的实时同步更新,通过独立的缓存组件与业务代码逻辑实现解耦,提升了缓存的读取性能,确保了缓存的强一致性。
技术领域
本发明涉及软件开发技术领域,尤其涉及一种多级缓存混合使用(进程缓存、单机缓存、分布式缓存)场景下的复杂业务支撑及实时更新的方法及装置。
背景技术
现有软件开发领域,应用开发使用的缓存通常采用进程内缓存或者进程外缓存两种方式。进程内缓存是数据存储在应用服务的进程内的缓存;进程外缓存则反之,进程外缓存根据缓存服务相对应用的网络地址分为本地缓存(与应用同一ip地址)和远程缓存(与应用不在统一ip地址),大型应用或者集群软件通常采用远程分布式缓存。缓存数据的更新策略通常采用两种方式:基于时间的过期策略(为缓存数据设置一个有效时间,时间到后数据自动失效)、基于键值依赖的策略(数据更新时在应用中的业务逻辑编写代码触发缓存键值失效或者更新键值缓存的内容数据,这个过程也可以使用异步操作)。上述技术的问题如下:
1.进程内缓存(图1:进程内缓存结构示意图):
其最大的优点是应用和 cache 是在同一个进程内部,缓存请求非常快速,没有多余的网络开销;它的缺点是缓存跟应用程序耦合太深,多个应用程序无法直接的共享缓存,各应用或集群的各节点都需要维护自己的单独缓存,对内存是一种浪费;进程内缓存通常适合小数据量的定时缓存,不支持实时更新场景。
进程外缓存(图2:进程外缓存结构示意图):
其优点是可以较好的支持多节点的数据一致性,缺点是相对进程内缓存多了网络通信开销,大文本的传输、大并发数据的传输的网络IO占用大。
更新策略的局限性:
进程内缓存与进程外缓存目前的两种缓存更新策略不能满足复杂业务场景下的数据实时更新的需求。基于时间过期的策略无法处理实时性要求高的业务逻辑;基于键值依赖的更新策略缺点是缓存更新与业务代码严重耦合,需要代码层面解决数据更新的逻辑功能实现,并且不能解决复杂数据的缓存更新,比如多库多表sql关联查询的数据,理论上其中一个库表的数据变动,就需要更新包含相关库表的所有sql语句查询的缓存,现实中业务编码是做不到的。再比如大表分页数据的有序缓存,理论上其中一条记录增删变动,会导致记录的所有排序有变动,需要更新所有分页。这也是传统代码编写功能更新无法做到的。这些情况大大限制了缓存的使用场景与范围。另外传统缓存使用无法应对频繁更新的数据,这种情况缓存命中率急剧下降。
缓存数据的一致性:
进程内缓存都是节点各自处理自己的缓存,缓存数据过期时效不一致,缓存数据不一致。进程外缓存有较好的数据一致性,但需要防范数据脏读的可能性,需要业务层面实现一个全局事务或者分布式锁来完成缓存和数据库的更新,才能避免产生脏数据。而采用全局事务或者分布式锁会增加业务逻辑的复杂度并降低了软件业务的响应实时性与运行性能。
应对缓存潜在风险的能力:
目前的缓存设计通常无法简单有效的防范缓存穿透、缓存击穿、缓存雪崩等风险。如需解决相关风险依赖在应用软件中编写格外的业务逻辑处理。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖北省楚建易网络科技有限公司,未经湖北省楚建易网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111354429.7/2.html,转载请声明来源钻瓜专利网。