JMS是用于在两个或多个客户端之间传输消息的API。它的规范是在JSR 914下定义的。
JMS的主要优点是通信实体的分离性质-发件人不必具有有关接收者的信息。其他优势包括集成异构平台,减少系统瓶颈,增加可伸缩性以及对变更做出更快响应的能力。
JMS只是一种接口/ API,必须实现具体的类。这些已经由各种组织/提供商实施。他们被称为JMS提供者。示例是IBM的WebSphere或Fiorano Software的FioranoMQ或Apache,HornetQ,OpenMQ等的ActiveMQ。其他使用的术语是管理对象(主题,队列,连接工厂),JMS生产者/发布者,JMS客户端和消息本身。
因此,提出您的问题-what is JMS good for?
我想举一个实际的例子来说明它的重要性。
日内交易
有一个称为LVC(最后值缓存)的功能
在交易中,股价由发布者定期发布。每个共享都有一个与其关联的主题。现在,如果您知道主题是什么,那么您必须知道消息不会像队列那样保存。消息在消息发布时被实时发布给订阅者(耐久订阅者例外,它们从创建之时起就发布了所有消息,但是我们又不想获得过高的股票价格而放弃了这种可能性使用它)。因此,如果客户想知道股票价格,他可以创建一个订阅者,然后他必须等到下一个股票价格发布(这又不是我们想要的价格)。这就是LVC发挥作用的地方。每个LVC消息都有一个关联的密钥。如果一条消息是用LVC密钥(针对特定股票)发送的,然后是另一条具有相同密钥的更新消息,则更新消息将覆盖前一个消息。每当订阅者订阅一个主题(已启用LVC)时,订阅者将获得具有不同LVC密钥的所有消息。如果我们为每个上市公司保留唯一的密钥,那么当客户订阅该密钥时,它将获得最新的股价,并最终获得所有更新。
当然,这是使JMS如此强大的可靠性,安全性等其他因素之一。
pending_email
当前正在将该表用作消息队列。