我开发了两个微服务,并集成了RabbitMQ作为消息代理.我关心的是,微服务架构是否允许使用直接API调用进行内部通信,或者它完全依赖于 消息代理用于相互通信?
例如:-即时重要的业务场景,如客户下单,这应该包含对orderAPI的CustomerAPI的API调用,而不是依赖于被视为异步操作的Message Broker.
[Route("CallOrder")]
[HttpGet]
public async Task<IEnumerable<Product>> CallOrder()
{
logger.LogInformation("Call product controller from customer and get products");
return await httpClient.GetFromJsonAsync<IEnumerable<Product>>("http://shoppingapi-service/Product");
}
我只想澄清的是,根据微服务体系 struct ,我们实际上是使用API调用来将一个微服务与另一个微服务通信,还是完全依赖于消息代理.或者我们两个都用
我try 了两种方式,如API调用和Message Broker进行通信,因为我认为这取决于业务场景它是一项紧迫的任务,我 Select 了API调用.如果不是,我会 Select Message Broker.生产者-消费者的方式.