二、 TMC 整体架构-济南达内培训负责整理
TMC 整体架构,共分为三层:
存储层:提供基础的kv数据存储能力,针对不同的业务场景选用不同的存储服务( codis / zankv / aerospike );
代理层:为应用层提供统一的缓存使用入口及通信协议,承担分布式数据水平切分后的路由功能转发工作;
应用层:提供统一客户端给应用服务使用,内置“热点探测”、“本地缓存”等功能,对业务透明;
本篇聚焦在应用层客户端的“热点探测”、“本地缓存”功能。
三、 TMC 本地缓存
3-1. 如何透明
TMC 是如何减少对业务应用系统的入侵,做到透明接入的?
对于公司 Java 应用服务,在缓存客户端使用方式上分为两类:
基于spring.data.redis包,使用RedisTemplate编写业务代码;
基于youzan.framework.redis包,使用RedisClient编写业务代码;

不论使用以上那种方式,最终通过JedisPool创建的Jedis对象与缓存服务端代理层做请求交互。
TMC 对原生jedis包的JedisPool和Jedis类做了改造,在JedisPool初始化过程中集成TMC“热点发现”+“本地缓存”功能Hermes-SDK包的初始化逻辑,使Jedis客户端与缓存服务端代理层交互时先与Hermes-SDK交互,从而完成 “热点探测”+“本地缓存”功能的透明接入。
对于 Java 应用服务,只需使用特定版本的 jedis-jar 包,无需修改代码,即可接入 TMC 使用“热点发现”+“本地缓存”功能,做到了对应用系统的最小入侵。
3-2. 整体结构
3-2-1. 模块划分
TMC 本地缓存整体结构分为如下模块:
Jedis-Client: Java 应用与缓存服务端交互的直接入口,接口定义与原生 Jedis-Client 无异;
Hermes-SDK:自研“热点发现+本地缓存”功能的SDK封装, Jedis-Client 通过与它交互来集成相应能力;
Hermes服务端集群:接收 Hermes-SDK 上报的缓存访问数据,进行热点探测,将热点 key 推送给 Hermes-SDK 做本地缓存;
以上就是济南达内培训给大家做的内容详解,更多关于IT的学习,请继续关注济南达内培训