何时适合使用AMQP?

7
在我之前的工作中,我使用了AMQP的好处,但我没有参与rabbitMQ子项目的开发。在我现在的工作中,我想负责集成AMQP实现之一(可能是rabbitMQ)。问题在于我必须说服我的老板使用AMQP。
我正在阅读《RabbitMQ in Action》,Videla先生写道,AMQP可以改进任何系统,但我不知道如何改进我的项目。我们只使用两个服务器之间进行API调用,因此我们目前没有可扩展性问题。我们处理实际货币流动,这意味着我们需要对任何操作进行成功确认,即我不能将任务放入队列并“忘记”它。在这种情况下,AMQP可以带来哪些好处?
请提供几个相对较小的系统的真实世界示例,当您不需要大规模扩展时?请省略标准的“日志记录”和“广播消息”情况 :)

2
一个有趣的问题,但这可能更适合于“开发者”堆栈。SO通常专注于实现方面,比如在使用RabbitMQ时遇到的编程问题。 - user166390
潜在的重复:https://dev59.com/gXE95IYBdhLWcg3wQ7qc - Dave Hillier
1个回答

8

听起来你需要的只是RPC。兔子并不以RPC闻名,但它实际上确实做得很好, 因为:

  • 您可以使许多消息成为事务性的(即在一个事务中处理所有消息)
  • 它的平台、语言和协议格式是不可知的(即您可以发送二进制数据)
  • 由于代理人的概念,您可以轻松地添加更多服务器来处理过程。
  • 您可以使用RabbitMQ的管理界面轻松查看消息流和速率
  • RabbitMQ在架构层面上有一种反转控制的思想
  • 在RabbitMQ中,消息是合同...而不是过程。这是正确的方式。

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

  • SOAP不提供代理或路由,所以你的所有服务器都需要知道彼此的存在。我无法告诉你为什么插入开发、暂存、生产的IP地址是多么令人烦恼。
  • SOAP不提供事务处理,你必须自己完成。
  • SOAP必须使用XML。
  • RabbitMQ客户端比SOAP客户端更可靠。SOAP兼容性较差。
  • SOAP有消息和端点。在某些情况下,这是个优点。

你不必使用RabbitMQ来实现eventbus/messagebus的理念。我个人认为,没有任何一种应用程序可以不使用,因为从纯同步RPC到异步事件总线/消息总线需要大量工作。最好从一开始就做好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接