【AMQ】之JMS概念
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概念的更多相关文章
- java消息服务学习之JMS概念
JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信. ...
- 消息队列的使用<一>:介绍、使用场景和JMS概念知识
目录 介绍 消息队列的理解 举个栗子 使用场景 消息队列的模型与概念理解 JMS模型 基本概念: 内容: JMS定义的消息结构: PTP式消息传递 PUB/SUB式消息传递 可靠性机制 事务 消息持久 ...
- JMS概念
来自为知笔记(Wiz)
- ActiveMQ消息队列从入门到实践(1)—JMS的概念和JMS消息模型
1. 面向消息的中间件 1.1 什么是MOM 面向消息的中间件,Message Oriented Middleware,简称MOM,中文简称消息中间件,利用高效可靠的消息传递机制进行平台无关的数据交流 ...
- JMS笔记(一)
1.jms概念 Java Message Service为 Java程序提供一种访问企业消息系统的方法,JMS应用由JMS生产者.JMS Provider.JMS消费者构成 1.1. 一条Messag ...
- Jms的MessageListener中的Jms事务
摘要 一般来说,如果为JmsTemplate做了事务配置,那么它将会与当前线程的数据库事务挂钩,并且仅在数据库事务的afterCommit动作中提交. 但是,如果一个MessageListener在接 ...
- JMS解决系统间通信问题
近期在给公司项目做二次重构,将原来庞大的系统拆分成几个小系统.系统与系统之间通过接口调用,系统间通信有非常多方式,如系统间通信接口做成请求controller,只是这样不方便也不安全,经常使用的方式是 ...
- ActiveMQ:JMS开源框架入门介绍
介绍基本的JMS概念与开源的JMS框架ActiveMQ应用,内容涵盖一下几点: 基本的JMS概念 JMS的消息模式 介绍ActiveMQ 一个基于ActiveMQ的JMS例子程序 一:JMS基本概念 ...
- 从JMS到KafKa
从JMS到KafKa JMS (1)JMS概念 JMS(Java Message Service,java消息服务)API是一个消息服务的标准或者说是规范,允许应用程序组件基于JavaEE平台创建.发 ...
随机推荐
- Unity游戏开发常用的一些函数用法
Unity游戏开发常用函数 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...
- Github&&SourceTree
如何将本地的代码或者是文件上传到github 方法一:(github上面创建仓库,远程仓库克隆到本地,将文件拖拽到本地仓库) cd 文件夹 git clone 链接(github上面创建新仓库的链 ...
- PS学习之小猪佩奇身上纹,掌声送给社会人
首先准备素材 用ps首先打开素材一 首先对图片去色 快捷键:shift+Ctrl+u 调整色阶 设置高斯模糊: 另存为psd格式,命名为叠加的对象 再次打开素材一,把佩奇拖入到图层里,并调整大小,旋转 ...
- JPI中常使用的类介绍:
Math类: java.lang包下的 final,不可被继承, 其中的方法和属性都是静态的 其构造方法私有化了,其他类不可以使用构造方法. 向上取整:Math.ceil(double d); 向下取 ...
- 记录一次追查server死机& 登录异常情况
linux 服务器死机了,于是追查原因. 查看boot.log wade@koala:/var/log$ less boot.log 看不出异常 显示开机信息 wade@koala:/var/log$ ...
- vue全家桶+Koa2开发笔记(3)--mongodb
1. 安装 momgodb brew install mongodb安装成功后执行 which mongod启动:mongod 2. 下载可视化操作数据库的软件 https://robomongo.o ...
- 推荐一个 基于 WebSocket 和 Redis 的 即时通信 开源项目
项目地址 : https://github.com/2881099/im 大家可以和 SignalR 比较看看 , 如何 ? ^^ ^^ ^^ 这是一个 网友 写的 , 他还写了 ...
- tomcat源码阅读之BackupManager
一. 配置: <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOpti ...
- mysql之 重建GTID下主从关系
主库:mysqldump -uroot -pmysql -S /tmp/mysql.sock1 --single-transaction --add-drop-database --master-da ...
- ES6 中 Class 与 TypeScript 中 Class 的区别(待补充)
ES6 中 Class 与 TypeScript 中 Class 的区别(待补充)