什么时候适合使用AMQP?

use*_*983 7 amqp rabbitmq

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

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

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

Ada*_*ent 7

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

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

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

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

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