异步消息



问题陈述

微服务架构将应用程序构建为一组松散耦合的微服务,每个服务都可以以敏捷的方式独立开发,从而实现持续交付/部署。微服务处理来自客户端的请求,并且经常需要与其他微服务通信以完成这些请求。因此,需要一种进程间通信协议。

解决方案

我们可以使用异步消息模式进行服务间通信,因为使用同步通信会导致服务紧密耦合,并且还要求客户端和服务在请求期间都可用。

使用异步消息,服务可以通过消息通道交换消息来进行通信。以下是异步消息通信的一些不同方法。

  • 请求/同步响应 - 在此方法中,服务向另一个服务发出请求并立即期望收到回复。

  • 通知 - 在此方法中,服务向接收方发送消息,但不期望任何回复。接收方也不需要发送回复。

  • 请求/异步响应 - 在此方法中,服务向另一个服务发出请求,并在合理的时间范围内期望收到回复。

  • 发布/订阅 - 在此方法中,服务向零个或多个接收方发布消息。订阅该消息的服务将接收该消息。不需要回复。

  • 发布/异步响应 - 在此方法中,服务向零个或多个接收方发布消息。订阅该消息的服务将接收该消息。其中一些服务会发送确认/回复。

示例

RabbitMQ 和 Apache Kafka 是微服务领域中异步消息传递的良好示例。

广告