1、JMS(Java Message Service)Java消息服务,是Java20几种技术其中之一

2、JMS规范定义了Java中访问消息中间件的接口,但是没有给实现,这个实现就是由第三方使用者来开发实现,我们称为JMS provider,例如AMQ

3、实现了JMS接口和规范的消息中间件我们称为:JMS提供者(JMS Provider)

4、JMS Message 由三部分组成

消息头,每个消息对应的get set方法

消息属性,

消息体,具体业务数据

JMS producer ,消息生产者,创建并且发送JMS消息

JMS Consumer,消息消费者,接收并处理JMS消息

消息的消费可以采用两种方式,

1、同步,通过调用消息的receive方法阻塞到消息到达(一般不使用这种方式)

2、异步,客户端注册一个监听器到AMQ定义消息到达时所采取的动作

消息传递域的概念

JMS定义了两种消息传递域,点对点(point-to-point)传递域和发布/订阅传递域(publish/subscribe简写为pub/sub)

PTP点对点消息传递域的特点

1、一个消息只能有一个消息者

2、消息的生产者和消费者之间没有任何时间的相关性,无论消费者在生产者发送消息的时候是否处于运行状态它都可以提取消息

pub/sub订阅消息传递域的特点:

1、每个消息可以有多个消费者

2、生产者和消费者之间有时间上的关联性,在非持久性订阅状态下,消费者需要在启动状态下才可以收到生产者的消息,持久性订阅,消费者可以接收到它未启动时候的生产者发送的消息但是前提是消费者先订阅这个主题!

JMS常用类的描述

ConnectionFactory,连接工厂,用来创建对象,以连接到JMS的Provider

Connection :封装客户端和JMS之间的一个虚拟链接

Session:生产者和消费者一个单线程上下文,会话

会用用于创建生产者和消费者,和消息,会话提供了事务性的上下文,在这个上下文中,一组发送和接收被组合到一个原子操作中。

Destination:消息发送的目的地

Acknowledge:签收

Transaction:事物

JMS client:用来接收消息的Java应用

【AMQ】之JMS概念的更多相关文章

  1. java消息服务学习之JMS概念

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

  2. 消息队列的使用<一>:介绍、使用场景和JMS概念知识

    目录 介绍 消息队列的理解 举个栗子 使用场景 消息队列的模型与概念理解 JMS模型 基本概念: 内容: JMS定义的消息结构: PTP式消息传递 PUB/SUB式消息传递 可靠性机制 事务 消息持久 ...

  3. JMS概念

    来自为知笔记(Wiz)

  4. ActiveMQ消息队列从入门到实践(1)—JMS的概念和JMS消息模型

    1. 面向消息的中间件 1.1 什么是MOM 面向消息的中间件,Message Oriented Middleware,简称MOM,中文简称消息中间件,利用高效可靠的消息传递机制进行平台无关的数据交流 ...

  5. JMS笔记(一)

    1.jms概念 Java Message Service为 Java程序提供一种访问企业消息系统的方法,JMS应用由JMS生产者.JMS Provider.JMS消费者构成 1.1. 一条Messag ...

  6. Jms的MessageListener中的Jms事务

    摘要 一般来说,如果为JmsTemplate做了事务配置,那么它将会与当前线程的数据库事务挂钩,并且仅在数据库事务的afterCommit动作中提交. 但是,如果一个MessageListener在接 ...

  7. JMS解决系统间通信问题

    近期在给公司项目做二次重构,将原来庞大的系统拆分成几个小系统.系统与系统之间通过接口调用,系统间通信有非常多方式,如系统间通信接口做成请求controller,只是这样不方便也不安全,经常使用的方式是 ...

  8. ActiveMQ:JMS开源框架入门介绍

    介绍基本的JMS概念与开源的JMS框架ActiveMQ应用,内容涵盖一下几点: 基本的JMS概念 JMS的消息模式 介绍ActiveMQ 一个基于ActiveMQ的JMS例子程序 一:JMS基本概念 ...

  9. 从JMS到KafKa

    从JMS到KafKa JMS (1)JMS概念 JMS(Java Message Service,java消息服务)API是一个消息服务的标准或者说是规范,允许应用程序组件基于JavaEE平台创建.发 ...

随机推荐

  1. [LeetCode&Python] Problem 427. Construct Quad Tree

    We want to use quad trees to store an N x N boolean grid. Each cell in the grid can only be true or ...

  2. 牛客HJ浇花。

    我也不知道这是什么类型的题,算是简单模拟吧.但是有个方法很赞. 开两个数组,一个模拟花,一个记录不同浇花次数花的数量: 要找浇水的次数,那么记每次浇水的开头和结尾就行了,a—b;那么f[a]++;f[ ...

  3. linux----别名

    经常一些命令太长,输入太麻烦,给该命令起个别名,直接执行,简单又方便. 1.查看别名 alias 2.编辑别名 vi ~/.brashrc 3.添加自己的别名 例如:重启网卡 alias netres ...

  4. 【NOI2014】【BZOJ3669】【UOJ#3】魔法森林

    我学会lct辣 原题: 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为 1…n1…n,边标号为1…m1…m.初始时小E ...

  5. 利用反射C#获取事件列表

    在程序设计中有时候需要动态订阅客户自己的事件,调用完成后又要删除以前订阅的事件.因为如果不删除,有时会造成事件是会重复订阅,导致程序运行异常.一个办法是用反射来控件事件列表.清空方法代码如下: /// ...

  6. char/unsigned char/int/short 存储范围

    Type Storage size Value range char 1 byte -128 to 127 or 0 to 255 unsigned char 1 byte 0 to 255 sign ...

  7. Netty 学习资料

    Netty 学习资料 Netty 学习资料 链接网址 说明 Netty 4.x 用户指南 http://wiki.jikexueyuan.com/project/netty-4-user-guide/ ...

  8. 智读App-免费下载付费知识节目攻略

    智读+  知识管理App App下载地址:http://zhidujia.com/ 自助推送工具下载:http://zhidujia.com/product/pushHelper 智读App能帮你做什 ...

  9. flume 前世今生

    Cloudera 开发的分布式日志收集系统 Flume,是 hadoop 周边组件之一.其可以实时的将分布在不同节点.机器上的日志收集到不同的存储系统.Flume 初始的发行版本目前被统称为 Flum ...

  10. System Generator 使用离散资源

    System Generator 使用离散资源 重要,怎样配置FPGA中的DSP Macro 最后是编译模型