什么时候适合使用AMQP?

时间:2013-02-13 04:13:10

标签: rabbitmq amqp

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

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

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

1 个答案:

答案 0 :(得分:7)

听起来你需要的只是RPC。对于RPC but it actually does而言,Rabbit并不是一个非常好的工作,因为:

  • 您可以在交易中制作多条消息(即一次性交易)
  • 它的平台,语言和协议格式不可知(即你可以发送二进制文件)
  • 由于经纪人的想法,您可以轻松添加更多服务器来处理这些程序。
  • 您可以使用RabbitMQ的管理UI轻松查看消息流和速率
  • RabbitMQ在架构层面是一种控制反转
  • 在RabbitMQ中,消息是合同......而不是程序。这是正确的方法。

现在让我们比较一下来说SOAP

  • SOAP不会为您提供代理或路由,因此您的所有服务器都需要了解彼此。我不能告诉你为了开发,分期,制作而去插件IP地址是多么烦人。
  • SOAP不提供事务。你必须自己做。
  • SOAP必须使用XML
  • RabbitMQ客户端比SOAP客户端更可靠。 SOAP兼容性是PITA。
  • SOAP您有消息和端点。在某些情况下,这是专业人士。

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