返回介绍

11.1 JMS 消息介绍

发布于 2025-04-26 13:53:51 字数 1403 浏览 0 评论 0 收藏

JMS(Java Message Service,Java 消息服务)是一组 Java 应用程序接口,提供消息的创建、发送、读取等一系列服务。JMS 提供了一组公共应用程序接口和响应的语法,类似于 Java 数据库的统一访问接口 JDBC,是一种与厂商无关的 API,使得 Java 程序能够与不同厂商的消息组件很好地进行通信。

JMS 支持两种消息发送和接收模型。一种称为 P2P(Ponit to Point)模型,即采用点对点的方式发送消息。P2P 模型是基于队列的,消息生产者(Producer)发送消息到队列,消息消费者(Consumer)从队列中接收消息,队列的存在使得消息的异步传输成为可能。P2P 模式图如图 11-1 所示。

图 11-1 P2P 模式图

P2P 的特点是每个消息只有一个消费者(一旦被消费,消息就不在消息队列中),发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,无论接收者有没有正在运行,都不会影响消息被发送到队列中,接收者在成功接收消息之后需向队列应答成功。

另一种称为 Pub / Sub(Publish / Subscribe,发布-订阅)模型,发布-订阅模型定义了如何向一个内容节点发布和订阅消息,这个内容节点称为 Topic(主题)。主题可以认为是消息传递的中介,消息发布者将消息发布到某个主题,而消息订阅者则从主题订阅消息。主题使得消息的订阅者与消息的发布者互相保持独立,不需要进行接触即可保证消息的传递,发布-订阅模型在消息的一对多广播时采用。

图 11-2 Pub / Sub 模式图

Pub/Sub 的特点是每个消息可以有多个消费者,发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,必须创建一个订阅者之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态。为了缓和这样严格的时间相关性,JMS 允许订阅者创建一个可持久化的订阅。这样,即使订阅者没有被激活(运行),也能接收到发布者的消息。如果你希望发送的消息可以不做任何处理、被一个消息者处理或者可以被多个消费者处理,那么可以采用 Pub/Sub 模型。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。