JMS介绍
JMS简单描述:
JMS即Java消息服务(Java Message Service),是一个Java平台中面向消息中间件的API,用于在两个应用程序之间或分布式系统中发送、接受消息,从而进行异步通信。JMS是一个与厂商无关的API,绝大多数消息中间件供应商都对JMS提供支持。
JMS的优势:
异步:JMS天生就是异步的,客户端获取消息的时候,不需要主动发送请求,消息会自动发送给可用的客户端。
可靠:JMS保证消息只会传递一次。
JMS消息传递模型有2种:
1.点对点消息传递模型(P2P):

在点对点消息传递模型中,应用程序由消息队列、发送者、接收者组成。每一个消息发送给一个指定的消息队列,该队列保存了所有发送给它的消息(被接收者消费掉和已过期的消息除外)。
点对点消息传递模型特性如下:
每个消息只有一个接收者;
消息发送者和接收者并没有时间依赖性;
当接收者收到消息时,会发送确认收到通知(acknowledgement)
2.发布/订阅消息传递模型(pub/sub):

在发布/订阅消息传递模型中,发布者发布一个消息,该消息通过topic传递给所有订阅者客户端。
发布/订阅消息传递模型特性如下:
一个消息可以传递给多个客户端;
发布者和订阅者有时间依赖性,只有当客户端创建订阅后才能接收消息。为了缓和这种严格的时间依赖性,JMS允许客户端创建一个可持久化的订阅(durableSubscriber),这样,客户端创建订阅后还能接收到创建订阅前发布者已经发布的消息。
在JMS中,消息的接收可以使用同步和异步两种方式:
同步:消息订阅者可以调用receive()方法,从而以同步的方式接收消息,receive()方法在消息到达之前会一直阻塞,直到指定的时间。
异步:使用异步方式接收消息的话,消息订阅者需要注册一个消息监听器(实现MessageListener接口),只要消息到达,JSM服务提供者就会通过调用监听器的onMessage()方法来递送消息
JMS编程接口:

1.javax.jms.ConnectionFactory接口,用来产生Connection连接对象
2.javax.jms.Connection接口,用来产生Session会话对象。Connection接口有2个子接口:QueueConnection和TopicConnection。
3.javax.jms.Session接口,用来创建Destination目的地对象和MessageProducer生产者对象或者MessageConsumer消费者对象。Session接口也有2个子接口:QueueSession和TopicSession。
MessageProducer接口有2个子接口:QueueSender和TopicPublisher,MessageConsumer接口也有2个子接口:QueueReceiver和TopicSubscriber。以上两个子接口分别对应P2P消息传递模型和Pub/Sub消息传递模型。
JMS介绍的更多相关文章
- 消息中间件和JMS介绍
在一个公司创立初期,他可能只有几个应用,系统之间的关联也不是那么大,A系统调用B系统就直接调用B提供的API接口:后来这个公司做大了,他一步步发展有了几十个系统,这时候A系统要调用B系统的接口,但是B ...
- JMS介绍:我对JMS的理解和认识
[ZT]JMS介绍:我对JMS的理解和认识 转自:http://blog.csdn.net/KimmKing/archive/2011/06/30/6577021.aspx,感谢作者KimmKing ...
- Jms学习篇一:JMS介绍
1.JMS介绍: JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API JMS是一种与厂商无关的 API,用来访问 ...
- 消息中间件和JMS介绍(一)
在一个公司创立初期,他可能只有几个应用,系统之间的关联也不是那么大,A系统调用B系统就直接调用B提供的API接口:后来这个公司做大了,他一步步发展有了几十个系统,这时候A系统要调用B系统的接口,但是B ...
- JMS介绍入门大白话版
以下内容转自: http://setting.iteye.com/blog/1097767 ------------------------------------------------------ ...
- JMS介绍【转载】
什么是JMS JMS(Java Message Service) 即Java消息服务.它提供标准的产生.发送.接收消息的接口简化企业 应用的开发.它是J2EE规范的一部分,定义的接口标准,针对不同的厂 ...
- JMS学习一(JMS介绍)
一.JMS是个什么鬼 1.百度百科解释:JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之 ...
- JMS学习(一)基本概念
这两天面试了一两个公司,由于简历中的最近一个项目用到了JMS,然而面试官似乎对这个很感兴趣,所以都被问到了,但可惜的是,我除了说我们使用了JMS外,面对他们提出的一些关于JMS的问题,我回答得相当差, ...
- 使用activeMQ实现jms
一:jms介绍 jms说白了就是java message service,是J2EE规范的一部分,跟jdbc差不多,sun只提供了接口,由各个厂商(provider)来进行具体的实现, ...
随机推荐
- Install zlib/libpng/jpeg/freetype/libgd/GD on Mavericks即mac10.9(转)
转自:http://wangqinhu.com/install-gd-on-mavericks/ Various applications depend on library GD, however, ...
- HDU 4111 Alice and Bob (博弈+记忆化搜索)
题意:给定 n 堆石头,然后有两种操作,一种是把从任意一堆拿走一个,另一种是把一个石子放到另一堆上. 析:整体看,这个题真是不好做,dp[a][b] 表示有 a 堆1个石子,b个操作,操作是指把其他的 ...
- Aircrack使用
Aircrack Aircrack-ng 组件功能之一就是采集WEP及WPA-PSK字典并应用无线端口扫描进行破解,具体组件说明如下: aircrack-ng 功能主要是WEP及WPA-PSK密码的恢 ...
- Android 动态改变图片的颜色值
public void onViewClicked(View view) { switch (view.getId()) { case R.id.bt1: img1.setColorFilter(ge ...
- ComicEnhancerPro 系列教程十八:JPG文件长度与质量
作者:马健邮箱:stronghorse_mj@hotmail.com 主页:http://www.comicer.com/stronghorse/ 发布:2017.07.23 教程十八:JPG文件长度 ...
- angular 引入第三方库
第一步 --save:自动写入package.json 第二步: 第三部: 为了让typescript识别$ 第四步:
- ST表略解
题面 给定一个长度为\(N\)的数列,和\(M\)次询问,求出每一次询问的区间内数字的最大值. 对于30%的数据,满足: \(1≤N,M≤10\) 对于70%的数据,满足: \(1≤N,M≤10^5\ ...
- react.js学习之路三
学习react.js,知识点整理: 1.props和state: props是相对于父级来说,固定的不会改变的内容.一般会先定义一个变量,则在父级中进行引用, var user = "liu ...
- ORA-14402:更新分区关键字列将导致分区更改
开启行迁移就好了:alter table TABLE_NAME enable row movement; 注意:表分区的时候要确定分区字段是否会UPDATE,如果会的话一定要开启行迁移,否则就会报这个 ...
- CentOS6 系统下升级python后yum命令使用时报错
CentOS6 系统下升级python后yum命令使用时报错,如下: [root@xxxxxxx]#yumFile"/usr/bin/yum",line30exceptKeyboa ...