jMS简介和解析.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Java Messaging Service (JMS) 是Java平台上用于处理消息中间件技术规范的重要工具,它使得Java应用程序能够方便地进行消息交换。JMS通过提供统一的接口,简化了企业级应用的开发,让不同厂商的消息系统之间可以互通。就像JDBC允许Java程序与多种数据库交互一样,JMS提供了一个与提供商无关的访问消息系统的接口。 JMS的核心概念包括以下几个部分: 1. **JMS提供者**:这是实现JMS接口的实体,它可以是Java平台上的JMS实现,或者是针对非Java平台的消息中间件的适配器。常见的JMS提供者有IBM的MQSeries、BEA的Weblogic JMS服务和Progress的SonicMQ等。 2. **JMS客户**:基于Java的应用程序或对象,它们可以生产或消费消息。 3. **JMS生产者**:这部分负责创建并发送消息。 4. **JMS消费者**:接收并处理消息。 5. **JMS消息**:作为数据载体,由报头(包含路由信息和元数据)和消息主体(携带应用程序的实际数据)两部分组成。根据数据类型,JMS消息有五种主要类型:TextMessage(文本消息)、ObjectMessage(可序列化对象)、MapMessage(属性集合)、BytesMessage(字节流)、StreamMessage(原始值流)和无有效负载的消息(Message)。 6. **JMS队列**:一个存储待读消息的区域,遵循先进先出(FIFO)原则,每个消息只能被一个消费者接收。 7. **JMS主题**:支持多播,允许多个订阅者接收同一主题的消息。发布者无需知道订阅者,订阅者需保持活跃以接收消息,或设置持久订阅以在未连接时接收消息。 JMS支持两种模型: - **点对点模型(Queue Model)**:生产者向特定队列发送消息,仅有一个消费者从该队列接收消息。生产者和消费者之间没有时间依赖性,且消息被签收。 - **发布者/订阅者模型(Pub/Sub Model)**:发布者向主题发布消息,多个订阅者可以接收。存在时间依赖性,订阅者需保持在线或设置持久订阅。 JMS提供了两种消息传递方式: - **非持久性(NON_PERSISTENT)**:消息只投递一次,不保证可靠传递,适用于不需要保证所有消息都被接收的情况。 - **持久性(PERSISTENT)**:消息即使在服务离线后也会保存,直到服务恢复后再次投递,确保了消息的可靠性。 JMS还定义了消息优先级,从0到9,其中0是最低优先级,9是最高。优先级5到9用于加速消息传递,0到4是常规优先级。 通过JNDI(Java Naming and Directory Interface),JMS应用可以查找并连接到不同的JMS提供者,进行消息的发送和接收。这使得应用可以轻松地切换到不同的消息系统,增强了系统的灵活性和可移植性。
- 粉丝: 230
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助