【发布时间】:2018-02-06 15:39:01
【问题描述】:
Hystrix 后备问题。 如果 dbcall1 由于某些故障而进入 fallback 并且发生短路,那么 dbcall2 也会每次进入 fallback 直到电路打开。
public class CommandHelloFailure extends HystrixCommand<String> {
private final String name;
public CommandHelloFailure(String name) {
super(HystrixCommandGroupKey.Factory.asKey("ExampleGroup"));
this.name = name;
}`enter code here`
String dbcall1 ()
{
new CommandHelloFailure().execute();
}
String dbcall2()
{
new CommandHelloFailure().execute();
}
@Override
protected String run() {
throw new RuntimeException("this command always fails");
}
@Override
protected String getFallback() {
return "Hello Failure " + name + "!";
}
}
但是我想要两个方法(数据库调用)的独立后备。
【问题讨论】:
-
您的代码无法编译。请编辑并修复
-
它的伪代码.. 我面临的问题是 1) 如果 dbcall1() 由于实际故障而回退并且发生短路,那么对于 withCircuitBreakerSleepWindowInMilliseconds 时间,调用(dbcall1( ) 和 dbcall2()) 进入后备状态。 @rjdkolb
标签: hystrix