最近项目中需要用到openfeign,即spring-cloud中的一个组件,前身为feign
由于某些配置参数会进行频繁请求,为了减轻api producer的压力,需要在方法上加一层cache
最初考虑使用ehcache3,但经测试发现存在一个比较麻烦的问题,ehcache3要求被缓存的目标需要实现
java.io.Serializable
这个目前已经比较少用(通常使用json)的序列化接口,同时作为spring cache使用时自定义相关的序列化方法比较复杂,经考虑后考虑使用其他的实现。
项目之前引入了swagger作为api文档,一并引入guava,就准备配置guava作为cache,发现spring boot 2.x即从spring 5.x开始已取消了对guava cache的支持,转而使用caffeine。
经了解,caffeine是一个拥有与guava cache几乎一致api的,性能更优越的框架,最终敲定使用caffeine作为缓存实现。