- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MQ学习笔记
基础概念
企业级消息传递
可以异步收发消息 存储转发
收发双方不必须同时都处于活动的状态
MOM(消息中间件)
优势:松耦合,可扩展性
JMS(JSR914,JMS1.1)
接口规范API 实现有不同的提供商
消息服务器/消息代理broker 类似邮政服务 而非应用间直接通信
receive()同步接收(客户端主动去接收) / listener异步接收
JMS两种域(模式):
PTP 点到点
通过Queue队列实现 一个消息只能被消费一次(如果同一个队列有多个消费者,那么只有一个消息只会发给一个消费者,轮询方式)
Pub/Sub 发布/订阅
通过Topic主题实现 一个消息可被多个订阅者消费(一个主题的所有订阅者都会收到)
**Durable Subscription vs. Non-Durable Subscription
(Durability只有Pub/Sub域才有)
当订阅者断开连接(非活动)时,JMS Provider会为其保留它所订阅的消息,在它重新连接后便可接收;Non-Durable的订阅则无法接收到断开连接时发布到主题上的消息
区别Persistence(消息投递模式,与Durability是完全不同的概念)
发布/订阅
异步收发 不需要互相知道是什么系统和在什么位置以及对方会如何处理消息 收发分离 不互相依赖 解耦合
同一个消息可以被分发给多个接收方
消息选择
订阅者过滤消息两种方式:
基于主题
基于内容:通过消息属性的值来过滤
ActiveMQ优点
JMS兼容
多种连接选择:HTTP/S, JGroups, JXTA, multicast, SSL, TCP, UDP, XMPP等
可插拔的持久化和安全性
Java容器集成
非Java的API
代理集群
等等
速度快(often 10x faster than JBossMQ)
JMS对象
JMS客户端、非JMS客户端、JMS生产者、JMS消费者、JMS消息、JMS域、受管理对象(连接工厂、目的地)
JMS消息解剖
头部为客户端和提供商提供元数据;属性是可选的;负载可以是文本、二进制数据等,有不同的消息类型(Message-TextMessage, MapMessaage, BytesMessage, StreamMessage, ObjectMessage);头部和属性可被用来过滤消息(JMS选择器selector语法…)
消息投递模式
需要持久化:投递一次且仅一次
无需持久化:最多投递一次
可靠性机制
基本可靠性机制
签收(Acknowledgement)
在带事务的Session中,签收自动发生在事务提交时。如果事务回滚,所有已经接收的消息将会被再次传送。在不带事务的Session中,一条消息何时和如何被签收取决于Session 的设置。
传送模式(Delivery Mode)
设置消息优先级
允许消息过期
使用临时目标(TemporaryQueue, TemporaryTopic)
临时目标持续到创建它的connection关闭,只有创建者才可从中接收消息。
高级可靠性机制
持久订阅
使用本地事务
ActiveMQ应用
conf/activemq.xml
连接
客户端-代理:transportConnectors/
tcp(mfu), multicast, ssl, stomp, xmpp, nio, udp, ssl, http/https, vm
NIO (jsr51, javase1.4):有大量的客户端需要连接到代理;网络流量很重
SSL:broker.ks, broker.ts
VM:vm内部通信,无须通过网络。应用内嵌broker。极大提高了性能。
代理-代理:networkConnectors/
network of brokers, 集群…集群拓扑,forwarding bridge / duplex connector
静态:static, failover
动态:multicast, discovery, peer, fanout
multicast: uri=”multicast://default/”, default组
peer:用于创建vm网络。组名。发往组中一个的消息同组的其它都可得。
fanout(扇出):用于客户端同时连接到多个代理并且复制操作,它可以使用static或multicast。默认地,至少连接2个代理,只适用于topic。注意,只用于生产,而不用于消费。
持久化
恢复 内存,文件,关系数据库 可插拔
PTP:FIFO
Topic: only one copy of message
broker persistent=”true”
AMQ Message Store
基于文件的,最快的
KahaDB M
您可能关注的文档
最近下载
- 读书分享会《如何阅读一本书》.ppt VIP
- 29体制转轨时民营经济发展的约束分析.doc VIP
- 第一章 化学工业与化学工程教学精品.ppt VIP
- 2025年湖北省技能高考(农学类-种植类)专业知识《植物保护》考试题库资料(含详解).pdf VIP
- 食品加工车间卫生检测标准.docx VIP
- (高清版)DB11∕T 1136-2023 城镇燃气管道翻转内衬修复工程施工及验收规程.pdf VIP
- 少儿中国传统介绍——春节英语PPT.ppt VIP
- 《红星照耀中国》 导读课件(共55张PPT).pptx
- 完整版劳动合同书Word模板(共5页).pdf VIP
- 食品加工车间卫生规范标准.docx VIP
原创力文档


文档评论(0)