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品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
随机推荐
- Spring security UserDetailsService autowired注入失败错误
最近使用spring mvc + spring security 实现登录权限控制的时候,一直不能成功登录,检查过后是dao一直无法注入为null CustomUserDetailConfig.jav ...
- android最新版 极光推送
极光推送对于移动开发的程序员都不陌生,用起来也挺方便的,今天在这里给大家介绍下最先版的极光推送的用法,超级简单. 1.在build.gradle里面添加两个方法并引用一个库文件 1.1在default ...
- Ubuntu16.04安装QQ(图文说明)
导读 最近,因为工作需要,我安装了Ubuntu16.04,然而有好多不便,工作上的事情大多需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个linux版本的QQ,然而不是 ...
- JqGrid 获取所有数据
jqGrid使用本地数据时,当jqGrid配置的rowNum小于本地总数据量(records属性记录总数据,可以通过records获取到本地总数据量),调用getRowData方法获取到的只是显示的部 ...
- CreateRemoteThreadex开启远程线程失败集合
修改进程PE头 报错 修改进程_EPROCESS +0x12c SectionBaseAddress : 0x00bf0000 都会报错 不是有效的win32程序 错误号193 修改进程PEB +0x ...
- CS无线电语
[Radio Commands (" Z "键) - 无线电指令] 1."Cover me" (掩护我) 2."You Take The Point& ...
- java web页面跳转 总结
Servlet中forward和redirect的区别 forward方式:request.getRequestDispatcher("/somePage.jsp").forwar ...
- win10系统下把Oracle卸载干净
我和大家一样,遇到了一个问题,就是如何把Oracle从自己的电脑卸载干净,很多人都觉得很难把Oracle卸载干净,于是选择重装系统,因为解决不了Oracle没有卸载干净之后,重装不了的问题,有时候真的 ...
- oracle常用操作命令总结
一. 默认安装带来的用户名/密码:--sys/change_on_install SYSDBA 或 SYSOPER 不能以 NORMAL 登录,可作为默认的系统管理员 --system/安装时输入的密 ...
- ubuntu mysql 数据库备份以及恢复[命令行]
之所以加了个ubuntu,其实也没什么,就是恢复数据库的时候给幽默了一下,所以特地加上. 写在前面:一直很想好好的学linux命令行.shell编程,幻想自己能够通过学习进而成为命令行高手,游刃于 ...