实现本地缓存刷新的方法及系统技术方案

技术编号:36216036 阅读:10 留言:0更新日期:2023-01-04 12:13
本发明专利技术公开了一种实现本地缓存刷新的方法及系统,涉及分布式技术领域,其中该方法包括:在更新应用数据库后,生成本地缓存刷新通知,将本地缓存刷新通知发送至Redis的预设频道;所述预设频道被多个分布式的微服务预先订阅;订阅所述预设频道的每一微服务在监听到本地缓存刷新通知时,根据本地缓存刷新通知,执行本地缓存的更新操作;所述微服务启动时根据预先配置的文件加载并使用本地缓存,本发明专利技术可以基于Redis发布订阅特性实现本地缓存刷新功能的方法,保证了微服务架构中各个微服务中本地缓存与数据库高效的数据同步,在提升系统处理能力的同时,增强了系统的可用性及稳定性。增强了系统的可用性及稳定性。增强了系统的可用性及稳定性。

【技术实现步骤摘要】
实现本地缓存刷新的方法及系统


[0001]本专利技术涉及分布式
,尤其涉及一种实现本地缓存刷新的方法及系统。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]近年来,随着分布式、微服务架构的兴起,一个业务系统一般由多个微服务应用进行承载。微服务应用中广泛采用分布式缓存和本地缓存来降低数据库的查询压力,其中本地缓存维护在微服务应用中,需要考虑数据库更新后如何保障多个微服务实例中本地缓存数据的一致性及时效性。

技术实现思路

[0004]本专利技术实施例提供一种实现本地缓存刷新的方法,用以保证微服务架构中各个微服务中本地缓存与数据库高效的数据同步,该方法包括:
[0005]在更新应用数据库后,生成本地缓存刷新通知,将本地缓存刷新通知发送至Redis的预设频道;所述预设频道被多个分布式的微服务预先订阅;
[0006]订阅所述预设频道的每一微服务在监听到本地缓存刷新通知时,根据本地缓存刷新通知,执行本地缓存的更新操作;所述微服务启动时根据预先配置的文件加载并使用本地缓存。
[0007]本专利技术实施例还提供一种实现本地缓存刷新的系统,用以保证微服务架构中各个微服务中本地缓存与数据库高效的数据同步,该系统包括:
[0008]数据管理服务装置,用于在更新应用数据库后,生成本地缓存刷新通知,将本地缓存刷新通知发送至Redis的预设频道;所述预设频道被多个分布式的微服务预先订阅;
[0009]每一微服务,用于在监听到本地缓存刷新通知时,根据本地缓存刷新通知,执行本地缓存的更新操作;所述微服务启动时根据预先配置的文件加载并使用本地缓存。
[0010]本专利技术实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实现本地缓存刷新的方法。
[0011]本专利技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实现本地缓存刷新的方法。
[0012]本专利技术实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述实现本地缓存刷新的方法。
[0013]本专利技术实施例中,实现本地缓存刷新的方案,通过:在更新应用数据库后,生成本地缓存刷新通知,将本地缓存刷新通知发送至Redis的预设频道;所述预设频道被多个分布式的微服务预先订阅;订阅所述预设频道的每一微服务在监听到本地缓存刷新通知时,根据本地缓存刷新通知,执行本地缓存的更新操作;所述微服务启动时根据预先配置的文件
加载并使用本地缓存,实现基于Redis发布订阅特性实现本地缓存刷新功能的方法,保证了微服务架构中各个微服务中本地缓存与数据库高效的数据同步,在提升系统处理能力的同时,增强了系统的可用性及稳定性。
附图说明
[0014]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0015]图1为本专利技术实施例中实现本地缓存刷新的方法的流程示意图;
[0016]图2为本专利技术实施例中实现本地缓存刷新的方法的系统架构示意图;
[0017]图3为本专利技术实施例中数据管理服务装置的工作方法示意图;
[0018]图4为本专利技术实施例中微服务的工作方法示意图;
[0019]图5为本专利技术实施例中实现本地缓存刷新的系统的结构示意图。
具体实施方式
[0020]为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。
[0021]在介绍本专利技术实施例之前,首先对本专利技术涉及的名词进行介绍。
[0022]1、分布式:将一个大型的系统分为几个子系统,通过计算机网络分布到多台主机上,多个主机一起协同完成工作。
[0023]2、微服务:是一种新型的软件架构,把一个大型的单体应用程序和服务拆分为多个支持的微服务。
[0024]3、缓存:数据交换的缓冲区,缓存是存在内存中的,访问速度比从硬盘中读取要快。
[0025]4、本地缓存:与应用在同一个进程中的缓存组件,缓存中的数据读取和写入速度非常快,没有额外的网络开销。
[0026]5、分布式缓存:独立部署的进程,与应用相隔离,通过网络为多个应用提供缓存服务的组件。
[0027]6、Redis:流行的分布式缓存框架之一,不但提供key

value数据的快速写入、读取和持久化,还提供发布订阅等功能。Redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key

Value数据库,并提供多种语言的API。
[0028]7、Redis发布订阅:Redis提供的一种消息通信模式,发布者可以向指定的频道发送消息,订阅者可以订阅一个或多个频道来接收相应消息。
[0029]下面对本专利技术的背景及专利技术人发现技术问题进而提出本专利技术的思路进行介绍。
[0030]1)Redis发布订阅
[0031]Redis提供SUBSCRIBE命令来订阅某个频道,同时提供PUBLISH命令向指定频道发
送消息,返回值为收到该消息的订阅者的数量。
[0032]2)本地缓存刷新
[0033]基于本地缓存实现框架,根据Redis中的缓存刷新消息对本地缓存相应数据进行创建、修改和删除等相关操作。
[0034]现有的方案包括:
[0035]1)重启微服务应用
[0036]微服务重新启动后会重新加载数据库中相关信息到本地缓存。
[0037]2)调用微服务应用提供的缓存刷新服务
[0038]微服务中提供缓存刷新服务,更新数据库记录后调用各微服务的每个实例以更新本地缓存数据。
[0039]上面两种方案存在的技术问题是:
[0040]第一种重启微服务应用会影响微服务的可用性及稳定性,且为了保证微服务整体的可用性,一般会按实例数分批重启,期间仍在对外提供服务的应用存在缓存数据失效的问题。
[0041]第二种方法适用于微服务实例数量固定的场景,但微服务架构一般要支持弹性伸缩,即可以动态的增加或减少实例,此场景下第二种方法由于无法确定增加的微服务实例信息,会导致部分实例的本地缓存无法更新。
[0042]基于现有方式的局限与不足,本专利技术实施例提出了一种实现本地缓存刷新的方案,该方案为一种基于Redis发布订本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现本地缓存刷新的方法,其特征在于,包括:在更新应用数据库后,生成本地缓存刷新通知,将本地缓存刷新通知发送至Redis的预设频道;所述预设频道被多个分布式的微服务预先订阅;订阅所述预设频道的每一微服务在监听到本地缓存刷新通知时,根据本地缓存刷新通知,执行本地缓存的更新操作;所述微服务启动时根据预先配置的文件加载并使用本地缓存。2.如权利要求1所述的实现本地缓存刷新的方法,其特征在于,订阅所述预设频道的每一微服务在监听到本地缓存刷新通知时,根据本地缓存刷新通知,执行本地缓存的更新操作,包括:订阅所述预设频道的每一微服务在监听到本地缓存刷新通知时,根据本地缓存刷新通知,执行本地缓存的创建、修改和删除的操作。3.如权利要求1所述的实现本地缓存刷新的方法,其特征在于,每一微服务包括:缓存刷新处理单元和本地缓存服务单元;订阅所述预设频道的每一微服务在监听到本地缓存刷新通知时,根据本地缓存刷新通知,执行本地缓存的更新操作,包括:缓存刷新处理单元在监听到本地缓存刷新通知时,将本地缓存刷新通知发送至订阅所述预设频道的每一微服务的本地刷新服务单元;本地刷新服务单元根据本地缓存刷新通知,执行本地缓存的更新操作。4.如权利要求1所述的实现本地缓存刷新的方法,其特征在于,在更新应用数据库后,生成本地缓存刷新通知,将本地缓存刷新通知发送至Redis的预设频道,包括:在更新应用数据库后,生成待更新的缓存数据类型名称、缓存更新操作类型和缓存数据主键作为本地缓存刷新通知;将本地缓存刷新通知实例化;将实例化的本地缓存刷新通知发送至Redis的预设频道。5.一种实现本地缓存刷新的系统,其特征在于,包括:数据管理服务装置,用于在更新应用数据库后,生成本地...

【专利技术属性】
技术研发人员:安凯
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1