本发明涉及缓存,具体而言,涉及一种基于消息队列的缓存刷新方法及装置。
背景技术:
1、目前在大型的业务系统中,数据的产生与使用分布在不同的系统中,例如第一系统不产生数据但需要使用第二系统产生的数据。针对这种情况,可以在第一系统中设置一个缓存,用来存储第二系统的产生的数据,但第二系统的数据往往一直是在更新着的,如果第一系统缓存中存储的不是最新的数据,那就需要触发降级去第二系统的数据库中查询最新的数据,然后将查询到的最新的数据更新到第一系统的缓存中。但是从第二系统数据库查询数据效率太低,如果需要经常去第二系统数据库查询数据,将会影响第一系统的业务处理效率。针对这种情况现有技术急需一种有效的解决方案,以提高第一系统的业务处理效率。
2、本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
技术实现思路
1、本发明为了解决上述背景技术中的至少一个技术问题,提出了一种基于消息队列的缓存刷新方法及装置。
2、为了实现上述目的,根据本发明的一个方面,提供了一种基于消息队列的缓存刷新方法,该方法应用于第一系统,该方法包括:
3、获取第二系统发送的数据更新信息,其中,所述数据更新信息包含:数据标识信息以及更新后的数据;
4、根据所述数据更新信息生成缓存刷新通知消息,并把生成的缓存刷新通知消息写入消息队列;
5、从所述消息队列中拉取缓存刷新通知消息,若拉取的缓存刷新通知消息中包含数据标识信息和更新后的数据,则根据拉取的缓存刷新通知消息中的数据标识信息和更新后的数据对本地缓存中的数据进行更新,若拉取的缓存刷新通知消息中包含数据标识信息但不包含更新后的数据,则根据拉取的缓存刷新通知消息中的数据标识信息从所述第二系统获取对应的更新后的数据,然后对本地缓存中的数据进行更新。
6、可选的,根据所述数据更新信息生成缓存刷新通知消息,具体包括:
7、从所述数据更新信息中的更新后的数据中提取出数据属性;
8、若所述数据属性满足预设的配置规则,则根据所述数据更新信息中的数据标识信息生成缓存刷新通知消息;
9、若所述数据属性不满足所述配置规则,则根据所述数据更新信息中的数据标识信息及更新后的数据生成缓存刷新通知消息。
10、可选的,根据所述数据更新信息生成缓存刷新通知消息,具体包括:
11、从所述数据更新信息中的更新后的数据中提取出数据属性;
12、将所述数据属性输入到预设的处理方式预测模型中,得到所述处理方式预测模型输出的预测结果;
13、若所述预测结果为第一处理方式,则根据所述数据更新信息中的数据标识信息生成缓存刷新通知消息;
14、若所述预测结果为第二处理方式,则根据所述数据更新信息中的数据标识信息及更新后的数据生成缓存刷新通知消息。
15、可选的,根据所述数据更新信息生成缓存刷新通知消息,具体包括:
16、获取所述消息队列当前的状态信息;
17、若所述状态信息满足预设的状态条件,则根据所述数据更新信息中的数据标识信息及更新后的数据生成缓存刷新通知消息;
18、若所述状态信息不满足所述状态条件,则根据所述数据更新信息中的数据标识信息生成缓存刷新通知消息。
19、可选的,从所述消息队列中拉取缓存刷新通知消息,具体包括:
20、根据预设的频率从所述消息队列中拉取缓存刷新通知消息。
21、可选的,所述把生成的缓存刷新通知消息写入消息队列,具体包括:
22、先将生成的缓存刷新通知消息转化为目标数据结构,再将转化后的缓存刷新通知消息写入所述消息队列;
23、所述从所述消息队列中拉取缓存刷新通知消息,具体包括:
24、将拉取的缓存刷新通知消息从所述目标数据结构还原为原数据结构。
25、可选的,在所述把生成的缓存刷新通知消息写入消息队列之后,还包括:
26、将所述数据更新信息从本地删除。
27、为了实现上述目的,根据本发明的另一方面,提供了一种基于消息队列的缓存刷新装置,该装置包括:
28、数据更新信息获取单元,用于获取第二系统发送的数据更新信息,其中,所述数据更新信息包含:数据标识信息以及更新后的数据;
29、缓存刷新通知消息生成单元,用于根据所述数据更新信息生成缓存刷新通知消息,并把生成的缓存刷新通知消息写入消息队列;
30、消息拉取单元,用于从所述消息队列中拉取缓存刷新通知消息,若拉取的缓存刷新通知消息中包含数据标识信息和更新后的数据,则根据拉取的缓存刷新通知消息中的数据标识信息和更新后的数据对本地缓存中的数据进行更新,若拉取的缓存刷新通知消息中包含数据标识信息但不包含更新后的数据,则根据拉取的缓存刷新通知消息中的数据标识信息从所述第二系统获取对应的更新后的数据,然后对本地缓存中的数据进行更新。
31、为了实现上述目的,根据本发明的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于消息队列的缓存刷新方法的步骤。
32、为了实现上述目的,根据本发明的另一方面,还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现上述基于消息队列的缓存刷新方法的步骤。
33、为了实现上述目的,根据本发明的另一方面,还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述基于消息队列的缓存刷新方法的步骤。
34、本发明的有益效果为:
35、在本发明中,第二系统在进行数据更新后向第一系统发送数据更新信息,本发明根据数据更新信息生成缓存刷新通知消息,并把生成的缓存刷新通知消息写入消息队列,然后从所述消息队列中拉取缓存刷新通知消息,若拉取的缓存刷新通知消息中包含数据标识信息和更新后的数据,则根据拉取的缓存刷新通知消息中的数据标识信息和更新后的数据对本地缓存中的数据进行更新,若拉取的缓存刷新通知消息中包含数据标识信息但不包含更新后的数据,则根据拉取的缓存刷新通知消息中的数据标识信息从所述第二系统获取对应的更新后的数据,然后对本地缓存中的数据进行更新。由此实现了在第二系统的数据更新后能够自动将更新的数据更新到第一系统的缓存中,避免了第一系统在使用数据时频繁的需要去第二系统数据库中查询输出,有助于提高第一系统的业务处理效率。
1.一种基于消息队列的缓存刷新方法,其特征在于,应用于第一系统,所述方法包括:
2.根据权利要求1所述的基于消息队列的缓存刷新方法,其特征在于,根据所述数据更新信息生成缓存刷新通知消息,具体包括:
3.根据权利要求1所述的基于消息队列的缓存刷新方法,其特征在于,根据所述数据更新信息生成缓存刷新通知消息,具体包括:
4.根据权利要求1所述的基于消息队列的缓存刷新方法,其特征在于,根据所述数据更新信息生成缓存刷新通知消息,具体包括:
5.根据权利要求1所述的基于消息队列的缓存刷新方法,其特征在于,从所述消息队列中拉取缓存刷新通知消息,具体包括:
6.根据权利要求1所述的基于消息队列的缓存刷新方法,其特征在于,所述把生成的缓存刷新通知消息写入消息队列,具体包括:
7.根据权利要求1所述的基于消息队列的缓存刷新方法,其特征在于,在所述把生成的缓存刷新通知消息写入消息队列之后,还包括:
8.一种基于消息队列的缓存刷新装置,其特征在于,包括:
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任意一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至7任意一项所述方法的步骤。
11.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至7任意一项所述方法的步骤。