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品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
随机推荐
- C语言基础之水仙花数
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身. 例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方. 程序分析:利用for循 ...
- Maven手动添加dependency(以Oracle JDBC为例)
由于Oracle授权问题,Maven不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库.首先需要到Oracle官网上下载 ...
- JS-实时修改在textarea里面的span(实际输入的文字)
解决办法: 在开发中,多少会遇到一些界面,输入限制字数. 例如: //页面加载完毕 $(function() { //descrip是textarea的id $("#descrip" ...
- 【BZOJ3425】Poi2013 Polarization 猜结论+DP
[BZOJ3425]Poi2013 Polarization Description 给定一棵树,可以对每条边定向成一个有向图,这张有向图的可达点对数为树上有路径从u到达v的点对(u,v)个数.求最小 ...
- 后端程序员如何玩转AJAX
1.原生的Ajax入门 (感觉很是繁琐,所以一般我们都是用简单的方式) 创建一个核心对象 XMLHttpRequest var xmlhttp; if (window.XMLHttpRequest) ...
- vue根据数组对象中某个唯一标识去重
由于在vue中,会自动在数组和对象中加入_obser__观察者模式的一些属性,所以直接用数组的filter去重(下面这种),indexOf不能准确识别 var arr = [1, 2, 2, 3, 4 ...
- absolute float 比较分析
同一:absolute-float 都脱离了文档流,也就是默认情况下,父盒子计算高度不包括 absolute/float 的元素 下例: 两个 parentDiv,背景色:深海蓝;边框:1px红色实线 ...
- 170418、vmware 安装 centos 开启网卡自启动
前言:CentOS虚拟机安装成功后,默认开机未启用网关,通过修改配置文件,启用网卡 开启方法如下: 1.登录系统,虚拟机安装完成后,第一次登录系统,系统只有一个账号,即超级管理员root账户,输入安装 ...
- flask中db.init_app(app)讲解
http://www.pythondoc.com/flask/extensiondev.html http://www.pythondoc.com/flask/extensiondev.html#fl ...
- Hive简介及使用
一.Hive简介 1.hive概述 Apache Hive™数据仓库软件有助于使用SQL读取,编写和管理驻留在分布式存储中的大型数据集. 可以将结构投影到已存储的数据中.提供了命令行工具和JDBC驱动 ...