CN114048409A - 缓存管理方法、装置、计算设备及存储介质 - Google Patents
缓存管理方法、装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN114048409A CN114048409A CN202111357841.4A CN202111357841A CN114048409A CN 114048409 A CN114048409 A CN 114048409A CN 202111357841 A CN202111357841 A CN 202111357841A CN 114048409 A CN114048409 A CN 114048409A
- Authority
- CN
- China
- Prior art keywords
- cache
- request
- data
- instance metadata
- management platform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000011161 development Methods 0.000 description 18
- 230000018109 developmental process Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 239000003795 chemical substances by application Substances 0.000 description 10
- 238000007405 data analysis Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000033772 system development Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 241000283965 Ochotona princeps Species 0.000 description 4
- 230000000712 assembly Effects 0.000 description 4
- 238000000429 assembly Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000012954 risk control Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 230000035515 penetration Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005923 long-lasting effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种适用于包含一个或多个缓存组件的缓存的管理方法和装置。所述缓存管理方法包括:接收来自客户端的数据请求,所述数据请求包含第一参数组合;根据所述第一参数组合向缓存接入管理平台发出缓存实例元数据调阅请求;接收由所述缓存接入管理平台响应所述缓存实例元数据调阅请求而返回的缓存实例元数据,所述缓存实例元数据包括缓存组件类型信息;根据所述缓存实例元数据构造缓存请求,并基于所述缓存请求从所述一个或多个缓存组件获取数据。本发明的缓存管理方法,借由统一缓存接入服务根据标识动态发现缓存组件,屏蔽缓存组件细节,统一缓存管理。
Description
技术领域
本发明涉及计算机技术,特别是涉及一种统一缓存管理的方法、装置、计算设备及存储介质。
背景技术
随着计算机技术,特别是互联网及大数据处理技术的高速发展,远程数据访问及处理的各种业务场景被不断开发并付诸应用,例如在线购物、仓储管理、新闻、视频服务等。这些业务场景都需要大量且频繁的数据访问,对于数据访问的速度要求也越来越高。
***主存储设备,由于其存储机制及访问方式的限制,一般难以满足这种频繁且高速的数据访问要求。在分布式***中,这种问题就会变得更加凸显。例如,在一个基于分布式***的在线购物***中,商品数据可能存储于位于不同位置的多个主存储设备中,用户也可能遍布一个甚至多个国家的不同地域。***每分钟可能需要处理成千上万来自不同地域的用户的数据请求,并且这种量级的数据访问可能是长期持续的,而往往大量的数据请求所对应的商品数据是相同的。如果每个数据请求都通过对数据库的直接查询实现,那么***的响应速度将会非常缓慢,***的并行处理能力将受到极大的限制。为了克服这些问题,在***开发实现时,通常会使用缓存来动态存储热点数据,提交***应用性能。
但是,缓存***的开发往往存在一定的困难。一方面因为不同***,甚至同一***内的不同设备或功能也需要采用不同开发语言实现,针对不同的开发语言,需要各自编写逻辑类似的代码或者框架来对接缓存组件。另一方面,缓存***,特别是分布式缓存***往往会采用多种不同的缓存组件来实现缓存的功能,例如Redis,Memcached,Pika,MongoDB等。多种缓存组件和多种不同开发语言的组合,会为***开发带来极大的负担,例如一个***使用了4种开发语言,3种缓存组件,那就需要开发12种缓存中间件客户端。这极大地影响了***开发的效率,并提高了***调试及运行中出现问题的概率。
发明内容
为了解决上述问题,本发明提出一种统一缓存接入服务或缓存中间层的概念,可在使用中实现开发语言无关(使用http交互),屏蔽具体缓存组件对接细节,实现无感知地切换具体缓存组件的效果。
本发明一方面提供了一种缓存管理方法,所述缓存包括一个或多个缓存组件,所述缓存管理方法包括:
接收来自客户端的数据请求,所述数据请求包含第一参数组合;
根据所述第一参数组合向缓存接入管理平台发出缓存实例元数据调阅请求;
接收由所述缓存接入管理平台响应所述缓存实例元数据调阅请求而返回的缓存实例元数据,所述缓存实例元数据包括缓存组件类型信息;
根据所述缓存实例元数据构造缓存请求,并基于所述缓存请求从所述一个或多个缓存组件获取数据。
本发明另一方面提供了一种缓存管理装置,包括:
数据请求接收模块,配置为接收来自客户端的数据请求,所述数据请求包含第一参数组合;
元数据调阅请求模块,配置为根据所述第一参数组合向缓存接入管理平台发出缓存实例元数据调阅请求;
元数据接收模块,配置为接收由所述缓存接入管理平台响应所述缓存实例元数据调阅请求而返回的缓存实例元数据,所述缓存实例元数据包括缓存组件类型信息;
缓存请求模块,配置为根据所述缓存实例元数据构造缓存请求,并基于所述缓存请求从所述一个或多个缓存组件获取数据。
具体地,上述各模块的功能可以由统一缓存接入服务所包括的一个或多个缓存代理实现,所述一个或多个缓存代理配置为:
接收所述来自客户端的数据请求;
向缓存接入管理平台发出缓存实例元数据调阅请求;
接收由所述缓存接入管理平台响应所述缓存实例元数据调阅请求而返回的缓存实例元数据;以及
根据所述缓存实例元数据构造缓存请求,并基于所述缓存请求从所述一个或多个缓存组件获取数据。
本发明又一方面提供了一种计算设备,所述计算设备包括:
存储器,用于存储计算机可执行指令;以及
处理器,用于运行所述计算机可执行指令,以执行本发明所提供的缓存管理方法。
本发明再一方面提供了一种非暂时性计算机可读存储介质,所述存储介质上存储有计算机可执行指令,当所述指令被计算机执行时,使得所述计算机执行本发明所提供的缓存管理方法。
使用本发明所提供的统一缓存接入服务,开发团队无需感知缓存组件的具体使用细节,也无需增加学习新缓存组件的成本,而可以依照团队内熟悉的技术体系处理http请求及响应,即可方便的使用缓存。
另外,引入统一缓存接入服务后,将由统一缓存接入服务根据标识动态发现缓存组件,屏蔽缓存组件细节,统一缓存管理。具体而言,本发明的统一缓存接入服务有以下几个优点:
·各个应用服务组件通过简单的http请求使用缓存,不用关心缓存组件细节;
·实现对所有缓存组件的统一治理,避免缓存雪崩,缓存穿透,在下游缓存组件不可用时可及时进行缓存组件切换,必要时对相关缓存组件降级;
·统一接入层,统一上报埋点,使得***可以对缓存服务的工作状况进行监控,并提供大数据分析的数据基础。
附图说明
图1是一个分布式缓存***构架示意图;
图2是本发明的缓存管理方法的一个流程图;
图3是一个适用于电商应用场景的本发明缓存管理结构示意图;
图4是本发明的缓存管理***结构示意图;
图5是本发明缓存管理***的缓存访问方式示意图。
具体实施方式
为了使本发明的原理及实现方法能够被读者方便地理解,以下结合附图以及示范性实施例对本发明做了详细的阐述。然而,本领域技术人员能够理解,本发明不限于这些示例性实施例,在本发明所提供的方案基础上,本领域的技术人员可以不经创造性劳动,即可进行若干等同变换,而实现基本相同的技术目的和效果。
本发明的统一缓存接入方法可以适用于多种需要通过缓存实现快速数据访问的应用场景,包括在线购物、仓储管理、新闻、视频服务等。以下主要结合在线购物即电商场景的应用来说明本发明的原理及实现方法。
如本申请中的示范性实施例所示,本发明的统一缓存接入方法特别适用于分布式缓存***,但并不排除本发明在其他类型的缓存***中的应用。
图1显示了一个典型的分布式缓存***构架。此类分布式缓存***在电商场景等需要支持大量用户从多个不同地理位置访问数据的应用场景中比较常用。
在分布式缓存***中,数据和文件往往存储于分散在不同地域的主存储设备上的数据库中,这些主存储设备包括数据库服务器和文件服务器等。与这些主存储设备对应,***中设置分布于不同区域的缓存设备,以存储常用数据或近期被应用程序调用过的数据。应用程序在接到数据请求之后,会首先从本地缓存查询相关数据,如本地缓存请求命中,则读取本地缓存中的对应数据,反馈至用户。如本地缓存请求未命中,应用程序需要向对应分布式缓存服务器请求相关数据,对分布式缓存服务器的数据请求,一般需要通过针对服务器上的缓存组件开发的对应的缓存中间件进行。如对分布式缓存的缓存请求命中,则读取对应分布式缓存中的相关数据,反馈至用户。如分布式缓存请求仍未命中,应用程序则需要按设定回源接口,向对应主存储设备请求相关数据,以反馈用户。
在此类分布式缓存***的开发和使用中,往往存在一定的困难。一方面因为不同***,甚至同一***内的不同设备或功能也需要采用不同开发语言实现,针对不同的开发语言,需要各自编写逻辑类似的代码或者框架来对接缓存组件。另一方面,此类分布式缓存***往往会采用多种不同的缓存组件来实现缓存的功能。多种缓存组件和多种不同开发语言的组合,会为***开发带来极大的负担。而计算技术的快速迭代以及数据需求的爆发式增长,意味着缓存***可能需要按较短的周期进行升级,例如按需求添加新的缓存组件。需求的增长和缓存***的变化,可能会导致现有的缓存管理服务不能充分利用***升级所带来的额外的数据存储和处理能力,导致用户需求得不到满足,影响用户体验。
有鉴于此,本发明在现有的缓存管理***中引入了一种统一缓存接入服务(Uniform Cache Service,UCS),以在开发和使用的过程中屏蔽具体缓存组件对接细节,实现无感知地切换具体缓存组件的效果。
图2是本发明的统一缓存接入服务操作方法的一个示意性流程图。如图2所示,本发明的缓存管理***运行时,首先由统一缓存接入服务收来自客户端的包含第一参数组合的数据请求(步骤S1)。所述的数据请求,可以直接来自客户端,也可以是客户端的指令或请求,经由应用服务的处理而生成的数据请求。统一缓存接入服务在接收到所述数据请求之后,可以通过对数据请求进行解析而获取其中所包含的第一参数组合。所述对数据请求的解析,也可以由应用服务来执行。所述第一参数组合可以包含所述数据请求对应的应用标识和对应应用子模块标识,并与存储于统一缓存接入管理平台(Uniform Cache Platform,UCP)中的一组缓存实例元数据唯一对应。每组缓存实例元数据包括缓存组件类型信息,用以确定相关数据请求所对应的缓存组件。在获取所述第一参数组合之后,所述统一缓存接入服务根据所述第一参数组合向所述统一缓存接入管理平台发出缓存实例元数据调阅请求(步骤S2)。所述统一缓存接入管理平台则可以响应所述缓存实例元数据调阅请求,并根据所述第一参数组合,从其所存储的缓存实例元数据中选定对应的缓存实例元数据,并返回给所述统一缓存接入服务。所述统一缓存接入服务在接收由所述统一缓存接入管理平台返回的缓存实例元数据后(步骤S3),根据所述缓存实例元数据构造缓存请求,并基于所述缓存请求从一个或多个缓存组件获取数据(步骤S4)。
具体应用中,在由统一缓存接入服务进行缓存读取之前,还可以由所述统一缓存接入服务向所述统一缓存接入管理平台发送注册声明,所述注册声明包括上述第一参数组合、回源接口和所述缓存组件类型信息。在缓存实例元数据的调阅失败,或者缓存请求未命中时,应用服务可以根据所述回源接口回源获取相关数据。而在根据回源接口回源获取数据之前,本发明的缓存管理方法还可以包括获取并使用分布式锁组件锁,以避免并发回源而对回源服务造成瞬时高并发压力,从而引起服务雪崩。
图3显示了本发明的方法应用于电商场景的一个示例。在电商场景中,用户往往通过外部请求发起方,即客户端,例如电商网站、移动终端单页面网站(例如基于http5的网页)或者电商应用程序App等,查询商品并下单购物。后台***接到用户订单请求之后,需要进行多项功能处理,包括风险控制、网络安全控制、用户信息查询、订单处理、优惠券应用等。各项功能处理往往需要通过对应的子***或基于对应子***内的数据完成。例如:需要通过风险控制子***来获取到订单对应用户是否黑产,是否存在恶意行为或限制下单人行为等相关数据;通过网络安全控制子***来获取订单对应用户是否为正常用户请求,是否存在网络攻击隐患等相关数据;通过用户信息查询子***来获取订单对应用户是否正常登陆,账户可用余额等相关信息;通过订单子***来获取订单对应用户进行重复下单限制等相关数据;通过优惠券子***来获取订单对应优惠券有效性判断等相关信息。
各个子***的数据存储于一个或多个主存储设备中,其中常用数据及近期使用数据由各自对应的缓存组件缓存。如果由应用服务直接对各缓存组件进行查询,则需借助多个不同的缓存中间件来实现,各个缓存中间件需要针对不同的缓存组件单独开发,并且视应用服务的开发语言不同,可能还需要以多种开发语言对各个缓存组件开发多个版本的缓存中间件,以在使用中供应用服务调用。由此会导致对应部分的***开发成本与缓存中间件的数量及开发语言的数量成比例增长,并可能使***的数据存储和处理能力得不到充分利用,降低***响应速度,影响用户购物体验。
为了降低***开发成本并改善用户体验,本发明在应用服务及各缓存组件之间引入了一个缓存中间层,应用服务可以经由缓存中间层,针对不同的处理任务,选择性接入对应子***的缓存组件进行查询,而不需借助多个不同的缓存中间件。
以下结合图4所示的本发明的缓存管理***结构示意图阐明缓存中间层的具体实现方式。
缓存管理***由客户端、应用服务、及后台数据处理子***构成。在电商场景的应用中,该客户端可以是图3中所示的商品查询及下单购物的电商网站、移动终端单页面网站(例如基于http5的网页)或电商应用程序App。该应用服务是接收客户端请求,并对其进行处理的功能模块或多种功能模块的组合。例如,在具体实施例中,该应用服务可以是购物车结算程序。所述后台数据处理子***包括主存储数据库(未在图中显示)、数据缓存结构、及查询平台/报表***/数据分析***。
其中数据缓存结构包括多个缓存组件,例如Redis集群、Memcached、Pika和其他类型的缓存组件。各缓存组件用于缓存风险控制、网络安全控制、订单处理、用户信息查询、优惠券应用等功能子***的数据。缓存组件与各功能子***之间可以是任意的对应关系,例如可以使用Redis集群缓存任意一种或多种功能子***的数据,任意一种功能子***的数据也可以缓存于任意一种或多种缓存组件中。
本发明的数据缓存结构的访问机制,即前述缓存中间层,包括统一缓存接入服务UCS及统一缓存接入管理平台UCP。其中统一缓存接入服务UCS用于接收应用服务的请求,并针对所接收到的请求,从对应的缓存组件获取对应数据,返回至应用服务。该统一缓存接入服务UCS包括一个或多个缓存代理,每个缓存代理即一个应用服务实例,用于代理应用服务的缓存请求,基于所接受到的缓存请求向统一缓存接入管理平台UCP发出询问,并基于统一缓存接入管理平台UCP的反馈选择对应缓存组件,从中读取数据反馈给应用服务。统一缓存接入管理平台UCP用于管理缓存接入服务,其在应用服务接入之前,登记应用服务向其提交的业务注册声明,以明确各种不同格式的应用请求与缓存组件之间的对应关系,并针对该统一缓存接入服务UCS的询问反馈相关请求对应的缓存组件信息。
应用服务在接入服务并接收客户端传来的具体业务请求之前,先向统一缓存接入管理平台UCP发送业务注册声明。注册声明中包含业务id、前缀、回源接口及缓存组件类型。其中业务id为接入方应用标识,前缀为接入方应用子模块标识,回源接口即接入方缓存回源接口,用于未命中缓存时回源,而缓存组件类型即业务请求对应的具体缓存组件,如Redis、Pika、Memcached等。
在电商场景的一个具体应用实例中,应用服务向统一缓存接入管理平台UCP发送到注册声明可以是如下格式:
业务id:cart
前缀:order
回源接口:http://192.168.10.125:8080/cart/order/get?orderid={}
缓存组件类型:Redis集群
其中,业务id表示该数据请求的业务类型是购物车结算,前缀表示该业务请求对应订单模块,回源接口表示在缓存查询未命中时,需要从***主存储设备获取相关数据的数据库查询路径,缓存组件类型表示该请求对应的缓存组件类型。
注册声明的内容即元数据。统一缓存接入管理平台UCP在接收到注册声明后,通过缓存元数据管理模块,将声明内容持久化存入存储组件中,登记业务id、前缀、回源接口及缓存组件类型。
其中,业务id和前缀的组合在统一缓存接入管理平台UCP中是全局唯一的组合,可用于唯一地确定缓存组件,并绑定对应的回源接口。例如:业务id:cart+前缀:order,表示购物车***下订单模块;而业务id:sales+前缀:TMS(transport management system),表示物流模块;业务id:DN+前缀:WMS(warehouse management system),表示仓储模块,等等。回源接口和缓存组件类型可按照相关数据的存储及缓存地址设定。按照声明中所包含的缓存组件类型,需要通过在统一缓存接入服务UCS中设定缓存代理预制对应的缓存组件访问功能。例如,如果声明的是Redis组件类型,则需要先在统一缓存接入服务UCS里预制Redis访问功能。
注册声明完成之后,由客户端响应用户的操作,生成并发送预定格式的请求至应用服务,应用服务解析客户端传送的请求,并将解析后的请求发送至统一缓存接入服务UCS,再由统一缓存接入服务UCS询问统一缓存接入管理平台UCP,以确定对应的缓存组件,进而通过该缓存组件获取相应数据。具体操作过程如图5所示。
再次参见图4,用户通过客户端,例如电商网站、移动终端单页面网站(例如基于http5的网页)或者电商应用程序App等进行商品查询和选择,并将选定商品加入购物车以在后续某个时间同购物车内其他商品一起购买或选择直接购买选定商品。客户端接到用户的结算请求或者直接购买请求之后,生成一个http订单请求,并将该订单请求传送至应用服务。该订单请求可以为如下格式:/ucs?bizId=cart&prefix=order&key=20210101888888。
如图4及图5所示,应用服务接到客户端传送的http购物车订单请求后,对该请求进行解析,确定业务id、前缀及键(key),并将解析的请求传送至统一缓存接入服务UCS。所述客户端请求解析的操作,也可以由统一缓存接入服务UCS执行。本发明引入缓存中间层后,只需http请求参数中带上业务id,前缀以及key即可获取到对应的缓存,而不用了解实际缓存存储细节。图5所示实例中,购物车订单请求所包含的业务id为cart(购物车),前缀为order(订单),key为20210101888888。
统一缓存接入服务UCS接收到业务请求后,根据业务id与前缀参数值从UCP获取元数据。该元数据的内容为:业务id:cart;前缀:order;回源接口:http://192.168.10.125.8080/cart/order/get?orderId={};缓存组件类型:Redis集群信息。统一缓存接入服务UCS在获取相关元数据之后,由统一缓存接入服务UCS中对应的缓存代理根据元数据缓存组件类型集群信息Redis集群构造Redis get请求:key=cart:order:20210101888888,以获取缓存数据。
如果在上述获取缓存的步骤命中不到缓存,则需要由应用服务进行回源操作,以从***主存储设备获取所需数据。此处的回源操作,可以由发起缓存查询请求的应用服务启动,也可以由另外的应用服务启动响应缓存查询未命中的事件启动。回源操作之前,需先由统一缓存接入服务UCS获取并使用分布式锁组件锁“cart:order:20210101888888”,以避免并发回源而对回源服务造成瞬时高并发压力,从而引起服务雪崩。
在上述步骤中获取到分布式锁后,由统一缓存接入服务UCS构造回源请求:http://192.168.10.125.8080/cart/order/get?orderId=20210101888888,以使应用服务可以从对应主存储设备中获取所需数据,并将所获取数据写入Redis集群,以提高后续对该数据的访问速度。
本发明另一方面还包括基于缓存服务的数据分析功能。
仍旧参见图4,经过统一缓存接入服务后,统一缓存接入服务UCS可以将缓存及回源查询信息上报,上报信息经过消息队列进行消费/清洗/存储后,可以被负责监控缓存工作状态的查询平台、报表***或数据分析***调用,使用大数据分析工具进行统计分析,也可以生成报表,用于分析缓存命中率(hits),监控回源接口响应时间,监控缓存组件工作状况等。此处消息队列消费模块的开发可以采用Spark、Flink组件,也可以使用其他任何用于消费消息队列的组件开发。数据埋点的存储可以采用Hive,也可以采用任意分布式存储组件存储。此处的信息上报,可以是每次查询之后的实时上报,也可以定时上报,或者有预先设定的事件触发上报。大数据分析结果,可以由分析工具生成统一的数据视图,方便***管理人员查看。具体的分析、报表制作及数据视图生成等操作,可以由第三方平台执行,也可以由UCP执行。由上述描述可见,本发明统一了缓存接入层和信息上报埋点,使得UCP可以方便及时地进行数据分析。
从上述描述可以看出,在引入缓存中间层后,一方面,可以由统一缓存接入服务根据标识动态发现缓存组件,而实现对于缓存内数据的读取。这使得各个***能通过简单的http请求使用缓存,不用关心缓存组件细节,在未命中缓存的时候自动回源。由于缓存组件可以被统一换成接入服务动态发现,也无需针对缓存组件暂停服务进行升级。另一方面,能实现对所有缓存组件做统一治理,使用分布式锁限制并发回源,避免缓存雪崩或缓存穿透,在下游缓存组件不可用时进行切换缓存组件甚至降级等功能。又一方面,引入缓存中间层后,可以免去对于不同缓存组件基于不同开发语言重复开发开发对应的缓存组件客户端的工作,降低了***开发成本。再一方面,通过统一数据埋点上报,有利于把握全局规则引擎执行情况。
虽然本申请将上述示例性方法描述为一系列的步骤或操作,但是应当理解,本发明不受本文所示步骤或操作的顺序的限制。以上步骤中的一个或多个可以以不同的顺序执行,其中某些步骤也可以与其他步骤同时执行。例如,统一缓存接入服务UCS下的多个缓存代理可以在统一缓存接入服务UCS在UCP完成注册声明后进行设置,也可以预先进行设置。此外,在实现本发明的方法时,不一定需要执行本申请所示的所有步骤。其中部分的操作可以预先执行,也可以在本发明实施时执行。数据埋点上报及数据分析的步骤,并非本发明的必要步骤,适当情况下,可以省略。缓存组件类型也不限于Redis、Memcached、Pika或MongoDB,可以是任意种可用于分布式缓存的组件。
根据本发明的另一个方面,还提供了一种缓存管理装置,包括数据请求接收模块、元数据调阅请求模块、元数据接收模块和缓存请求模块。各个模块可以以软件代码的形式实现,也可以以硬件和软件结合的形式实现。其中,数据请求接收模块被配置为接收来自客户端的数据请求,所述数据请求包含第一参数组合;元数据调阅请求模块被配置为根据所述第一参数组合向缓存接入管理平台发出缓存实例元数据调阅请求;元数据接收模块被配置为接收由所述缓存接入管理平台响应所述缓存实例元数据调阅请求而返回的缓存实例元数据,所述缓存实例元数据包括缓存组件类型信息;缓存请求模块被配置为根据所述缓存实例元数据构造缓存请求,并基于所述缓存请求从所述一个或多个缓存组件获取数据。
具体地,上述各模块的功能可以由统一缓存接入服务UCS所包括的一个或多个缓存代理实现,每个缓存代理即一个应用服务实例,用于代理应用服务的缓存请求。所述一个或多个缓存代理配置为实现上述各模块的功能,即接收所述来自客户端的数据请求,向缓存接入管理平台发出缓存实例元数据调阅请求,接收由所述缓存接入管理平台响应所述缓存实例元数据调阅请求而返回的缓存实例元数据,以及根据所述缓存实例元数据构造缓存请求,并基于所述缓存请求从所述一个或多个缓存组件获取数据。
根据本发明的又一方面,还提供了一种计算设备。该计算设备可以包括一个或多个处理器和存储器。存储器中存储有计算机可执行指令,该指令在由处理器执行时,使计算设备执行上述统一缓存接入方法的任一实施例。处理器可以是任何合适的处理设备,例如微处理器(microprocessor)、微控制器(microcontroller)、集成电路或其他合适的处理设备。存储器可以包括任何合适的计算***或介质,包括但不限于非暂时性计算机可读介质、随机存取存储器(RAM)、只读存储器(ROM)、硬盘、闪存或其他存储器设备。存储器可以存储计算机可执行指令,该指令可以由处理器执行,以使计算设备执行上述统一缓存接入方法的任一实施例。存储器还可以存储数据。本发明实施例中,处理器可以执行包括在指令中的各种模块,以便实现上述统一缓存接入方法的任一实施例。
根据本发明的再一方面,还提供了一种非暂时性计算机可读存储介质。所述存储介质上存储有计算机可执行指令,当所述指令被计算机执行时,使得所述计算机执行上述统一缓存接入方法的任一实施例。
应当理解,术语“模块”是指用于提供期望功能的计算机逻辑。因此,模块可以由硬件、专用电路、固件和/或软件及其组合来实现。在一个实施例中,模块是存储在存储设备上、加载到存储器中并且由处理器执行的程序代码文件,或者可以由存储在诸如RAM、硬盘或光学或磁性介质的有形计算机可读存储介质中的计算机程序产品(例如,计算机可执行指令)。
以上介绍了本发明的一些实施例和特征,本领域技术人员能够理解,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制。
Claims (11)
1.一种缓存管理方法,所述缓存包括一个或多个缓存组件,其特征在于,所述缓存管理方法包括:
接收来自客户端的数据请求,所述数据请求包含第一参数组合;
根据所述第一参数组合向缓存接入管理平台发出缓存实例元数据调阅请求;
接收由所述缓存接入管理平台响应所述缓存实例元数据调阅请求而返回的缓存实例元数据,所述缓存实例元数据包括缓存组件类型信息;
根据所述缓存实例元数据构造缓存请求,并基于所述缓存请求从所述一个或多个缓存组件获取数据。
2.根据权利要求1所述的方法,其中所述第一参数组合唯一对应所述缓存接入管理平台中的一组缓存实例元数据。
3.根据权利要求2所述的方法,其中所述第一参数组合包括所述数据请求对应的应用标识和对应应用子模块标识。
4.根据权利要求3所述的方法,包括向所述缓存接入管理平台发送注册声明,所述注册声明包括所述第一参数组合、回源接口及缓存组件类型。
5.根据权利要求4所述的方法,包括:
如果所述基于所述缓存请求从所述一个或多个缓存组件获取数据不成功,根据所述回源接口回源获取数据。
6.根据权利要求5所述的方法,在所述根据回源接口回源获取数据之前,所述方法还包括获取并使用分布式锁组件锁,以避免并发回源。
7.根据权利要求6所述的方法,其中在所述根据所述第一参数组合向缓存接入管理平台发出缓存实例元数据调阅请求之前,所述缓存管理方法还包括:
解析来自客户端的所述数据请求,获取所述第一参数组合。
8.一种缓存管理装置,其特征在于,所述缓存管理装置包括:
数据请求接收模块,配置为接收来自客户端的数据请求,所述数据请求包含第一参数组合;
元数据调阅请求模块,配置为根据所述第一参数组合向缓存接入管理平台发出缓存实例元数据调阅请求;
元数据接收模块,配置为接收由所述缓存接入管理平台响应所述缓存实例元数据调阅请求而返回的缓存实例元数据,所述缓存实例元数据包括缓存组件类型信息;
缓存请求模块,配置为根据所述缓存实例元数据构造缓存请求,并基于所述缓存请求从所述一个或多个缓存组件获取数据。
9.根据权利要求8所述的装置,所述装置包括一个或多个缓存代理,所述一个或多个缓存代理配置为:
接收所述来自客户端的数据请求;
向缓存接入管理平台发出缓存实例元数据调阅请求;
接收由所述缓存接入管理平台响应所述缓存实例元数据调阅请求而返回的缓存实例元数据;以及
根据所述缓存实例元数据构造缓存请求,并基于所述缓存请求从所述一个或多个缓存组件获取数据。
10.一种计算设备,包括:
存储器,用于存储计算机可执行指令;以及
处理器,用于运行所述计算机可执行指令,以执行权利要求1至7中任一项所述的方法。
11.一种非暂时性计算机可读存储介质,所述存储介质上存储有计算机可执行指令,当所述指令被计算机执行时,使得所述计算机执行权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111357841.4A CN114048409A (zh) | 2021-11-16 | 2021-11-16 | 缓存管理方法、装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111357841.4A CN114048409A (zh) | 2021-11-16 | 2021-11-16 | 缓存管理方法、装置、计算设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114048409A true CN114048409A (zh) | 2022-02-15 |
Family
ID=80209590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111357841.4A Pending CN114048409A (zh) | 2021-11-16 | 2021-11-16 | 缓存管理方法、装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114048409A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277838A (zh) * | 2022-07-28 | 2022-11-01 | 天翼云科技有限公司 | 云缓存数据库服务方法、装置、设备及可读存储介质 |
-
2021
- 2021-11-16 CN CN202111357841.4A patent/CN114048409A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277838A (zh) * | 2022-07-28 | 2022-11-01 | 天翼云科技有限公司 | 云缓存数据库服务方法、装置、设备及可读存储介质 |
CN115277838B (zh) * | 2022-07-28 | 2024-01-02 | 天翼云科技有限公司 | 云缓存数据库服务方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582303B (zh) | 通用组件调用方法、装置、计算机设备及存储介质 | |
US8694645B2 (en) | Tracking web server | |
US7062756B2 (en) | Dynamic object usage pattern learning and efficient caching | |
US8725794B2 (en) | Enhanced website tracking system and method | |
US20120158795A1 (en) | Entity triggers for materialized view maintenance | |
US7765196B2 (en) | Method and apparatus for web cache using database triggers | |
US9600299B2 (en) | Application object framework | |
US20020091721A1 (en) | Providing shared resources | |
US11210198B2 (en) | Distributed web page performance monitoring methods and systems | |
US10999399B2 (en) | Offline use of network application | |
CN111143383B (zh) | 一种数据更新方法、装置、电子设备及存储介质 | |
CN110233843B (zh) | 一种用户请求的处理方法及装置 | |
CN114048409A (zh) | 缓存管理方法、装置、计算设备及存储介质 | |
CN113360210A (zh) | 数据对账方法、装置、计算机设备和存储介质 | |
CA3023737C (en) | Processing application programming interface (api) queries based on variable schemas | |
CN111273964B (zh) | 一种数据加载方法及装置 | |
WO2021108416A1 (en) | Object-based search processing | |
CN112434037A (zh) | 数据处理方法、处理装置、数据处理设备和存储介质 | |
US10067808B2 (en) | Nondeterministic operation execution environment utilizing resource registry | |
US11716405B1 (en) | System and method for identifying cache miss in backend application | |
CN115080616A (zh) | 字典数据获取方法、装置、存储介质及电子设备 | |
CN114186148A (zh) | 页面加载方法、装置、电子设备及存储介质 | |
CN112181391A (zh) | 一种可动态扩展数据的方法及*** | |
EP2990960A1 (en) | Data retrieval via a telecommunication network | |
US8321844B2 (en) | Providing registration of a communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |