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. ubuntu上安装boost库

    只需一条命令: sudo apt install libboost-dev

  2. border重叠的问题

    可以在css中添加border:0:去掉其中的一条border

  3. 软工实践第二次作业—Wordcount

    Git仓库地址:https://github.com/cwabc/PersonProject-C 一.问题描述 输入一个txt文件名,以命令行参数传入,程序能够统计txt文件中的以下几个指标: 统计文 ...

  4. java-接口的概述及其特点

    1.接口概述: - 从狭义的角度讲就是指java中的interface - 从广义的角度讲对外提供规则的都是接口 2.接口特点: - 接口中定义的全都是抽象方法. - 接口用关键字interface表 ...

  5. linux入门001--帮助支持

    linux入门001--帮助支持====1. 帮助手册提供命令的使用说明:man ls提供基础知识和参考信息,有时会有实例和交叉索引,但是基本没有教程式的文档.就是说,并不会有偏重告诉你那个重要,那个 ...

  6. EasyUI datagrid 查询、设置、提交 三

    查询 $(“#grid”).datagrid(“load”,{  a: $('#id').val(),b :$('#text').val() });   {} 里面可以 是序列化参数 $(“#grid ...

  7. 实验吧—隐写术——WP之 Fair-Play

    首先,我们读题发现题目是Playfair​,其实我也不知道这是什么,那么就百度一下啊 Playfair解密算法: 首先将密钥填写在一个5*5的矩阵中(去Q留Z),矩阵中其它未用到的字母按顺序填在矩阵剩 ...

  8. 学习笔记TF013:卷积、跨度、边界填充、卷积核

    卷积运算,两个输入张量(输入数据和卷积核)进行卷积,输出代表来自每个输入的信息张量.tf.nn.conv2d完成卷积运算.卷积核(kernel),权值.滤波器.卷积矩阵或模版,filter.权值训练习 ...

  9. LG4091 【[HEOI2016/TJOI2016]求和】

    前置:第二类斯特林数 表示把\(n\)个小球放入\(m\)个不可区分的盒子的方案数 使用容斥原理分析,假设盒子可区分枚举至少有几个盒子为空,得到通项: \[S(n,m)=\frac{1}{m!}\su ...

  10. js 时间戳和日期互转

    // 获取当前时间戳(以s为单位) var timestamp = Date.parse(new Date()); timestamp = timestamp / 1000; //当前时间戳为:140 ...