在我的应用程序中,我需要调用外部端点,如果速度太慢,则会激活回退.
以下代码是我的应用程序的示例:
@FeignClient(name = "${config.name}", url = "${config.url:}", fallback = ExampleFallback.class)
public interface Example {
@RequestMapping(method = RequestMethod.GET, value = "/endpoint", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
MyReturnObject find(@RequestParam("myParam") String myParam);
}
Run Code Online (Sandbox Code Playgroud)
它的后备实施:
@Component
public Class ExampleFallback implements Example {
private final FallbackService fallback;
@Autowired
public ExampleFallback(final FallbackService fallback) {
this.fallback = fallback;
}
@Override
public MyReturnObject find(final String myParam) {
return fallback.find(myParam);
}
Run Code Online (Sandbox Code Playgroud)
此外,配置的断路器超时:
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 5000
如何实现集成测试以检查我的电路中断是否正常工作,即,如果我的端点(在这种情况下是模拟的)很慢或者它是否返回了像4xx或5xx这样的错误?
我正在使用带有Spring Cloud的Spring Boot 1.5.3(Feign + Hystrix)
testing spring-boot hystrix spring-cloud-feign spring-cloud-netflix