2013-02-13 45 views
5

在我以前的工作中,我使用了AMQP的好处,但是我没有参与rabbitMQ子项目的开发。在我目前的工作中,我想负责整合AMQP的一个实现(可能是rabbitMQ)。这个问题我必须说服我的老板使用AMQP。何时适合使用AMQP?

我在阅读“RabbitMQ in Action”,Videla先生写道,AMQP可以改进任何系统,但我不明白我能如何改进我的项目。我们只使用两台服务器进行API调用,所以我们现在没有可扩展性问题。我们处理真钱流动,这意味着我们需要成功确认任何操作,即我不能将任务放在队列中并“忘记”它。 AMQP可以带来什么好处?

当您不需要很小的缩放比例时,您可以为相对较小的系统提供几个真实世界的例子吗?请忽略标准的“日志记录”和“广播信息”情况:)

+2

一个有趣的问题,但这可能更适合“开发人员”堆栈。 SO通常集中在房屋的实施方面,比如使用* RabbitMQ的编程问题。 – 2013-02-13 04:17:18

+0

潜在的复制:http://stackoverflow.com/questions/2388539/in-which-domains-are-message-oriented-middleware-like-amqp-useful/ – 2013-08-12 10:23:29

回答

6

听起来像是所有你需要的是RPC。兔子是不知道的RPC but it actually does一个很好的工作,因为:

  • 可以使许多邮件事务性的(即所有在一个事务中)
  • 它的平台,语言和协议格式无关的(也就是说你可以在发送二进制)
  • 由于经纪人的想法,你可以轻松地添加更多的服务器来处理程序。
  • 你可以很容易地看到消息流和速率的RabbitMQ的管理界面
  • RabbitMQ的是那种在架构层面
  • 在RabbitMQ的控制反转的消息是合同......不是过程。这是做到这一点的正确方法。

现在让我们来比较这说SOAP

  • SOAP不给你一个经纪人或路由,以便所有的西弗斯需要了解对方。我无法告诉你为开发,分期,制作而必须使用插件IP地址有多恼人。
  • SOAP不提供事务。你必须自己做。
  • SOAP必须使用XML
  • 有比SOAP客户端更可靠的RabbitMQ客户端。 SOAP兼容性是PITA。
  • SOAP你有消息和端点。在某些情况下,这是一个专业人士。

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