[我已经看到许多在服务方法上使用诸如Netflix的@HystrixCommand
之类的示例,但是在使用一个或多个CacheManager
实例时是否可以启用断路器?换句话说,如果基础服务在一段时间内不可用或不稳定,请绕过Spring缓存。
[具体来说,在使用Spring Cache时,我们只是有一个用@Cacheable
注释的方法。通常,对于断路器,您指定一个后备,但我们的后备是“不要使用缓存,只需正常执行我们的方法即可”。我们如何使用注释来实现呢?我们是否需要重构代码以分隔CacheManager
调用?
我认为您应该编写一个自定义的缓存管理器,然后在其中编写断路器逻辑。
@ Component公共CacheManager CustomCacheManager实现CacheManager {
@Override
public Cache getCache(String s) {
return null;
}
@Override
public Collection<String> getCacheNames() {
return null;
}
}