对外部接口依赖进行降级,百度到的相关实践是用 ehcache (本地内存)来缓存外部接口返回的数据,如果外部服务挂了,就从缓存里面取,但是 ehcache 是应用级别的缓存,一个应用可能有多个副本,这种情况下他们之间的缓存并不共享,比如有用户 A 的数据可能存在应用副本 1 上,那么当进行降级的时候,如果请求落在副本 2 上,那么这个好时候就取不到缓存,还是一样会报错,如果应用的副本数很多,那这种情况会更加明显。 为了解决上述问题,是不是应该引入 redis 这种分布式缓存呢?但是 redis 也是一个外部依赖,所以 redis 并不可靠,其次,如果多个应用都针对同一个外部依赖接口来进行降级,那么这个时候 redis 的 qps 会成倍的增长,对 redis 本身而言也是一个不小的负担
针对上述,需要如何进行考量来选择合适的缓存策略对接口依赖进行降级
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.