我只是在阅读有关 JMS 和 Apache ActiveMQ 的信息。并且想知道这里的人们使用 JMS 或类似的消息队列技术在现实世界中的用途是什么?
JMS(ActiveMQ 是一种 JMS 代理实现)可以用作允许异步请求处理的机制。您可能希望这样做,因为请求需要很长时间才能完成,或者因为多方可能对实际请求感兴趣。使用它的另一个原因是允许多个客户端(可能用不同的语言编写)通过 JMS 访问信息。ActiveMQ 就是一个很好的例子,因为您可以使用 STOMP 协议来允许从 C#/Java/Ruby 客户端进行访问。
一个真实的例子是用于为特定客户下订单的 Web 应用程序。作为下订单(并将其存储在数据库中)的一部分,您可能希望执行一些额外的任务:
为此,您的应用程序代码会将消息发布到包含订单 ID 的 JMS 队列中。侦听队列的应用程序的一部分可能会通过获取 orderId 来响应事件,在数据库中查找订单,然后将该订单发送给另一个第三方系统。您的应用程序的另一部分可能负责获取 orderId 并向客户发送确认电子邮件。