在什么情况下,人们会喜欢通过消息队列而不是通过 Web 服务进行通信的应用程序(我只是指 XML、JSON 或 YAML 或任何通过 HTTP 的方式,而不是任何特定类型)?
我必须在本地网络上的两个应用程序之间交谈。一个是 Web 应用程序,必须在另一个应用程序上请求命令(在不同的硬件上运行)。这些请求是诸如创建用户、移动文件和创建目录之类的。在什么情况下我更喜欢 XML Web 服务(或直接的 TCP 或其他东西)而不是使用消息队列?
Web 应用程序是 Ruby on Rails,但我认为问题比这更广泛。
当您使用 Web 服务时,您有一个客户端和一个服务器:
当您使用 RabbitMQ、Beanstalkd、ActiveMQ、IBM MQ Series、Tuxedo 之类的消息队列时,您会期望得到不同且更容错的结果:
Message Queues 具有更多功能,但这是一些经验法则,可以决定您是要自己处理错误情况还是将它们留给消息队列。