JAVA企业级API深度解析:JMS详解

需积分: 9 8 下载量 196 浏览量 更新于2024-07-31 收藏 472KB PDF 举报
"JAVA企业级API-JMS" Java企业级API中的JMS,即Java Message Service,是用于在分布式环境中提供可靠且高效的消息传递的标准接口。它允许不同的应用程序之间通过消息进行通信,即使这些应用程序可能在不同的时间运行或者位于不同的网络上。JMS是Java平台上的一个关键组件,尤其在构建可扩展、高可用性的企业级系统时。 1. **环境信息**:在介绍JMS之前,提到的环境是WLS 10.3.3,即WebLogic Server的一个版本,这是一款由Oracle提供的企业级Java应用服务器,它内建支持JMS服务。 2. **相关文档**:《FMW安装》可能指的是Oracle Fusion Middleware的安装指南,这是一套包含WebLogic在内的多种中间件产品的集合。 3. **软件准备**:在使用JMS前,需要配置WebLogic Server域,并在开发环境中添加`weblogic.jar`的引用。此外,还需要单独下载`jmspackage`并添加`jms.jar`的引用,这包含了JMS API的实现。 4. **JMS简介**: - **JMS服务提供者**:这是实现JMS规范的实体,如WebLogic Server,它提供了消息队列和通知服务,同时也实现了JMS API。 - **消息管理对象**:包括`ConnectionFactory`和`Destination`,前者负责创建与消息服务的连接,根据消息传输类型(点对点或发布/订阅)分为`QueueConnectionFactory`和`TopicConnectionFactory`;后者表示消息的目标,可以是队列(Queue)或主题(Topic)。 - **消息的生产者和消费者**:生产者创建并发送消息,消费者接收和处理消息。在JMS中有两种消费者模式,即`subscriber`(订阅者)和`receiver`(接收者),以及对应的`Publisher`(发布者)和`Sender`(发送者)。 - **消息类型**:JMS定义了五种基本消息类型,包括`Message`(基础消息)、`MapMessage`(键值对消息)、`TextMessage`(文本消息)、`ByteMessage`(字节流消息)、`StreamMessage`(数据流消息)和`ObjectMessage`(对象消息)。 5. **消息模型**:JMS有两种主要的消息传递模型: - **点对点(PTP,Point-to-Point)模型**:消息由一个生产者发送到一个队列,一个或多个消费者可以从该队列接收消息,但只有一个消费者能实际处理消息,保证了消息的顺序性和幂等性。 - **发布/订阅(PUB/SUB,Publisher and Subscriber)模型**:消息发布到一个主题,所有订阅该主题的消费者都能接收到消息,这种方式适合广播式通信,不保证消息顺序,且每个订阅者都能独立接收消息。 在实际应用中,JMS常用于解耦应用程序,提高系统的可扩展性和容错性。例如,当一个系统部分出现故障时,通过消息队列,其他部分仍可以继续运行,待故障恢复后再处理积压的消息。此外,JMS还常用于实现工作流管理、事件驱动架构以及分布式事务等场景。