没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论



















RabbitMQ
MQ的相关概念
什么是MQ
为什么用MQ
MQ的分类
MQ的选择
RabbitMQ
RabbitMQ概念
RabbitMQ四大核心概念
生产者
交换机
队列
消费者
RabbitMQ基本功能
教程安装
官网Docker安装
Docker安装中出现的一些错误
入门案例
搭建基础环境
编写代码
Work Queues
轮询分发消费
消息应答
概念
自动应答
手动消息应答的方法
Multipe的解释
消息自动重新入队(案例)
消息手动应答案例
RabbitMQ持久化
概念
队列持久化
消息持久化
不公平分发
预取值
发布确认
发布确认原理
发布确认的策略
开启发布确认的方法
单个发布确认
批量确认发布
异步确认发布
如何处理异步为确认消息
总结
交换机
Exchanges
概念
Exchange的类型
无名Exchange
临时队列
绑定(bindings)
扇出(Fanout)
Fanout案例
路由模式 (Direct exchange)

Direct Exchange 简介
多重绑定
案例分析
主题模式(Topics Exchange)
Topic的要求
案例分析
Remote Procedure Call(RPC)
死信队列
概念
死信的三大来源
案例分析
架构图与代码实现
造成死信的三种原理
消息TTL过期
消息溢出队列
消息被拒
延迟队列
概念
使用场景
RabbitMQ中的TTL
消息设设置TTL
队列设置TTL
两者的区别
整合SpringBoot
创建项目添加依赖
添加连接MQ的配置文件
添加Swagger配置类
TTL案例
代码架构图
相关配置类
消息生产者代码
消息消费者代码
延时队列优化
代码架构图
配置文件类代码
消息生产者代码
RabbitMQ插件实现延迟队列
安装延时队列插件
代码架构图
配置类
消息生产者代码
消息消费者代码
总结:
发布确认高级
发布确认springboot版本
确认机制解决方案
案例构建过程
配置文件
相关配置类
消息生产者
消息队列
案例结果
回退消息
Mandatory参数
消息发布、确认、退回代码
备份交换机
代码架构图
案例代码

RabbitMQ其他要点
幂等性
概念
消息重复消费
解决方案
消费端的幂等性保障
优先级队列
使用场景
控制台添加优先级队列
代码中添加优先级队列
队列创建优先级
SpringBoot中设置消息的优先级
基本的设置消息的优先级
注意事项
优先级代码
惰性队列
使用场景
Classic队列的两种模式
内存开销队列
RabbitMQ集群
使用集群的原因
RabbitMQ集群的分类
标准集群
镜像集群
仲裁队列( quorum queues)
Stream简介
使用Stream的方式
创建Stream
客户端操作Stream
单一活跃消费者
超级流(Super Streams)
Super Streams简介
Super Streams使用
经典队列&仲裁队列
不适用使用冲裁队列的情况
声明仲裁队列
主机搭建
Docker搭建
创建目录
设置hosts
设置cookie
设置配置文件
拷贝目录
启动容器
搭建中的遇到的错误
集群测试
镜像队列
为什么需要使用镜像
搭建步骤
Haproxy+Keeplive实现高可用负载均衡
整体架构图
Haporxy实现负载均衡
搭建步骤
Keepalived 实现双机(主备)热备
搭建步骤
Federation Exchange
使用联邦交换机的原因

搭建步骤
Federation Queue
使用它的原因
搭建步骤
Shovel
使用Shovel的原因
搭建步骤
RabbitMQ
代码仓库:https://github.com/GhostQinMo/RabbitMQ_practice/tree/master
MQ的相关概念
什么是MQ
MQ(message queue),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是
message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常
常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了MQ之后,消息发送上游只需要依赖MQ,
不用依赖其他服务。
为什么用MQ
1. 流量消峰
举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常
时段我们下单一秒后就能返回结果。但是在高峰期,如果有两万次下单操作系统是处理不了的,只能限
制订单超过一万后不允许用户下单。使用消息队列做缓冲,我们可以取消这个限制,把一秒内下的订单
分散成一段时间来处理,这时有些用户可能在下单十几秒后才能收到下单成功的操作,但是比不能下单
的体验要好。
2. 应用解耦
以电商应用为例,应用中有订单系统、库存系统、物流系统、支付系统。用户创建订单后,如果耦合调
用库存系统、物流系统、支付系统,任何一个子系统出了故障,都会造成下单操作异常。当转变成基于
消息队列的方式后,系统间调用的问题会减少很多,比如物流系统因为发生故障,需要几分钟来修复。
在这几分钟的时间里,物流系统要处理的内存被缓存在消息队列中,用户的下单操作可以正常完成。当
物流系统恢复后,继续处理订单信息即可,中单用户感受不到物流系统的故障,提升系统的可用性。如
果一个子系统出现故障,消息队列监督恢复故障的子系统继续完成业务处理
3. 异步处理

有些服务间调用是异步的,例如A调用B,B需要花费很长时间执行,但是A需要知道B什么时候可以执行
完,以前一般有两种方式,A过一段时间去调用B的查询api查询。或者A提供一个calback api,B执行完之
后调用api通知A服务。这两种方式都不是很优雅,使用消息总线,可以很方便解决这个问题,A调用B服
务后,只需要监听B处理完成的消息,当B处理完成后,会发送一条消息给MQ,MQ会将此消息转发给A
服务。这样A服务既不用循环调用B的查询api,也不用提供callback api。同样B服务也不用做这些操
作。A服务还能及时的得到异步处理成功的消息。
MQ的分类
ActiveMQ
优点:单机吞吐量万级,时效性 ms 级,可用性高,基于主从架构实现高可用性,消息可靠性
较低的概率丢失数据
缺点: 官方社区现在对 ActiveMQ 5.x 维护越来越少, 高吞吐量场景较少使用。
Kafka:大数据的杀手锏,谈到大数据领域内的消息传输,则绕不开 Kafka,这款为大数据而生的消
息中间件,以其百万级TPS的吞吐量名声大噪,迅速成为大数据领域的宠儿,在数据采集、传输、
存储的过程中发挥着举足轻重的作用。目前已经被LinkedIn,Uber,Twitter,Netflix等大公司所采
纳。(Scale语言编写)
优点:性能卓越,单机写入TPS约在百万条/秒,最大的优点,就是吞吐量高。时效性ms级可用
性非常高,kafka是分布式的,一个数据多个副本,少数机器宕机,不会丢失数据,不会导致
不可用,消费者采用Pull方式获取消息,消息有序,通过控制能够保证所有消息被消费且仅被消
费一次;有优秀的第三方Kafka Web管理界面Kafka-Manager;在日志领域比较成熟,被多家公
司和多个开源项目使用;功能支持:功能较为简单,主要支持简单的MQ功能,在大数据领域的
实时计算以及日志采集被大规模使用
缺点: Kafka单机超过64个队列/分区,Load 会发生明显的飙高现象(这里指CPU飙高),队列越
多,load越高,发送消息响应时间变长,使用短轮询方式,实时性取决于轮询间隔时间,消
费失败不支持重试;支持消息顺序,但是一台代理宕机后,就会产生消息乱序,社区更新较慢;
RocketMQ:RocketMQ 出自阿里巴巴的开源产品,用 Java 语言实现,在设计时参考了 Kafka,并
做出了自己的一些改进。被阿里巴巴广泛应用在订单,交易,充值,流计算,消息推送,日志流式
处理, binglog 分发等场景
剩余110页未读,继续阅读
资源评论


Fairy-Xin
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
