指南:Java 消息服务(JMS)
本指南讨论了如何使用 Java 消息服务(JMS),以及如何针对 J2EE 应用程序对它进行设计和建模。
关系
相关元素
主要描述

介绍

可以将 Java 消息服务(JMS)用于组件之间的通信。JMS 的诸如异步通信和受保证传递之类的特性使其成为企业应用程序的普遍选择。也可以将 JMS 用于同步通信,但异步使用才是主要的。

这些指南描述何时使用 JMS、如何对它建模以及一些适用的设计注意事项。

关于 JMS 的更多信息,请参阅概念:Java 消息服务

对 JMS 建模

将 JMS 客户端建模为类。下图说明使用 JMS 发送消息的消息生产者的典型交互。 该示例使用一个队列作为目的地。

在附带文本中描述的图。

JMS 客户端必须实现消息监听程序接口。JMS 供应者确保在消息到达时就调用特别方法 onMessage

在附带文本中描述的图。

下图显示 JMS 使用者客户端的典型设置。

在附带文本中描述的图。

设计 JMS

设计 JMS 应用程序有两种主要方法:点到点发布/预订

点到点模型中,使用 JMS 将消息传递至一个客户端。

在附带文本中描述的图。

消息生产者通过将消息发送至一个队列,与消息使用者通信。概念上一个队列只有一个使用者,但许多 JMS 供应者允许多个使用者以支持负载均衡。使用多个使用者时,由一个并且只有一个使用者处理每条消息。在队列中保存消息,直至它们被用掉或到期为止。

发布-预订模型中,该通信模式允许多个生产者将消息发送至多个使用者。使用者预订各主题,然后中间件将消息传递至使用者。

在附带文本中描述的图。

与点到点模型相比,发布-预订模式在主题中保留消息,直到所有客户端接收到它为止。

注:从 JMS 1.1 开始,可以在同一 JMS 应用程序中组合这两种模型。