Действительно ли необходимо использовать Hystrix с приложением реактивной пружинной загрузки 2? - PullRequest
0 голосов
/ 13 ноября 2018

Я работаю в проекте, в котором мы перемещаем некоторые из наших микросервисов из Spring-MVC в Spring-Webflux для проверки реактивной парадигмы. Глядя на некоторую помощь в github-репозитории hystrix, мы отметили, что у проекта нет коммитов с года назад, и он основан на RxJava, поэтому есть некоторые несовместимости с project-реактором.

У нас возникли некоторые проблемы с использованием Hystrix, в частности, из-за того, что аннотации от «Javanica» не работают, и нашим разработчикам нужно вместо этого использовать HystrixCommands из Spring-Cloud. И тот факт, что Hystrix, очевидно, создает свой собственный пул потоков помимо тех, что в реакторе.

Достигнутый вопрос: мой вопрос не в том, как использовать Hystrix с Spring Boot 2.0, а в том, что необходимо обернуть все внешние вызовы от наших микросервисов в HystrixCommand или просто использовать методы Reactor (timeout, onError, retry и т. Д.). .) мы можем избежать этой упаковки.

1 Ответ

0 голосов
/ 14 ноября 2018

Многие функции Hystrix можно заменить встроенными методами Reactor (время ожидания, повтор, ограничение, onError ...).

Для автоматического выключателя вы можете использовать Resilience4j .Его легко встроить в существующий код Reactor

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