- 内容简介
- 前言
- 第 1 章 第一个 Spring Boot 项目
- 第 2 章 集成 MySQL 数据库
- 第 3 章 集成 Spring Data JPA
- 第 4 章 使用 Thymeleaf 模板引擎
- 第 5 章 Spring Boot 事务支持
- 第 6 章 使用过滤器和监听器
- 第 7 章 集成 Redis 缓存
- 第 8 章 集成 Log4j 日志
- 8.3 使用 Log4j 记录日志
- 第 9 章 Quartz 定时器和发送 Email
- 第 10 章 集成 MyBatis
- 第 11 章 异步消息与异步调用
- 第 12 章 全局异常处理与 Retry 重试
- 第 13 章 集成 MongoDB 数据库
- 第 14 章 集成 Spring Security
- 第 15 章 Spring Boot 应用监控
- 第 16 章 集成 Dubbo 和 Zookeeper
- 第 17 章 多环境配置与部署
- 第 18 章 Spring Boot 原理解析
- 参考文献
11.1 JMS 消息介绍

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 模型。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论