- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RabbitMQ-Day1
学习目标
1. 消息队列介绍
2. 安装RabbitMQ
3. 编写RabbitMQ 的入门程序
4. RabbitMQ 的5种模式讲解
5. SpringBoot整合RabbitMQ
1 消息队列概述
1.1 消息队列MQ
MQ 全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
为什么使用MQ?
在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的
节省了服务器的请求响应时间,从而提高了系统的吞吐量。
开发中消息队列通常有如下应用场景:
应用解耦、异步处理(提高系统响应速度)、流量削峰(高峰堆积消息,峰后继续处理消息)、日志处理(分布式
日志,一般使用kafka)、纯粹通讯。
1.2 AMQP 和 JMS
是消息通信的模型;实现 的大致有两种主流方式: 、 。
MQ MQ AMQP JMS
1.2.1AMQP
AMQP 高级消息队列协议,是一个进程间传递异步消息的网络协议,更准确的说是一种binary wire-level
protocol (链接协议)。这是其和JMS 的本质差别,AMQP 不从API 层进行限定,而是直接定义网络交换的数
据格式。
1.2.2JMS
即 消息服务( )应用程序接口,是一个 平台中关于面向消息中间件( )
JMS Java JavaMessage Service Java MOM
的 ,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
API
1.2.3 AMQP 与 JMS 区别
JMS 是定义了统一的接口,来对消息操作进行统一;AMQP 是通过规定协议来统一数据交互的格式
JMS 限定了必须使用Java 语言;AMQP 只是协议,不规定实现方式,因此是跨语言的。
JMS 规定了两种消息模式;而AMQP 的消息模式更加丰富
1.3 消息队列产品
目前市面上成熟主流的MQ 有Kafka 、RocketMQ、RabbitMQ,我们这里对每款MQ 做一个简单介绍。
Kafka
Apache 下的一个子项目,使用scala 实现的一个高性能分布式Publish/Subscribe 消息队列系统。
1.快速持久化:通过磁盘顺序读写与零拷贝机制,可以在O(1)的系统开销下进行消息持久化;
2.高吞吐:在一台普通的服务器上既可以达到10W/s 的吞吐速率;
3.高堆积:支持topic 下消费者较长时间离线,消息堆积量大;
完全的分布式系统: 、 、 都原生自动支持分布式,依赖 自动实现
4. Broker Producer Consumer zookeeper
复杂均衡;
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
5.支持Hadoop 数据并行加载:对于像Hadoop 的一样的日志数据和离线分析系统,但又要求实时处理
的限制,这是一个可行的解决方案。
RocketMQ
的前身是 ,当 发布时,产品名称改为 。 是一款分布式、队列
RocketMQ Metaq Metaq3.0 RocketMQ RocketMQ
模型的消息中间件,具有以下特点 :
1.能够保证严格的消息顺序
2.提供丰富的消息拉取模式
3.高效的订阅者水平扩展能力
4.实时的消息订阅机制
5.支持事务消息
6.亿级消息堆积能力
RabbitMQ
使用 编写的一个开源的消息队列,本身支持很多的协议: ,
文档评论(0)