CN113918857A - 一种提高分布式web应用系统性能的三级缓存加速方法 - Google Patents
一种提高分布式web应用系统性能的三级缓存加速方法 Download PDFInfo
- Publication number
- CN113918857A CN113918857A CN202111200122.1A CN202111200122A CN113918857A CN 113918857 A CN113918857 A CN 113918857A CN 202111200122 A CN202111200122 A CN 202111200122A CN 113918857 A CN113918857 A CN 113918857A
- Authority
- CN
- China
- Prior art keywords
- cache
- level cache
- data
- service
- client
- 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
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/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种提高分布式WEB应用系统性能的三级缓存加速方法,包括步骤一、规划缓存数据存储结构:缓存数据存储结构可分为元数据与主数据;步骤二、搭建三级缓存服务包括:第1步、使用浏览器端本地存储搭建客户端第三级缓存服务,客户端请求后端接口时首先从三级缓存中查找,如果命中且版本未过期则直接读取客户端缓存;第2步、使用缓存中间件搭建第二级缓存服务,用于存储进行聚合运算后可被客户端直接使用的结果数据;第3步、使用缓存中间件搭建应用服务的一级缓存服务;步骤三、完成数据更新,本发明通过三级缓存的应用减少了网络交互次数及聚合运算次数,提高了系统整体性能且通过数据更新策略解决了数据不一致问题。
Description
技术领域
本发明属于计算机数据存储技术领域,特别涉及一种提高分布式WEB应用系统性能的三级缓存加速方法。
背景技术
目前,随着终端用户快速增加,系统应用频率越来越高,大多数应用系统逐步由单体应用演变为分布式WEB应用。当面对大量并发访问时数据库服务器的磁盘I/O往往会成为系统的瓶颈,由于内存的性能具有极高的优势,使用缓存技术可使得性能得到极大的提升,因此缓存技术也得到了广泛的使用,特别是对于查询密集型系统而言更是如此。
传统的缓存使用方式是:在包含具体业务的微服务应用下使用缓存技术,热点数据被加载到缓存中间件中,当发生数据变更或缓存过期时更新缓存数据,缓存中间件保存的始终都是符合用户预期的数据。这种方式是非常有用的,使用缓存数据代替请求数据库,能解决频繁访问数据库的问题。但这种的方法有几个缺点:一是只能解决某个数据接口内部数据请求的的情况,不能解决多个服务结果聚运算的缓存使用问题;二是不能充分利用缓存数据减少网络请求次数。
发明内容
本发明提出一种提高分布式WEB应用系统性能的三级缓存加速方法,通过引入三级缓存技术提升缓存使用效率,减少网络请求及服务器压力,使得系统整体性能得到较大的提升。
本发明的技术方案是这样实现的:一种提高分布式WEB应用系统性能的三级缓存加速方法,包括:
步骤一、规划缓存数据存储结构;
缓存数据存储结构可分为元数据与主数据两部分;
元数据包括:缓存更新方式、版本号、过期时间、请求时间、请求接口服务名、请求方法、参数类型、请求参数;
主数据根据具体业务场景进行规划并存储;
步骤二、搭建三级缓存服务,包括下列子步骤:
第1步、使用浏览器端本地存储搭建客户端第三级缓存服务,客户端请求后端接口时首先从三级缓存中查找,如果命中且版本未过期则直接读取客户端缓存;
第2步、使用缓存中间件搭建第二级缓存服务。用于存储进行聚合运算后可被客户端直接使用的结果数据;
第3步、使用缓存中间件搭建应用服务的一级缓存服务;
步骤三、完成数据更新,包括下列子步骤:
第1步、通过数据修改、新增、删除等操作导致缓存数据更新,将变更情况结果写入一级缓存,变更一级缓存信息的版本号及过期时间;
第2步、各级缓存根据过期时间或向版本服务获取最新版本号判断是否过期,如果已过期,则继续向后请求更高一层的缓存,直至全部过期的情况下再次请求数据库加载最新数据。
首先通过客户端浏览器环境的本地存储构建第三级缓存,如果本地存储中命中缓存且版本号未发生变化(或过期策略标记未过期),则直接使用本地存储数据,如果未命中或版本号已发生变化,则将请求发送至二级缓存服务。二级缓存服务如果未命中则继续将请求发送至一级缓存,并在一级缓存响应数据基础上进行聚合运算,形成可被客户端直接使用的数据并进行缓存,否则直接将二级缓存结果返回。一级缓存接收来自于二级缓存服务的请求,如果未命中缓存则向数据库发送请求,响应结果并更新一级缓存数据,否则直接返回一级缓存中的数据。同时,应用程序修改数据时,同时更新数据库和一级缓存主数据与版本号及过期时间等元数据,保障缓存与数据库数据的一致性。
作为一种优选的实施方式,其元数据中的缓存更新方式包括设置过期时间方式与设置版本号方式两种;参数类型根据具体业务进行配置,可与当前用户相关也可与当前用户无关,与当前用户无关的类型可更大程度的提高缓存命中率,但不管此处是否与当前用户相关,用户鉴权环节都是必不可少的。元数据中的请求参数名按照ascii码表顺序排序并拼接参数值(如果参数类型与当前用户相关还需要在开头部分增加当前用户的鉴权信息)后进行使用哈希算法取摘要后存储。
作为一种优选的实施方式,其步骤二搭建三级缓存服务的第1步使用sessionStorage或localStorage存储。sessionStorage用于版本号的缓存更新方式(较为实时的缓存数据存储)、localStorage用于根据过期时间更新缓存方式(非实时更新数据存储)。
作为一种优选的实施方式,其步骤二搭建三级缓存服务的第2步二级缓存的数据为在一级缓存基础上进行聚合运算处理后的结果(可对多个一级缓存结果进行聚合运算),如果业务数据较为简单,无需进行聚合等运算处理,那么二级缓存充当一级缓存的代理角色,将请求直接转交一级缓存处理,并将响应结果返回至客户端。
作为一种优选的实施方式,其步骤二搭建三级缓存服务的第3步,第一级缓存仅与数据库结果保持一致即可,无需进行复杂的聚合运算处理,这样在数据更新时就无需依赖其他资源进行聚合运算,每个具体业务只关注本身数据即可。
作为一种优选的实施方式,其步骤三第1步业务数据发生变更的情况下,更新数据库的同时,更新第三级缓存的版本号。版本号的创建规则可以用服务器时间戳。
作为一种优选的实施方式,其步骤三第2步如果是版本号的缓存更新方式,客户端使用缓存时需向服务网关版本校验服务验证版本号,在未过期的情况下允许使用缓存,否则逐级向更高级缓存服务请求数据。
采用了上述技术方案后,本发明的有益效果是:
通过三级缓存的应用大大减少了网络交互次数及聚合预算等运算次数,提高了系统整体性能,与此同时通过数据更新策略解决了数据不一致问题,充分利用缓存优势,将一级缓存结果集进行聚合预算的数据也纳入进来,可极大的减少运算次数,提高系统性能;将缓存多级化,充分利用浏览器及服务器各层资源,减少网络请求次数,提升整体系统性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种提高分布式WEB应用系统性能的三级缓存加速方法,包括:
步骤一、规划缓存数据存储结构;
缓存数据存储结构可分为元数据与主数据两部分;
元数据包括:缓存更新方式、版本号、过期时间、请求时间、请求接口服务名、请求方法、参数类型、请求参数;
主数据根据具体业务场景进行规划并存储;
步骤二、搭建三级缓存服务,包括下列子步骤:
第1步、使用浏览器端本地存储搭建客户端第三级缓存服务,客户端请求后端接口时首先从三级缓存中查找,如果命中且版本未过期则直接读取客户端缓存;
第2步、使用缓存中间件搭建第二级缓存服务。用于存储进行聚合运算后可被客户端直接使用的结果数据;
第3步、使用缓存中间件搭建应用服务的一级缓存服务;
步骤三、完成数据更新,包括下列子步骤:
第1步、通过数据修改、新增、删除等操作导致缓存数据更新,将变更情况结果写入一级缓存,变更一级缓存信息的版本号及过期时间;
第2步、各级缓存根据过期时间或向版本服务获取最新版本号判断是否过期,如果已过期,则继续向后请求更高一层的缓存,直至全部过期的情况下再次请求数据库加载最新数据。
首先通过客户端浏览器环境的本地存储构建第三级缓存,如果本地存储中命中缓存且版本号未发生变化(或过期策略标记未过期),则直接使用本地存储数据,如果未命中或版本号已发生变化,则将请求发送至二级缓存服务。二级缓存服务如果未命中则继续将请求发送至一级缓存,并在一级缓存响应数据基础上进行聚合运算,形成可被客户端直接使用的数据并进行缓存,否则直接将二级缓存结果返回。一级缓存接收来自于二级缓存服务的请求,如果未命中缓存则向数据库发送请求,响应结果并更新一级缓存数据,否则直接返回一级缓存中的数据。同时,应用程序修改数据时,同时更新数据库和一级缓存主数据与版本号及过期时间等元数据,保障缓存与数据库数据的一致性。
其元数据中的缓存更新方式包括设置过期时间方式与设置版本号方式两种;参数类型根据具体业务进行配置,可与当前用户相关也可与当前用户无关,与当前用户无关的类型可更大程度的提高缓存命中率,但不管此处是否与当前用户相关,用户鉴权环节都是必不可少的。元数据中的请求参数名按照ascii码表顺序排序并拼接参数值(如果参数类型与当前用户相关还需要在开头部分增加当前用户的鉴权信息)后进行使用哈希算法取摘要后存储。
其步骤二搭建三级缓存服务的第1步使用sessionStorage或localStorage存储。sessionStorage用于版本号的缓存更新方式(较为实时的缓存数据存储)、localStorage用于根据过期时间更新缓存方式(非实时更新数据存储)。
其步骤二搭建三级缓存服务的第2步二级缓存的数据为在一级缓存基础上进行聚合运算处理后的结果(可对多个一级缓存结果进行聚合运算),如果业务数据较为简单,无需进行聚合等运算处理,那么二级缓存充当一级缓存的代理角色,将请求直接转交一级缓存处理,并将响应结果返回至客户端。
其步骤二搭建三级缓存服务的第3步,第一级缓存仅与数据库结果保持一致即可,无需进行复杂的聚合运算处理,这样在数据更新时就无需依赖其他资源进行聚合运算,每个具体业务只关注本身数据即可。其步骤三第1步业务数据发生变更的情况下,更新数据库的同时,更新第三级缓存的版本号。版本号的创建规则可以用服务器时间戳。其步骤三第2步如果是版本号的缓存更新方式,客户端使用缓存时需向服务网关版本校验服务验证版本号,在未过期的情况下允许使用缓存,否则逐级向更高级缓存服务请求数据。
客户端三级缓存服务,用于在客户端存储上缓存热点数据,客户端无符合条件的数据时向二级缓存请求数据并更新此处数据;
客户端缓存数据的元数据中的请求参数名按照ascii码表顺序排序并拼接参数值(如果参数类型与当前用户相关还需要在开头部分增加当前用户的鉴权信息)后进行使用哈希算法取摘要后存储。使用这种方式的目的在于保证请求参数未发生变化且缓存未过期的情况下快速找到缓存数据。
客户端缓存可使用本地存储sessionStorage或localStorage进行存储。sessionStorage用于版本号的缓存更新方式(较为实时的缓存数据存储)、localStorage用于根据过期时间更新缓存方式(非实时更新数据存储),这样可以保证非实时更新数据能较长时间的保存下来,实时更新数据在退出系统时则可做自动删除处理。
二级缓存用于存储在一级缓存基础上进行聚合运算处理后的结果(可对多个一级缓存结果进行聚合运算),如果业务数据较为简单,无需进行聚合等运算处理,那么二级缓存充当一级缓存的代理角色,将请求直接转交一级缓存处理,并将响应结果返回至客户端。这样可以节约服务器资源,减少运算次数,如果无需复杂运算,二级缓存可直接转发请求,减少资源消耗。
一级缓存服务(具体业务服务缓存),用于缓存本业务模块专有热点数据。
工作流程如下:
a、客户端发起请求,向本地三级缓存获取数据,通过本地缓存服务校验是否存在满足条件的数据,如果缓存是通过版本号控制的策略,那么向二级缓存请求版本号是否已过期,未过期时客户端直接将本地数据取出使用,过期时二级缓存返回最新数据,客户端变更本地缓存;如果缓存通过到期时间控制的策略,客户端校验本地缓存是否到期,未到期的情况下直接取出使用,否则向二级缓存请求最新数据。
b、二级缓存接收客户端请求,完成客户端版本号校验,如果客户端版本过期则从二级缓存中提取最新数据并返回,否则仅向客户单反馈缓存未过期即可。如果二级缓存中未命中,则继续向三级缓存请求数据,数据请求完毕后,二级缓存服务通过一系列运算形成可直接提供给客户端使用的二级缓存数据并进行存储。如果一级缓存数据可被直接使用,无需经过聚合加工运算,那么二级缓存不再缓存数据,而是直接将请求转发给一级缓存处理。
c、一级缓存服务接收二级缓存服务请求,本地缓存无效的情况下,向数据库请求最新数据并更新三级缓存数据,否则直接将结果返回。当数据发生变更时,应用程序同时更改数据库及一级缓存数据。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种提高分布式WEB应用系统性能的三级缓存加速方法,其特征在于,包括:
步骤一、规划缓存数据存储结构:
缓存数据存储结构可分为元数据与主数据两部分;
其中元数据包括:缓存更新方式、版本号、过期时间、请求时间、请求接口服务名、请求方法、参数类型和请求参数;
主数据根据具体业务场景进行规划并存储;
步骤二、搭建三级缓存服务,包括下列子步骤:
第1步、使用浏览器端本地存储搭建客户端第三级缓存服务,客户端请求后端接口时首先从三级缓存中查找,如果命中且版本未过期则直接读取客户端缓存;
第2步、使用缓存中间件搭建第二级缓存服务,用于存储聚合运算后可被客户端直接使用的结果数据;
第3步、使用缓存中间件搭建应用服务的一级缓存服务;
步骤三、完成数据更新,包括下列子步骤:
第1步、通过数据修改、新增、删除操作导致缓存数据更新,将变更情况结果写入一级缓存,变更一级缓存信息的版本号及过期时间;
第2步、各级缓存根据过期时间或向版本服务获取最新版本号判断是否过期,如果已过期,则继续向后请求更高一层的缓存,直至全部过期的情况下再次请求数据库加载最新数据。
2.根据权利要求1所述的一种提高分布式WEB应用系统性能的三级缓存加速方法,其特征在于,所述元数据中的缓存更新方式包括设置过期时间方式与设置版本号方式两种;所述参数类型根据具体业务进行配置,包括与当前用户相关和与当前用户无关两种类型,其中与当前用户无关这一类型提高缓存命中率;所述元数据中的请求参数名按照ascii码表顺序排序并拼接参数值后进行使用哈希算法取摘要后存储,若参数类型与当前用户相关则在开头部分增加当前用户的鉴权信息。
3.根据权利要求1所述的一种提高分布式WEB应用系统性能的三级缓存加速方法,其特征在于,所述步骤二搭建三级缓存服务的第1步使用sessionStorage或localStorage存储,所述sessionStorage用于版本号的缓存更新方式所述localStorage用于根据过期时间更新缓存方式。
4.根据权利要求1所述的一种提高分布式WEB应用系统性能的三级缓存加速方法,其特征在于,所述步骤二搭建三级缓存服务的第2步二级缓存的数据为在一级缓存基础上进行聚合运算处理后的结果;若业务数据较为简单无需进行聚合运算处理,则二级缓存充当一级缓存的代理角色,将请求直接转交一级缓存处理,并将响应结果返回至客户端。
5.根据权利要求1所述的一种提高分布式WEB应用系统性能的三级缓存加速方法,其特征在于,所述步骤二搭建三级缓存服务中的第3步,第一级缓存仅与数据库结果保持一致不进行复杂的聚合运算处理。
6.根据权利要求1所述的一种提高分布式WEB应用系统性能的三级缓存加速方法,其特征在于,所述步骤三第1步业务数据发生变更的情况下,更新数据库的同时,更新第三级缓存的版本号,版本号的创建规则可用服务器时间戳。
7.根据权利要求1所述的一种提高分布式WEB应用系统性能的三级缓存加速方法,其特征在于,所述步骤三第2步如果是版本号的缓存更新方式,客户端使用缓存时需向服务网关版本校验服务验证版本号,在未过期的情况下允许使用缓存,否则逐级向更高级缓存服务请求数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111200122.1A CN113918857A (zh) | 2021-10-14 | 2021-10-14 | 一种提高分布式web应用系统性能的三级缓存加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111200122.1A CN113918857A (zh) | 2021-10-14 | 2021-10-14 | 一种提高分布式web应用系统性能的三级缓存加速方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918857A true CN113918857A (zh) | 2022-01-11 |
Family
ID=79240420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111200122.1A Pending CN113918857A (zh) | 2021-10-14 | 2021-10-14 | 一种提高分布式web应用系统性能的三级缓存加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918857A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915483A (zh) * | 2022-05-26 | 2022-08-16 | 深圳云创数安科技有限公司 | 应用服务调用方法、装置、设备及存储介质 |
CN117851456A (zh) * | 2024-01-05 | 2024-04-09 | 迪爱斯信息技术股份有限公司 | 一种集群中数据共享方法、系统和服务端 |
-
2021
- 2021-10-14 CN CN202111200122.1A patent/CN113918857A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915483A (zh) * | 2022-05-26 | 2022-08-16 | 深圳云创数安科技有限公司 | 应用服务调用方法、装置、设备及存储介质 |
CN117851456A (zh) * | 2024-01-05 | 2024-04-09 | 迪爱斯信息技术股份有限公司 | 一种集群中数据共享方法、系统和服务端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11647097B2 (en) | Providing access to managed content | |
US20040085980A1 (en) | System and method for maintaining transaction cache consistency in mobile computing environment | |
Zeng et al. | Efficient web content delivery using proxy caching techniques | |
US20110119444A1 (en) | Adaptive caching of data | |
CN113918857A (zh) | 一种提高分布式web应用系统性能的三级缓存加速方法 | |
CN107368608A (zh) | 基于arc替换算法的hdfs小文件缓存管理方法 | |
CN112162846B (zh) | 事务处理方法、设备及计算机可读存储介质 | |
WO2023011022A1 (zh) | 基于区块链的数据处理方法、设备及计算机可读存储介质 | |
WO2014161261A1 (zh) | 数据的存储方法及装置 | |
US11683316B2 (en) | Method and device for communication between microservices | |
Zhao et al. | A novel enhanced lightweight node for blockchain | |
CN109947718A (zh) | 一种数据存储方法、存储平台及存储装置 | |
CN116226200A (zh) | 一种基于bff架构的服务接口数据缓存方法、装置及设备 | |
CN113609167B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN101789963A (zh) | 数据同步系统 | |
CN112800066A (zh) | 索引管理的方法、相关设备及存储介质 | |
WO2023142605A1 (zh) | 一种基于区块链的数据处理方法和相关装置 | |
CN112817980B (zh) | 一种数据索引处理方法、装置、设备及存储介质 | |
CN101741889B (zh) | 一种网络服务集中管理的方法、系统及服务器 | |
CN109241021A (zh) | 一种文件查询方法、装置、设备及计算机可读存储介质 | |
KR102202645B1 (ko) | 관계형 엣지 서버들 간 데이터 공조 방법 | |
CN115238006A (zh) | 检索数据同步方法、装置、设备及计算机存储介质 | |
CN113297164A (zh) | 数据库系统、数据查询方法及装置 | |
CN113609130B (zh) | 获取网关接入数据的方法、装置、电子设备及存储介质 | |
Singh | A Broadcasting Scheme for Transaction Processing in a Wireless Environment |
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 |