【问题标题】:When is it appropriate to use AMQP? [closed]什么时候适合使用 AMQP? [关闭]
【发布时间】:2013-01-28 13:40:00
【问题描述】:

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

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

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

【问题讨论】:

  • 一个有趣的问题,但这可能更适合“开发人员”堆栈。 SO 通常侧重于实现方面,例如使用 RabbitMQ 中的编程问题。

标签: rabbitmq amqp


【解决方案1】:

听起来您只需要RPC。 Rabbit 不知道 RPC but it actually does 一个非常好的工作,因为:

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

现在让我们比较一下SOAP:

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

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

【讨论】:

    猜你喜欢
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    相关资源
    最近更新 更多