JSM 学习(一)
JMS 支持两类消息传送模型:点对点模型和发布/订阅模型。又称这些消息传送模型为消息传送域。点对点模型和发布订阅模型分别缩写为p2p和Pub/Sub。
发布订阅模型用于一对多消息广播,点对点模型用于一对一的消息传送。

点对点消息传送模型允许jms客户端通过队列来同步和异步发送、接受消息,点对点模型中,消息生产者成为发送者(sender),而消息消费者成为接受者(receiver)。
点对点模型是一个基于拉取或者轮训的消息传送模型,是主动从队列中请求消息,而不是自动的将消息推送到客户端。
点对点模型的特点是:
1.发送到队列的消息被某一个接收者接收,即使有多个接收者侦听同一个消息。
2.点对点支持异步“即发即弃”
3.支持同步请求/应答消息传送方式
4.点对点消息传送模型比发布/订阅模型具有更强的耦合性,发送者通常知道消息将被如何使用,而且知道谁将接受该消息
5.点对点模型支持负载均衡,它允许多个接收者侦听同一个队列,并且以此来分配负载
6.队列浏览器允许客户端在消费其他消息之前查看队列内容
发布/订阅中消息被发布到一个叫做主题的虚拟通道中,消息生产者成为发布者(publisher),消息消费者被成为订阅者(subscriber)
使用发布/订阅模型发布一个主题消息,能够被多个订阅者接受,有时候也被成为广播消息,每个接收者接收到的是消息的一个副本,发布订阅是基于推送的模型,其中自动的向消费者广播,无需轮训或者请求查找主题
发布订阅模型的特点:
1.发布订阅模型比P2P模型的去耦能力更强
2.非持久订阅者,他们只是在主动侦听主题时才能接收消息
3.持久订阅者将接收发布每个消息的副本,即便发布消息时处于离线状态.
4.另外还有动态持久订阅者和受管的之久订阅者
JSM 学习(一)的更多相关文章
- Hadoop日记Day17---计数器、map规约、分区学习
一.Hadoop计数器 1.1 什么是Hadoop计数器 Haoop是处理大数据的,不适合处理小数据,有些大数据问题是小数据程序是处理不了的,他是一个高延迟的任务,有时处理一个大数据需要花费好几个小时 ...
- Android开发学习总结(六)—— APK反编译
学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译.我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或 ...
- IM通信协议逆向分析、Wireshark自定义数据包格式解析插件编程学习
相关学习资料 http://hi.baidu.com/hucyuansheng/item/bf2bfddefd1ee70ad68ed04d http://en.wikipedia.org/wiki/I ...
- Android开发学习总结(六)—— APK反编译(转)
学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译.我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或 ...
- JavaEE学习之Spring声明式事务
一.引言 上一篇文章,学习了AOP相关知识,并做了一个简单的Hello world.本文在上篇文章的基础上,进一步学习下Spring的声明式事务. 二.相关概念 1. 事务(Transaction)— ...
- Flask学习之一 hello world
本人电脑环境: 系统:linux
- ThreeJS学习6_几何体相关(BufferGeometry)
ThreeJS学习6_几何体相关(BufferGeometry) 使用 BufferGeometry 可以有效减少向 GPU 传输几何体相关数据所需的开销 可以自定义顶点位置, 面片索引, 法向量, ...
- # ThreeJS学习7_裁剪平面(clipping)
ThreeJS学习7_裁剪平面(clipping) 目录 ThreeJS学习7_裁剪平面(clipping) 1. 裁剪平面简介 2. 全局裁剪和局部裁剪 3. 被多个裁剪平面裁剪后 4. 被多个裁剪 ...
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
随机推荐
- GIS Cesium地图数据配置
1.打开IIS,点击站点 2.跨域配置 配置方式: 在地图数据目录之中放置web.config文件,里面存放 <?xml version="1.0" encoding=&qu ...
- ios 的EditBox点击空白处不隐藏的解决方案
原因:参数少了前缀CC 解决方案:修改 cocos/platform/ios/CCEAGLView-ios.mm 中的 handleTouchesAfterKeyboardShow -(void) h ...
- iOS 7 新特性:视图控制器切换API
本文转载至 http://blog.jobbole.com/51588/ 本文由 伯乐在线 - studentdeng 翻译自 Chris Eidhof.欢迎加入技术翻译小组.转载请参见文章末尾处的要 ...
- 基于k8s的promethus监控
没有监控 就没有眼睛. 除了k8s的基本监控外(pod运行状况.占用内存.cpu).为了对微服务项目中的(1)各种参数线程池.QPS.RT.业务指标(2)系统负载.thread.mem.class.t ...
- 160517、nginx负载均衡详解
1:什么是负载均衡 负载平衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群).网络连接.CPU.磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用.最大化吞吐率. ...
- gridView在view页面中的一些代码详细模板
<?php use yii\helpers\Html; use yii\grid\GridView; use yii\widgets\Pjax; use frontend\models\Item ...
- SQL中的循环获取根节点
方法一: DECLARE @employeeid INT; set @employeeid = 8115; DECLARE @id INT; DECLARE @pid int; DECLARE @le ...
- 通过TZ来设置嵌入式ARM+Linux的时区
1.在/etc/profile或者/root/.profile(/home/username/.profile) 在其中加入: TZ=UTC-08:00 export TZ hwclock -s
- IE8数组不支持indexOf方法的解决办法
在使用indexof方法之前加上以下代码就可以了. if (!Array.prototype.indexOf){ Array.prototype.indexOf = functio ...
- window下cmd的宽度调整
一直被cmd的宽度这么了好些年,刚才搜索了下,还真可以设置.标题栏右键属性,调整屏幕缓冲区宽度,只要足够长就不会换行了,然后调整窗口大小-宽度,不能超过屏幕缓冲区宽度,当小于屏幕缓冲区的时候,就会显示 ...