`
raymond.chen
  • 浏览: 1422110 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
阅读更多

JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

 

JMS的通用接口集合以异步方式发送或接收消息。

 

1、JMS由以下元素组成 
     JMS提供者:连接面向消息中间件的,JMS接口的一个实现。提供者可以是Java平台的JMS实现,也可以是非Java平台的面向消息中间件的适配器。   
     JMS客户:生产或消费消息的基于Java的应用程序或对象。   
     JMS生产者:创建并发送消息的JMS客户。   
     JMS消费者:接收消息的JMS客户。   
     JMS消息:包括可以在JMS客户之间传递的数据的对象   
     JMS队列:一个容纳那些被发送的等待阅读的消息的区域。队列暗示,这些消息将按照顺序发送。一旦一个消息被阅读,该消息将被从队列中移走。   
     JMS主题:一种支持发送消息给多个订阅者的机制。

 

2、JMS模型
     点对点或队列模型:如果应用程序开发者希望每一条消息都能够被处理,那么应该使用P2P消息模型。
     发布者/订阅者模型:如果一定程度的消息传递的不可靠性可以被接受的话,那么应用程序开发者也可以使用Pub/Sub消息模型。

 

3、消息传递方式
     NON_PERSISTENT:消息最多投递一次,此方式为默认方式。 —— JMS提供者服务重启后消息会丢失
     PERSISTENT:消息将使用暂存后再转送的机理投递。  —— JMS提供者服务重启后消息不会丢失

 

4、消息正文格式
     StreamMessage:Java原始值的数据流
     MapMessage:一套名称-值对   
     TextMessage:一个字符串对象   
     ObjectMessage:一个序列化的 Java对象   
     BytesMessage:一个未解释字节的数据流

 

5、JMS应用程序接口
     ConnectionFactory 接口(连接工厂):用户用来创建到JMS提供者的连接的被管对象。
     Connection 接口(连接):连接代表了应用程序和消息服务器之间的通信链路。
     Destination 接口(目标):目标是一个包装了消息目标标识符的被管对象,消息目标是指消息发布和接收的地点,或者是队列,或者是主题。


     MessageConsumer 接口(消息消费者):由会话创建的对象,用于接收发送到目标的消息。

          消息消费者接收消息的方式有两种:

               1)同步方式:consumer.receive() 或 consumer.receive(int timeout):消息的接收者会一直等待下去,直到有消息到达,或者超时。

               2)异步方式:注册一个MessageListener:注册一个监听器,当有消息到达的时候,会回调它的onMessage()方法。


     MessageProducer 接口(消息生产者):由会话创建的对象,用于发送消息到目标。
     Message 接口(消息):是在消费者和生产者之间传送的对象。
          一个消息有三个主要部分:
               消息头(必须):包含用于识别和为消息寻找路由的操作设置。
               一组消息属性(可选):包含额外的属性,支持其他提供者和用户的兼容。可以创建定制的字段和过滤器(消息选择器)。
               一个消息体(可选):允许用户创建五种类型的消息(文本消息,映射消息,字节消息,流消息和对象消息)。
     Session 接口(会话):表示一个单线程的上下文,用于发送和接收消息。
          如果session被标记为transactional,当一个事务被提交时,确认自动发生。

          如果session没有标记为transactional,有三个用于消息确认的选项:
            AUTO_ACKNOWLEDGE:session将自动地确认收到一则消息。
                CLIENT_ACKNOWLEDGE:客户通过消息的acknowledge方法确认消息。需要注意的是,在这种模式中,确认是在会话层上进行:确认一个被消费的消息将自动确认所有已被会话消 费的消息。例如,如果一个消息消费者消费了10个消息,然后确认第5个消息,那么所有10个消息都被确认。    
                DUPS_OK_ACKNOWLEDGE:该选择只是会话迟钝的确认消息的提交。如果JMS provider失败,那么可能会导致一些重复的消息。如果是重复的消息,那么JMS provider必须把消息头的JMSRedelivered字段设置为true。 

 

6、JMS提供者实现:
      Apache ActiveMQ
      BEA的BEA WebLogic Server JMS
      IBM的WebSphere MQ

 

分享到:
评论

相关推荐

    JMS消息模型 JMS学习.doc

    概述……………………………………………………………………………………………..3 体系结构………………………………………………………………………………………..4 JMS消息模型…………………………………………...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    6.1 面向消息的架构和JMS概述 227 6.1.1 面向消息的应用架构 227 6.1.2 JMS的基础知识和优势 228 6.1.3 JMS的两个重要版本 229 6.2 PTP类型的JMS 230 6.2.1 配置PTP的JMS服务器 231 6.2.2 PTP消息的发送 241 6.2.3 ...

    JMS学习教程概述

    NULL 博文链接:https://incan.iteye.com/blog/297703

    sun-jms.rar_jms_message queue

    jms资料 Message Queue 3 技术概述

    JMS与Spring之一(用JmsTemplate同步收发消息)

    JMS Template概述 使用JmsTemplate可以简化JMS编程,减少开发者的精力投入。JmsTemplate可以自动将各种类型如String、Byte[]等转换为响应的JMS消息对象类型,当然也可以自己写Converter转换复杂的消息。JmsTemplate...

    stompjms:STOMP的JMS接口

    概述Stomp是面向简单(或流)文本的消息传递协议,JMS是Java消息服务(JMS)API,它是用于在两个或更多客户端之间发送消息的Java API。 STOMP-JMS项目为应用程序提供了STOMP有线协议的JMS客户端接口。参考

    camel-cxf-jms-demo:示例 Apache Camel 应用程序(CXF、REST、JMS、缓存)

    概述 此 Web 应用程序实现了一个 Web 服务,该服务提供上传和下载与某些“商店”相关联的数据的方法。 上传的数据被放入队列并被缓存。 获取请求从缓存接收数据。 有一个“通用”存储提供附加到每个响应的数据。 ...

    JMShub:与JMS相关的应用程序的父项目

    概述 与JMS相关的应用程序的父项目。 专案 JMS API(Java消息服务API) 使用以下方式发送和接收消息:可靠,异步,松散耦合的通信。 异步:客户端可以发送,而不必等待。 可靠:确保仅发送一次消息。 JMS提供...

    SpringSOAP_Gradle_JPA_JMS:使用Gradle,SpringBoot,Spring SOAP,JPA,JMS技术的教育项目

    阅读并概述 仅限Hibernate文档摘要 #文学 用于合同优先SOAP服务开发的 ------------- JPA ------------------------------- Spring Boot Postgresql错误 ------------------- JTA ------------------------------...

    系统设计概述

    系统设计是对系统分析中已确定的业务需求的说明或者构建一种基于计算机及相关技术的解决方案。 系统分析强调业务问题,系统设计则专注于系统的技术性或实现方面。—— “怎么干” 系统设计 – 详细的计算机系统方案...

    信息系统分析与设计概述

    系统分析与设计( System Analysis and Design, SAD)是关于业务问题的解决和计算机应用程序的开发的活动。 SAD可能是最复杂、最棘手的人类活动之一。 1.... 具有非良的边界与结构,而觖的本性又具有充分的不确定性。...

    Spring-Boot-Reference.pdf

    •消息传递:概述| JMS •测试:概述|引导应用| Utils •扩展:自动配置| @Conditions •管理端点:概述 •连接选项:HTTP | JMX •监控:度量|审计| HTTP跟踪|过程 •Spring引导应用部署:云部署| OS服务 •构建工具插件:...

    weblogic 管理指南

    JMS JTA 监控JDBC连接池 管理控制台的MONITORING页面一览表 第5章: 用日志消息管理WEBLOGIC服务器 日志子系统概述 本地服务器的日志文件 启动日志 客户端日志 日志文件的格式 消息属性 ......

    NCV6X-信息交换平台技术红皮书

    第一章 总体概述 1 1. 信息交换平台总体结构 1 2. 信息交换平台功能特点 1 3. 信息交换平台V50版新增功能 2 4. 信息交换平台V55版新增功能 3 5. 信息交换平台V60版新增功能 3 第二章 实施简介及相关注意点 4 1. 实施...

    MyEclipse下XFire开发Webservice实例.doc

    XFire Java SOAP框架概述 MyEclipse Web Services是建立在XFire Java SOAP框架和工具基础上的, XFire是一款开源的Java SOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在...

    外部交换平台操作手册.zip

    信息交换平台 实施技术红皮书 NC-UAP 6.0 目 录 第一章 总体概述 1 1. 信息交换平台总体结构 1 2. 信息交换平台功能特点 1 3. 信息交换平台V50版新增功能 2 4. 信息交换平台V55版新增功能 3 5. 信息交换平台V60版...

    徐老师大数据-Kafka

    徐老师大数据-Kafka视频,[mukedaba.com]徐老师大数据-01-Kafka概述.mp4、[mukedaba.com]徐老师大数据-02-Kafka术语与JMS模型抽象.mp4、[mukedaba.com]徐老师大数据-03-Kafka体验消息发送和消费.mp4、[mukedaba.com]...

    FNS客户端

    SWIM FNS JMS参考实现(FnsClient)概述系统范围信息服务(SWIM)联邦NOTAM系统(FNS)Java消息服务(JMS)参考实现(FnsClient)提供了有关如何通过使用FNS Initial建立和维护FNS NOTAM数据库本地实例的示例实现...

    Weblogic使用手册大全详解 中文版

    1.WEBLOGIC服务器管理概述 2.节点管理器 3.配置WEBLOGIC服务器与集群 4.用日志消息管理WEBLOGIC服务器 5.分发应用 6.配置WEBLOGIC服务器的WEB组件 7.代理对另一个HTTP服务器的请求 8.代理对WEBLOGIC集群的请求 9....

Global site tag (gtag.js) - Google Analytics