三级缓存实操系列(三)

简介: 三级缓存实操系列(三)

有赞透明多级缓存解决方案(TMC)

一、TMC简介

1-1. TMC 是什么

TMC ,即“透明多级缓存( Transparent Multilevel Cache )”,是有赞 PaaS 团队给公司内应用提供的整体缓存解决方案。

TMC 在通用“分布式缓存解决方案(本地缓存+ 如 Codis Proxy + Redis ,如有赞自研分布式缓存系统 zanKV )”基础上,增加了以下功能:

(1)、应用层热点探测  (2)、应用层本地缓存 (3)、应用层缓存命中统计

以帮助应用层解决缓存使用过程中出现的热点访问问题。

1-2. 为什么要做 TMC

使用有赞服务的电商商家数量和类型很多,商家会不定期做一些“商品秒杀”、“商品推广”活动,导致“营 销活动”、“商品详情”、“交易下单”等链路应用出现缓存热点访问的情况:

(1)、活动时间、活动类型、活动商品之类的信息不可预期,导致缓存热点访问情况不可提前预知;

(2)、缓存热点访问出现期间,应用层少数热点访问key产生大量缓存访问请求:冲击分布式缓存系统,大量占据内网带宽,最终影响应用层系统稳定性;

为了应对以上问题,需要一个能够自动发现热点并将热点缓存访问请求前置在应用层本地缓存的解决方案,这就是TMC产生的原因。

二、 TMC 整体架构

60830add3a1090aca4ae3348403e2262.png

TMC 整体架构如上图,共分为三层:

存储层:提供基础的kv数据存储能力,针对不同的业务场景选用不同的存储服务( codis / zankv / aerospike );

代理层:为应用层提供统一的缓存使用入口及通信协议,承担分布式数据水平切分后的路由功能转发工作;

应用层:提供统一客户端给应用服务使用,内置“热点探测”、“本地缓存”等功能,对业务透明;

相关文章
|
2天前
|
存储 缓存 Java
三级缓存实操系列(四)
三级缓存实操系列(四)
|
2天前
|
数据采集 缓存 NoSQL
三级缓存实操系列(一)
三级缓存实操系列(一)
|
2天前
|
消息中间件 缓存 NoSQL
三级缓存实操系列(二)
三级缓存实操系列(二)
|
SQL 存储 缓存
数据湖实操讲解【JindoFS 缓存加速】第十三讲:Presto 访问 OSS 透明缓存加速
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播! 扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs
数据湖实操讲解【JindoFS 缓存加速】第十三讲:Presto 访问 OSS 透明缓存加速
|
SQL 缓存 分布式计算
数据湖实操讲解【JindoFS 缓存加速】第十五讲:云上计算云下数据:HDFS 缓存加速
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播! 扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs
数据湖实操讲解【JindoFS 缓存加速】第十五讲:云上计算云下数据:HDFS 缓存加速
|
存储 缓存 分布式计算
数据湖实操讲解【JindoFS 缓存加速】第十四讲:指定表和分区来预先缓存,查询分析更高效
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播! 扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs
数据湖实操讲解【JindoFS 缓存加速】第十四讲:指定表和分区来预先缓存,查询分析更高效
|
存储 SQL 缓存
数据湖实操讲解【JindoFS 缓存加速】第十二讲:Spark 访问 OSS 透明缓存加速
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播! 扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs
数据湖实操讲解【JindoFS 缓存加速】第十二讲:Spark 访问 OSS 透明缓存加速
|
13天前
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
|
1月前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel
【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel
|
29天前
|
缓存 NoSQL Java
Redis深度解析:解锁高性能缓存的终极武器,让你的应用飞起来
【8月更文挑战第29天】本文从基本概念入手,通过实战示例、原理解析和高级使用技巧,全面讲解Redis这一高性能键值对数据库。Redis基于内存存储,支持多种数据结构,如字符串、列表和哈希表等,常用于数据库、缓存及消息队列。文中详细介绍了如何在Spring Boot项目中集成Redis,并展示了其工作原理、缓存实现方法及高级特性,如事务、发布/订阅、Lua脚本和集群等,帮助读者从入门到精通Redis,大幅提升应用性能与可扩展性。
58 0