7

在我之前的工作中,我使用了 AMQP 的好处,但我没有参与 rabbitMQ 子项目的开发。在我目前的工作中,我想负责集成其中一个 AMQP 实现(可能是 rabbitMQ)。这里的问题是我必须说服我的老板使用 AMQP。

我正在阅读“RabbitMQ in Action”,Videla 先生写道 AMQP 可以改进任何系统,但我不知道如何改进我的项目。我们只使用 2 台服务器在两者之​​间进行 API 调用,因此我们现在没有可伸缩性问题。我们处理真实的资金流,这意味着我们需要任何操作的成功确认,即我不能将任务放入队列并“忘记”它。在这种情况下,AMQP 可以带来什么好处?

当您几乎不需要扩展时,您能否为相对较小的系统提供几个真实世界的示例?请省略标准的“记录”和“广播消息”情况:)

4

1 回答 1

8

听起来您只需要RPC。Rabbit 并不以 RPC 闻名,但它实际上做得非常好,因为:

  • 您可以使许多消息具有事务性(即全部在一个事务中)
  • 它的平台、语言和协议格式不可知(即您可以发送二进制文件)
  • 由于经纪人的想法,您可以轻松添加更多服务器来处理程序。
  • 您可以使用 RabbitMQ 的管理 UI 轻松查看消息流和速率
  • RabbitMQ 是一种架构级别的控制反转
  • 在 RabbitMQ 中,消息是合同……而不是程序。这是正确的做法。

现在让我们将其与SOAP进行比较:

  • SOAP 没有为您提供代理或路由,因此您的所有服务器都需要相互了解。我无法告诉您必须为开发、登台、生产使用插件 IP 地址是多么烦人。
  • SOAP 不提供事务。你必须自己做。
  • SOAP 你必须使用 XML
  • 有比 SOAP 客户端更可靠的 RabbitMQ 客户端。SOAP 兼容性是一个 PITA。
  • SOAP 你有消息和端点。在某些情况下,这是一个专业人士。

您不必使用 RabbitMQ 来使用eventbus / messagebus的想法。我个人不会制作任何类型的应用程序,因为从纯同步 RPC 到异步事件总线/消息总线需要大量工作。最好从一开始就做。

于 2013-02-13T14:21:42.970 回答