JVM高性能本地缓存Caffeine使用案例
Background对于服务消费,响应时间(RT)的长短是衡量一个系统高效处理业务的重要指标,缓存就是必不可少的优化工具,在一个高并发的场景中往往占有着非常重要的角色,所以开发人员需要根据不同的应用场景来选择不同的缓存框架,比如分布式缓存redis,或者内存缓存GuavaCache。
我们团队有一个调用比较频繁的服务,之前是和别的团队共用的Redis缓存服务,前不久突然得到消息,维护该redis团队要收回使用权,而我们服务使用也比较简单,只是用来做一个接口调用鉴权,从redis中拿出所有授权方的appKey,然后校验调用方的appKey是否合法。所以我第一想法是采用jvm本地缓存,因为这个调用方不会很多,而且数据是比较静态的,变化不会很频繁,放在jvm本地内存中,也不会占用很大空间,而且也不用担心多个部署实例缓存不一致的问题,经过调用有很多比较优秀的本地缓存比如GuavaCache,Caffeine等。我最后采用了Caffeine。