
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了软件编程开发缓存技术应用的一些基础知识等内容,而本文我们就继续来学习一下,多级缓存架构实践分析。
(1)key值获取
Java应用调用Jedis-Client接口获取key的缓存值时,Jedis-Client会询问Hermes-SDK该key当前是否是热点key;
对于热点key,直接从Hermes-SDK的热点模块获取热点key在本地缓存的value值,不去访问缓存集群,从而将访问请求前置在应用层;
对于非热点key,Hermes-SDK会通过Callable回调Jedis-Client的原生接口,从缓存集群拿到value值;
对于Jedis-Client的每次key值访问请求,Hermes-SDK都会通过其通信模块将key访问事件异步上报给Hermes服务端集群,以便其根据上报数据进行“热点探测”;
(2)key值过期
Java应用调用Jedis-Client的set()del()expire()接口时会导致对应key值失效,Jedis-Client会同步调用Hermes-SDK的invalid()方法告知其“key值失效”事件;
对于热点key,Hermes-SDK的热点模块会先将key在本地缓存的value值失效,以达到本地数据强一致。同时通信模块会异步将“key值失效”事件通过etcd集群推送给Java应用集群中其他Hermes-SDK节点;
其他Hermes-SDK节点的通信模块收到“key值失效”事件后,会调用热点模块将key在本地缓存的value值失效,以达到集群数据终一致;
(3)热点发现
Hermes服务端集群不断收集Hermes-SDK上报的key访问事件,对不同业务应用集群的缓存访问数据进行周期性(3s一次)分析计算,以探测业务应用集群中的热点key列表;
对于探测到的热点key列表,Hermes服务端集群将其通过etcd集群推送给不同业务应用集群的Hermes-SDK通信模块,通知其对热点key列表进行本地缓存;
(4)配置读取
Hermes-SDK在启动及运行过程中,会从Apollo配置中心读取其关心的配置信息(如:启动关闭配置、黑白名单配置、etcd地址…);
Hermes服务端集群在启动及运行过程中,会从Apollo配置中心读取其关心的配置信息(如:业务应用列表、热点阈值配置、etcd地址…)
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。