一尘不染

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

spring-boot

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

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

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


阅读 249

收藏
2020-05-30

共1个答案

一尘不染

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

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

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