我正在开始研究具有微服务架构的webflux框架。 我需要以异步方式在微服务之间建立内部连接,据我了解,当使用webClient构建器时,我可以使用webflux框架来做到这一点: 例如:
@Autowired
private WebClient.Builder webClientBuilder;
@GetMapping("/{id}/with-accounts")
public Mono findByIdWithAccounts(@PathVariable("id") String id) {
LOGGER.info("findByIdWithAccounts: id={}", id);
Flux accounts = webClientBuilder.build().get().uri("http://account-service/customer/{customer}", id).retrieve().bodyToFlux(Account.class);
return accounts
.collectList()
.map(a -> new Customer(a))
.mergeWith(repository.findById(id))
.collectList()
.map(CustomerMapper::map);
}
其中“帐户服务”是我的微服务,因此对于这种方法,我使用REST端点以非阻塞方式获得了简单的代码。如前所述,由于异步,我主要针对微服务内部通信而建议使用消息队列模式。但是现在,当我们有了带有webClient构建器的非阻塞式webflux框架时,也许不再需要使用消息队列进行内部通信了吗?
我只是在流浪吗?感谢您的回答!