Hysterix Javanica AsyncResult Future.get 抛出异常
Hysterix Javanica AsyncResult Future.get Throwing Exception
我在本地 tomcat 上设置了 Spring 云 运行。我正在使用 feign 客户端来调用包裹在 Hysterix 命令中的远程服务,一个是直接的,另一个是异步的,如下所示。
@HystrixCommand(fallbackMethod = "fallBackEmployeeCall")
public List<EmployeeBean> getEmployees() {
//Call through Feign Client
return empInterface.getEmployees();
}
//Async Version
@HystrixCommand(fallbackMethod = "fallBackEmployeeCall")
public Future<List<EmployeeBean>> getEmployeesAsync() {
return new AsyncResult<List<EmployeeBean>>() {
@Override
public List<EmployeeBean> invoke() {
return empInterface.getEmployees();
}
};
}
当我调用 getEmployeesAsync().get() 时
我低于异常
java.lang.UnsupportedOperationException:AsyncResult 只是一个刺,不能作为 Future
的完整实现
类似下面的问题:-
[https://github.com/Netflix/Hystrix/issues/1179][1]
根据文档,解决方案是配置 HystrixCommandAspect class,我这样做如下:-
@Configuration
@EnableAspectJAutoProxy
public class HystrixConfiguration {
@Bean
public HystrixCommandAspect hystrixAspect() {
return new HystrixCommandAspect();
}
}
但我仍然遇到同样的异常。看来我缺少一些配置。
注意:- 我的同步方法工作正常。
您可以尝试在另一个 class 中调用 getEmployeesAsync
,这会用 getEmployeesAsync
注入 class 的实例。我也有这个例外。然后我就这样成功了。
我在本地 tomcat 上设置了 Spring 云 运行。我正在使用 feign 客户端来调用包裹在 Hysterix 命令中的远程服务,一个是直接的,另一个是异步的,如下所示。
@HystrixCommand(fallbackMethod = "fallBackEmployeeCall")
public List<EmployeeBean> getEmployees() {
//Call through Feign Client
return empInterface.getEmployees();
}
//Async Version
@HystrixCommand(fallbackMethod = "fallBackEmployeeCall")
public Future<List<EmployeeBean>> getEmployeesAsync() {
return new AsyncResult<List<EmployeeBean>>() {
@Override
public List<EmployeeBean> invoke() {
return empInterface.getEmployees();
}
};
}
当我调用 getEmployeesAsync().get() 时 我低于异常
java.lang.UnsupportedOperationException:AsyncResult 只是一个刺,不能作为 Future
的完整实现类似下面的问题:-
[https://github.com/Netflix/Hystrix/issues/1179][1]
根据文档,解决方案是配置 HystrixCommandAspect class,我这样做如下:-
@Configuration
@EnableAspectJAutoProxy
public class HystrixConfiguration {
@Bean
public HystrixCommandAspect hystrixAspect() {
return new HystrixCommandAspect();
}
}
但我仍然遇到同样的异常。看来我缺少一些配置。 注意:- 我的同步方法工作正常。
您可以尝试在另一个 class 中调用 getEmployeesAsync
,这会用 getEmployeesAsync
注入 class 的实例。我也有这个例外。然后我就这样成功了。