对外部接口依赖进行降级,百度到的相关实践是用 ehcache (本地内存)来缓存外部接口返回的数据,如果外部服务挂了,就从缓存里面取,但是 ehcache 是应用级别的缓存,一个应用可能有多个副本,这种情况下他们之间的缓存并不共享,比如有用户 A 的数据可能存在应用副本 1 上,那么当进行降级的时候,如果请求落在副本 2 上,那么这个好时候就取不到缓存,还是一样会报错,如果应用的副本数很多,那这种情况会更加明显。 为了解决上述问题,是不是应该引入 redis 这种分布式缓存呢?但是 redis 也是一个外部依赖,所以 redis 并不可靠,其次,如果多个应用都针对同一个外部依赖接口来进行降级,那么这个时候 redis 的 qps 会成倍的增长,对 redis 本身而言也是一个不小的负担
针对上述,需要如何进行考量来选择合适的缓存策略对接口依赖进行降级