本发明涉及参数缓存,尤其涉及一种参数缓存管理方法和系统。
背景技术:
1、随着it技术的不断发展,软件工程师们通过增加网络带宽、升级硬件配置,提高应用软件的处理力,缩短应用软件的响应时间。并进一步地对应用软件引入数据缓存机制,将常用的热点数据进行缓存,进而达到提升性能、减少服务器负载、高并发处理能力、避免热点数据瓶颈、节约成本、增强可扩展性以及改善用户体验的目的。
2、当前,服务端应用软件使用的缓存技术种类繁多,根据应用场景和需求的不同,主要分为本地缓存和分布式缓存。在实际应用中,现有的缓存方式存在以下不足:1.无论是本地缓存和分布式缓存,缓存中的数据与主数据缺少同步和核对机制,难以保证缓存中数据与主数据的一致性,当主数据进行更新维护操作时,参数应用端需要缺少框架层封装,对于应用具有较强的倾入性;2.当前的应用在使用缓存技术时,只能在本地缓存和分布式缓存中择一使用,无法做到根据不同的应用场景选择不同的缓存方式,更无法在不影响应用正常提供服务的前提下切换缓存方式;3.当在分布式架构下使用本地缓存,无法保障跨应用调用时,多个应用本地缓存中数据的一致性。
3、因此,如何提供一种高性能缓存架构,在保障数据一致性的前提下同时适用于本地缓存和分布式缓存,成为亟待解决的技术问题。
技术实现思路
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、缓存核对单元从参数加载单元接收参数记录,将接收的参数记录与参数缓存组件中参数记录进行参数版本号比对,当接收的参数记录的参数版本号不大于参数缓存组件中参数记录的参数版本号,通过通用技术参数服务端访问组件调用参数同步管理单元修改参数同步记录中的参数状态;当接收的参数记录的参数版本号大于参数缓存组件中参数记录的参数版本号,清除参数缓存组件中的参数记录,将接收的参数记录写入参数缓存组件中,通过通用技术参数服务端访问组件调用参数同步管理单元修改参数同步记录中的参数状态。
36、根据本发明的第二方面,提供一种参数缓存管理系统,该系统用于:
37、通过参数客户端的参数加载单元从参数服务端的参数数据库中加载参数记录,将加载的参数记录缓存至参数缓存组件中;
38、通过参数客户端的参数查询单元从参数缓存组件中查询参数记录,当在参数缓存组件中查询不到参数记录,从参数服务端的参数数据库查询获取参数记录;
39、通过参数客户端的参数版本一致性控制单元对参数查询单元获取的参数记录进行版本一致性判断;
40、通过参数客户端的缓存切换单元修改参数缓存组件,调用参数加载单元将参数记录缓存至修改后的参数缓存组件中;
41、通过消息中间件监听参数同步消息,当参数服务端的参数维护单元维护参数数据库中的参数时,通过参数同步管理单元和缓存同步单元将参数服务端的参数记录同步至参数客户端;
42、通过参数同步管理单元检查参数同步异常记录,通过参数核对单元和缓存核对单元对同步异常的参数记录进行修改。
43、根据本发明的第三方面,提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明第一方面所述的方法。
44、本实施例的参数缓存管理方法和系统,具有以下有益技术效果:
45、1.支持多种类型的缓存方式,如本地缓存和分布式缓存,本地缓存包括内存缓存和进程内缓存,分布式缓存如redis、apache ignit等,参数客户端可以根据参数使用特点选择合适的缓存方式。
46、2.支持参数同步功能,由参数服务端和参数客户端组成,参数服务端维护参数,自动将维护的参数同步给所有参数客户端应用。
47、3.支持缓存刷新能力,参数客户端主动获取参数服务端的参数变更通知,根据参数变更通知信息刷新缓存中的参数数据。
48、4.具有缓存类型变更感知能力,系统运行过程中,可根据参数特性变更参数缓存方式,由本地缓存变更为分布式缓存或由分布式缓存变更为本地缓存。参数客户端能感知到缓存类型的变化,并且自动切换到指定的缓存方式,应用系统不需要重启。
49、5.实现缓存高性能访问,参数客户端被应用系统集成,应用系统启动时,根据应用系统参数的配置将需要缓存的数据加载到缓存中,参数客户端提供了参数索引功能,应用系统从缓存中获取参数时,可以通过参数索引快速从缓存中获取需要的参数数据。
50、6.解决高性能下的数据一致性问题,通过参数同步和参数核对保证参数客户端与参数服务端的数据一致性。
51、7.具有缓存防击穿功能,应用系统启动时,根据应用系统参数的配置将需要缓存的数据加载到缓存,运行过程中,如果参数发生变化支持增量或全量同步。如果新增的参数未及时同步到参数客户端,可根据参数特点设置获取参数方式是否允许穿透到主数据源,从主数据源获取到的参数同步缓存并返回给参数获取方,有效避免再次穿透到主数据源获取数据;如果参数不允许穿透到主数据源,可根据参数要求选择上一个参数版本或直接结束交易处理。
52、8.支持多数据中心部署,同一数据中心的参数客户端应用从本系统的参数服务端应用获取参数,当且仅当同数据中心的参数服务端应用不可用的情况下,自动切换到备份数据中心的参数服务端应用获取参数。
1.一种参数缓存管理方法,其特征在于,所述参数缓存管理方法,包括:
2.根据权利要求1所述的参数缓存管理方法,其特征在于,通过参数客户端的参数加载单元从参数服务端的参数数据库中加载参数记录,将加载的参数记录缓存至参数缓存组件中,包括:
3.根据权利要求2所述的参数缓存管理方法,其特征在于,参数缓存配置信息包括需要缓存的参数列表和参数缓存类型。
4.根据权利要求1所述的参数缓存管理方法,其特征在于,通过参数客户端的参数查询单元从参数缓存组件中查询参数记录,当在参数缓存组件中查询不到参数记录,从参数服务端的参数数据库查询获取参数记录,包括:
5.根据权利要求1所述的参数缓存管理方法,其特征在于,通过参数客户端的参数版本一致性控制单元对参数查询单元获取的参数记录进行版本一致性判断,包括:参数查询单元在获取参数记录后,通过参数版本一致性控制单元将参数记录与上下文缓存区中缓存参数的进行版本参数比对,当参数查询单元获取的参数记录与上下文中缓存参数的版本参数不一致,抛出参数记录的版本不一致提示,结束参数查询。
6.根据权利要求1所述的参数缓存管理方法,其特征在于,通过参数客户端的缓存切换单元修改参数缓存组件,调用参数加载单元将参数记录缓存至修改后的参数缓存组件中,包括:
7.根据权利要求1所述的参数缓存管理方法,其特征在于,通过消息中间件监听参数同步消息,当参数服务端的参数维护单元维护参数数据库中的参数时,通过参数同步管理单元和缓存同步单元将参数服务端的参数记录同步至参数客户端,包括:
8.根据权利要求7所述的参数缓存管理方法,其特征在于,采用参数服务端的参数维护单元对参数数据库中的参数进行维护,包括:对参数数据库中的参数创建、修改或删除。
9.根据权利要求1所述的参数缓存管理方法,其特征在于,通过参数同步管理单元检查参数同步异常记录,通过参数核对单元和缓存核对单元对同步异常的参数记录进行修改,包括:
10.一种参数缓存管理系统,其特征在于,所述系统用于: