微服务为什么要使用RabbitMQ?

Eli*_*ias 28 rabbitmq microservices

我没有找到一个现有的帖子问这个但是如果我错过它就道歉.

我试图让我的头部微服务,并遇到使用RabbitMQ的文章.我很困惑为什么需要RabbitMQ.服务是否意图使用web api与外界通信,RabbitMQ是否相互通信?

Dim*_*nev 48

在微服务架构中,您有两种方式在微服务之间进行通信:

  • 同步 - 也就是说,每个服务直接调用其他微服务,这导致服务之间的依赖
  • 异步 - 您有一些中心集线器(或消息队列),您可以在微服务之间放置所有请求,相应的服务接收请求,处理它并将结果返回给调用者.这就是RabbitMQ(或任何其他消息队列 - MSMQ和Apache Kafka是很好的替代品)的用途.在这种情况下,所有微服务都只知道集线器的存在.

microservices.io有一些关于使用微服务的非常好的文章


Lov*_*son 28

消息队列提供异步通信协议 - 您可以选择将消息从一个服务发送到另一个服务,而无需知道其他服务是否能够立即处理它.消息可以等到负责任的服务准备就绪.发布消息的服务不需要知道将处理该消息的服务的内部工作方式.这种处理消息的方式生产者与消费者分离.

消息队列将使应用程序中的进程保持独立且彼此独立; 这种处理消息的方式可以创建一个易于维护且易于扩展的系统.

是一个故事,解释了Parkster(数字停车服务)如何使用RabbitMQ将他们的系统分解为多个微服务.

本指南遵循Web应用程序允许用户将信息上载到网站的方案.该站点将处理此信息并生成PDF并通过电子邮件将其发送回用户.处理信息,生成PDF和发送电子邮件将在此示例中占用几秒钟,这也是使用消息队列的原因之一.

是一个关于CloudAMQP 如何以及为何在微服务之间使用消息队列和RabbitMQ 的故事.

是一个关于RabbitMQ在基于事件的微服务架构中的使用情况的故事,每月支持1亿用户.

最后是Kontena 的链接,了解他们为什么选择RabbitMQ作为他们的微服务架构:"因为我们需要一个稳定,可管理且高度可用的消息传递解决方案."

请注意,我为CloudAMQP背后的公司工作.

  • 感谢您的评论。你说得对,我应该从其他来源添加更多信息,并添加有关我工作地点的信息。我会再次查看答案,也会查看您发布的链接。谢谢! (2认同)