有赞透明多级缓存解决方案(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 整体架构
TMC 整体架构如上图,共分为三层:
存储层:提供基础的kv数据存储能力,针对不同的业务场景选用不同的存储服务( codis / zankv / aerospike );
代理层:为应用层提供统一的缓存使用入口及通信协议,承担分布式数据水平切分后的路由功能转发工作;
应用层:提供统一客户端给应用服务使用,内置“热点探测”、“本地缓存”等功能,对业务透明;