1. JMS基本概念     JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企业应用的开发。它支持两种消息通信模型:点到点(point-to-point)(P2P)模型和发布/订阅(Pub/Sub)模型。P2P 模型规定了一个消息只能有一个接收者;Pub/Sub 模型允许一个消息可以有多个接收者。     对于点到点模型,消息生产者产生一个消息后,把这个消息发送到一个Queue(队列)中,然后消息接收者再从这个Queue中读取,一旦这个消息被一个接收者读取之后,它就在这个Queue中消失了,所以一个消息只能被一个接收者消费。     与点到点模型不同,发布/订阅模型中,消息生产者产生一个消息后,把这个消息发送到一个Topic中,这个Topic可以同时有多个接收者在监听,当一个消息到达这个Topic之后,所有消息接收者都会收到这个消息。

简单的讲,点到点模型和发布/订阅模型的区别就是前者是一对一,后者是一对多。

2. 几个重要概念     Destination:消息发送的目的地,也就是前面说的Queue和Topic。创建好一个消息之后,只需要把这个消息发送到目的地,消息的发送者就可以继续做自己的事情,而不用等待消息被处理完成。至于这个消息什么时候,会被哪个消费者消费,完全取决于消息的接受者。      Message:从字面上就可以看出是被发送的消息。它有下面几种类型:         StreamMessage:Java 数据流消息,用标准流操作来顺序的填充和读取。         MapMessage:一个Map类型的消息;名称为 string 类型,而值为 Java 的基本类型。         TextMessage:普通字符串消息,包含一个String。         ObjectMessage:对象消息,包含一个可序列化的Java 对象         BytesMessage:二进制数组消息,包含一个byte[]。         XMLMessage:  一个XML类型的消息。     最常用的是TextMessage和ObjectMessage。     Session:与JMS提供者所建立的会话,通过Session我们才可以创建一个Message。     Connection:与JMS提供者建立的一个连接。可以从这个连接创建一个会话,即Session。     ConnectionFactory: 那如何创建一个Connection呢?这就需要下面讲到的ConnectionFactory了。通过这个工厂类就可以得到一个与JMS提供者的连接,即Conection。     Producer:消息的生产者,要发送一个消息,必须通过这个生产者来发送。     MessageConsumer:与生产者相对应,这是消息的消费者或接收者,通过它来接收一个消息。     前面多次提到JMS提供者,因为JMS给我们提供的只是一系列接口,当我们使用一个JMS的时候,还是需要一个第三方的提供者,它的作用就是真正管理这些Connection,Session,Topic和Queue等。
    通过下面这个简图可以看出上面这些概念的关系。
  ConnectionFactory---->Connection--->Session--->Message   Destination + Session------------------------------------>Producer   Destination + Session------------------------------------>MessageConsumer     那么可能有人会问: ConnectionFactory和Destination 从哪儿得到?     这就和JMS提供者有关了. 如果在一个JavaEE环境中, 可以通过JNDI查找得到, 如果在一个非JavaEE环境中, 那只能通过JMS提供者提供给我们的接口得到了.

转载于:https://www.cnblogs.com/hilnx/p/3470175.html

深入掌握JMS(一):JSM基础相关推荐

  1. Java 深入掌握JMS:JSM基础

    JMS基本概念 JMS(Java Message Service) 即Java消息服务.它提供标准的产生.发送.接收消息的接口简化企业应用的开发.它支持两种消息通信模型:点到点(point-to-po ...

  2. 深入掌握JMS JMSCorrelationID与Selector

    http://wangh8080.blog.163.com/blog/static/197848297201241843917244/ 深入掌握JMS(一):JSM基础 2012-05-18 16:3 ...

  3. JAVA消息(第一篇)JMS 很重要!!!!包教包会!!不闹!!!下一篇-AMQP(wire-level protocol)

    如果看完:进入第二篇AMQP 首先大致讲一下,java 消息模块 消息,个人理解分为两种:1.同步消息(RPC调用) 2.异步消息(本篇讲解部分) 一.同步消息java提供了多种方案: 最新比较常用的 ...

  4. 深入掌握JMS--转

    深入掌握JMS(一):JSM基础 1. JMS基本概念      JMS(Java Message Service) 即Java消息服务.它提供标准的产生.发送.接收消息的接口简化企业 应用的开发.它 ...

  5. 大学学了java可以做点什么_学习Java的,大学毕业一般从事些什么工作?

    展开全部 我这是拷贝的,62616964757a686964616fe59b9ee7ad9431333332643361不过也就差不多了,说实话,java的东西太多了.还是要到工作的时候慢慢用的,学好 ...

  6. java连接ibm mq

    http://blog.csdn.net/liaomin416100569/article/details/7254191 首先 打开 IBM websphere MQ 管理器 添加一个队列管理器 名 ...

  7. Web应用系统中数据传递的方式汇总

    本文转载自sina_blog(siangzhang) 目录 1  Socket方式 2  ftp/文件共享服务器方式 3 数据库共享数据方式 4 message方式 5 案例 随着近年来SOA(面向服 ...

  8. java自学路线图_JAVA自学路线图

    首先要学JavaSE,与此同时,和JavaSE的学习同步,建议大家研究一下数据结构与算法. 在这儿之后,你可以选择向J2ME.或者Java GUI.Socket编程等方向努力,但是通过第一篇的办法,你 ...

  9. Spring 系列: Spring 框架

    第一部分:Spring 框架简介 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序 ...

最新文章

  1. 想知道什么是“成员变量”吗?
  2. 在Objective-C中创建一个抽象类
  3. JSON数据从MongoDB迁移到MaxCompute最佳实践
  4. linux fedora35 buff/cache 占用过高解决方法(适用于大部分linux)
  5. classpass 配置mysql_jmeter压测学习18-JDBC配置连接mysql数据库
  6. Linux 终端下 dstat 监控工具
  7. 【进阶3-5期】深度解析 new 原理及模拟实现
  8. linux先安装svn server
  9. Android跑马灯的效果
  10. View事件分发相关结论的源码解析
  11. 传输层协议TCP—滑动窗口(6)
  12. vimdiff 命令使用介绍
  13. 工业互联网的数据集成
  14. 云服务器虚拟手机版,云服务器虚拟手机
  15. 多线程-day-09CAS原理
  16. 上海JAVA5月就业环境,各位上海的大佬们呀 我准备下个礼拜出去上海找工作了!一年半的...
  17. 火星转债上市价格预测
  18. 抖音小店还能做吗?如何解决拍单问题?
  19. Linux —— 时间问题(GMT,UTC,DST,CST,CET表示什么、UTC与CST之间的转换)
  20. 基于matlab指纹识别论文,毕业论文-基于Matlab的指纹识别

热门文章

  1. VSS2005使用技巧
  2. LRUCache的C++实现
  3. c语言人机互动编程,单片机人机交互系统的C语言编程简介.ppt
  4. 如何用cmd命令进入mysql
  5. vue中使用echarts结合百度地图制作地图(引入百度地图、获取百度地图实例、设置百度地图)
  6. R语言股票市场指数:ARMA-GARCH模型和对数收益率数据探索性分析
  7. Android:动态使用权限(一)
  8. 与领导争论问题的技巧[zt]
  9. js 定时器的开启与关闭
  10. 我的奋斗之黑马第一天