【问题标题】:Issue with hystrix fallback in spring cloud春季云中的 hystrix 回退问题
【发布时间】:2015-02-04 16:40:15
【问题描述】:
【问题讨论】:
标签:
spring-cloud
hystrix
netflix-feign
【解决方案1】:
我在您的FallbackableService 中发现了 2 个问题。
1) fallbackMethod 引用了一个不存在的方法;
2) @HystrixCommand 方法(和回退)未公开。
这行得通:
@Service
class FallbackableService {
@Autowired
FallbackClient fallbackClient;
@HystrixCommand(fallbackMethod = "fallback")
public String ping() {
return fallbackClient.ping();
}
public String fallback() {
return "PONG: from fallback";
}
}
【解决方案2】:
如果您创建一个后备方法只是为了处理错误,那么它可能应该是私有的,除非您想将其暴露给外部世界。
【解决方案3】:
请记住,您的回退方法的签名必须与使用 @HystrixCommand 注释的方法相同。您可以选择将异常作为参数添加一些业务逻辑,但如果您尝试在此方法中抛出异常,您的日志可能会显示类似“回退方法名称方法失败”的内容。这是因为 Hystrys 回退是为了获取一些默认数据或存储在缓存中的数据,以改善远程服务关闭时的默认行为。
Here 你可以阅读一个很棒的文档来了解 Hystrix 如何“思考”。
希望对你有帮助。