1.L2Cache 分布式二级缓存框架

l2cache 源码地址

一、简介

L2Cache 是一个基于内存RedisSpring Cache 实现的满足高并发场景下的分布式二级缓存框架。

L2Cache 并没有重复造轮子,它只是将目前市面上比较成熟、经得起考验的框架组合起来,封装屏蔽了复杂的缓存操作和实现原理,最终给开发者留出了一个简单易懂和易维护的分布式缓存开发工具。

二、如何使用

三、核心原理

四、重要数据

1、整体数据

  • 已在生产环境投产,目前主要应用在商品、优惠券、用户、营销等核心服务。
  • 经历过多年双十一、双十二,以及多次大促活动的流量洗礼
  • 支撑公司单月10亿GMV
  • 支撑全链路压测35W QPS
  • 支撑500w日活

2、下面提供一个【首页重构】时商品中心的压测数据,具体如下:

环境压测维度最高QPS最低QPS平均RT配置
单POD单接口5k+2k+50ms内1个pod,8c16g
集群单接口8w+1w+50ms内25个pod,8c16g
集群单链路4.5w+3.5w+55ms内25个pod,8c16g

特别注意:

  • 不同接口的QPS不一样,因为业务复杂度和实现逻辑不一样。
  • 压测是对系统的一种整体考量,链路中的任何环节,都对压测有致命的影响。
  • 链路的压测,分为单链路和混合链路。其中,全链路是一种混合链路的压测场景。

五、核心功能

  • 支持多种缓存类型: 一级缓存、二级缓存、混合缓存
  • 解决痛点问题: 缓存击穿、缓存穿透等
  • 动态缓存配置: 支持动态调整混合缓存下的缓存类型,支持热key的手动配置
  • 缓存一致性保证: 通过消息通知的方式来保证集群环境下一级缓存的一致性
  • 自动热key探测: 自动识别热key并缓存到一级缓存
  • 支持缓存批量操作: 支持分页的批量获取、批量删除等
  • 定义通用缓存层: 承上启下,简化业务开发,规整业务代码

1、同其他开源框架的对比

核心功能JetCache(阿里)J2Cache(OSChina)L2Cache
支持的缓存类型一级缓存
二级缓存
混合缓存
一级缓存
二级缓存
混合缓存
一级缓存
二级缓存
混合缓存
解决的痛点问题缓存击穿
缓存穿透
缓存击穿
缓存穿透
缓存击穿
缓存穿透
缓存一致性保证支持支持支持
动态缓存配置不支持不支持支持
自动热key探测不支持不支持支持
缓存批量操作不支持不支持支持
通用缓存层不支持不支持支持

说明:上面表格的对比,数据正在整理中,后续会再校对一次。

  • 从上面表格的对比可发现,L2Cache 的核心优势为三个点:自动热key探测缓存批量操作通用缓存层
  • 这三点优势是从实际业务开发中沉淀下来的能力,在屏蔽多级缓存基本能力的复杂性的基础上,进一步屏蔽了业务维度的缓存操作的复杂性,让原本需要资深开发者才能开发的功能,现在高级和中级开发者都可以简单、高效、高质的进行开发。
  • 实际业务开发中,如果你也遇到开发难度高,难以维护,难以扩展的痛点问题,建议可以试试L2Cache。反正接入成本低,试试又何妨?

2、L2Cache 的二级缓存结构

1、L1:一级缓存,内存缓存,支持 CaffeineGuava Cache

2、L2:二级缓存,集中式缓存,支持 Redis

3、混合缓存,指支持同时使用一级缓存和二级缓存。

由于大量的缓存读取会导致 L2 的网络成为整个系统的瓶颈,因此 L1 的目标是降低对 L2 的读取次数。避免使用独立缓存系统所带来的网络IO开销问题。L2 可以避免应用重启后导致的 L1数据丢失的问题,同时无需担心L1会增加太多的内存消耗,因为你可以设置 L1中缓存数据的数量。

说明:

L2Cache 满足CAP定理中的AP,也就是满足可用性和分区容错性,至于C(一致性)因为缓存的特性所以无法做到强一致性,只能尽可能的去做到一致性,保证最终的一致。

3、关键点

支持根据配置缓存类型来灵活的组合使用不同的Cache。

1、支持只使用一级缓存CaffeineGuava Cache

2、支持只使用二级缓存Redis

3、支持同时使用一二级缓存Composite

4、必知

若使用缓存,则必然可能出现不一致的情况。

也就是说,无法保证强一致性,只能保证最终一致性。

六、实战问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白云coy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值