将Hystrix与反应式Spring Boot 2应用程序结合使用真的必要吗?

时间:2018-11-13 13:45:05

标签: spring spring-boot spring-webflux project-reactor hystrix

我正在一个项目中,我们正在将我们的一些微服务从Spring-MVC迁移到Spring-Webflux,以测试反应性范例。在hystrix的github存储库中寻求帮助时,我们注意到该项目自一年前以来就没有提交,它基于RxJava,因此与project-reactor存在一些不兼容性。

我们在使用Hystrix时遇到了一些问题,特别是来自“ Javanica”的注释不起作用,并且我们的开发人员需要使用Spring-Cloud中的HystrixCommands。而且,Hystrix显然会在反应堆之外创建自己的线程池。

达到这一点,我的问题不是如何将Hystrix与Spring Boot 2.0一起使用,而是是否必须将来自微服务的所有外部调用包装在HystrixCommand中,或者是否仅使用Reactor方法(超时,onError,重试等) 。)我们可以避免这种包裹。

1 个答案:

答案 0 :(得分:1)

您可以使用内置的Reactor方法替换许多hystrix功能(超时,重试,limitRate,onError ...)。

对于断路器,您可以使用Resilience4j。轻松将其嵌入到现有的Reactor代码中

Mono<MyClass> myMono = ...;
CircuitBreaker circuitBreaker = ...;
myMono.transform(CircuitBreakerOperator.of(circuitBreaker)).subscribe(...)