Я работаю над микросервисом уровня оркестровки, где мне нужно параллельно вызывать несколько API различных микросервисов. Для этого я использую subscribeOn(Schedulers.parallel)
и подписываюсь на каждый ответ в Mono.zip
. Например:
Mono<A> a = service1.api().subscribeOn(Schedulers.parallel());
Mono<B> b = service2.api().subscribeOn(Schedulers.parallel());
Mono<C> c = service3.api().subscribeOn(Schedulers.parallel());
return Mono.zip(a,b,c);
Теперь AFAIK, этот почтовый индекс не будет работать, если любой из a
, b
ИЛИ c
завершится с ошибкой. Предположим, что в третьем вызове что-то пошло не так, я хочу обработать этот случай таким образом, чтобы любая операция, выполненная с помощью service1.api()
и service2.api()
, могла быть отменена, т.е. откатилась как транзакция.
Я прошу прощения за любое неправильное заявление, которое я сделал, поскольку я немного новичок в Spring WebFlux. Спасибо за всю помощь заранее.