![](https://img-blog.csdnimg.cn/43cd19cb6d6f49108f69a59fedf52a3e.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
RabbitMQ
文章平均质量分 90
RabbitMQ
悬浮海
正在准备系列内容,更新较少。
展开
-
RabbitMQ目录
文章目录RabbitMQ目录核心部分高级部分集群RabbitMQ目录核心部分1、RabbitMQ概述2、RabbitMQ之简单模式-HelloWorld3、RabbitMQ之工作队列模式 以及(多个消费者时的消费策略、消费者消息应答机制、RabbitMQ 持久化操作4、RabbitMQ之发布确认模式5、交换机 与 发布/订阅模式、路由模式、主题模式_高级部分6、死信队列7、延迟队列8、发布确认- 整合springboot (回退消息、备份交换机)9、RabbitMQ 其他知识点:原创 2022-03-20 10:42:52 · 1311 阅读 · 1 评论 -
RabbitMQ如何防止消息丢失及重复消费
文章目录RabbitMQ如何防止消息丢失及重复消费一、消息丢失1.1、生产者没有成功把消息发送到MQ1.1.1、confirm(发布确认)机制1.1.2、事务机制1.2、RabbitMQ接收到消息之后丢失了消息1.3、消费者弄丢了消息二、如何防止重复消费RabbitMQ如何防止消息丢失及重复消费一、消息丢失如图所示,RabbitMQ丢失消息的情况可以发送在任何一个节点。1.1、生产者没有成功把消息发送到MQ丢失的原因 :因为网络传输的不稳定性,当生产者在向MQ发送消息的过程中,MQ没有成功接收原创 2022-03-20 14:49:36 · 15662 阅读 · 2 评论 -
十、RabbitMQ 集群
文章目录RabbitMQ 集群1、clustering1.1. 使用集群的原因1.2. 搭建步骤2、镜像队列2.1. 使用镜像的原因2.2. 搭建步骤3、Haproxy+Keepalive 实现高可用负载均衡3.1. 整体架构图3.2. Haproxy 实现负载均衡3.3. 搭建步骤3.4. Keepalived 实现双机(主备)热备3.5. 搭建步骤4、Federation Exchange4.1. 使用它的原因4.2. 搭建步骤5、Federation Queue5.1. 使用它的原因5.2. 搭建步骤原创 2022-03-19 11:05:05 · 444 阅读 · 0 评论 -
九、RabbitMQ 其他知识点:幂等性、优先级队列、惰性队列
文章目录RabbitMQ 其他知识点1、幂等性1.1. 概念1.2. 消息重复消费1.3. 解决思路1.4. 消费端的幂等性保障1.5. 唯一ID+指纹码机制1.6. Redis 原子性2、优先级队列2.1. 使用场景2.2. 如何使用优先级队列2.3. 代码实战3、惰性队列3.1. 使用场景3.2. 两种模式3.3. 内存开销对比RabbitMQ 其他知识点1、幂等性1.1. 概念用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子:那就是原创 2022-03-19 11:04:05 · 755 阅读 · 0 评论 -
八、发布确认- 整合springboot (回退消息、备份交换机)
文章目录发布确认-高级1、发布确认 springboot 版本1.1. 确认机制方案1.2. 代码架构图1.3. 配置文件1.4. 添加配置类1.5. 消息生产者1.6. 回调接口【重点】1.7. 消息消费者1.8. 结果分析2、回退消息2.1. Mandatory 参数2.2. 更改回调接口 :增加回退接口2.3. 消息生产者代码与消费者代码不用变2.4. 结果分析3、备份交换机3.1. 代码架构图3.2. 修改配置类3.3. 增加一个报警消费者3.4. 生产者代码和之前的消费者不用变3.5. 结果分析原创 2022-03-19 11:02:31 · 1049 阅读 · 7 评论 -
七、延迟队列
文章目录延迟队列1、延迟队列概念2、延迟队列使用场景3、RabbitMQ 中的 TTL3.1. 消息设置TTL3.2. 队列设置TTL3.3. 两者的区别4、整合 springboot4.1. 创建项目4.2. 添加依赖4.3. 修改配置文件4.4. 添加Swagger 配置类5、队列 TTL 代码5.1. 代码架构图5.2. 配置文件类代码5.3. 消息生产者代码5.4. 消息消费者代码6、延时队列优化:自定义消息的延迟时间6.1. 代码架构图6.2. 修改配置文件类代码6.3. 修改消息生产者代码6.4原创 2022-03-19 10:51:33 · 528 阅读 · 0 评论 -
六、死信队列
文章目录死信队列1、死信的概念2、死信的来源3、死信实战3.1. 代码架构图3.2. 消息TTL 过期3.3. 队列达到最大长度3.4. 消息被拒死信队列1、死信的概念先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有原创 2022-03-19 10:43:01 · 4106 阅读 · 0 评论 -
五、交换机 与 发布/订阅模式、路由模式、主题模式
交换机原创 2022-03-19 10:40:05 · 673 阅读 · 1 评论 -
四、RabbitMQ之发布确认模式
文章目录RabbitMQ之发布确认模式1、发布确认原理2、发布确认的策略2.1. 开启发布确认的方法2.2.同步发布确认2.2.1. 单个发布确认2.2.2. 批量发布确认2.3. 异步发布确认2.4. 以上 3 种发布确认速度对比RabbitMQ之发布确认模式1、发布确认原理发布确认是解决消息不丢失的重要环节。在上节有说到即使我们在生产者中设置了队列持久化、消息持久化,但依然存在消息被传送到队列上,还没来得及存储在磁盘上,队列就宕机了,这种情况下消息也是会宕机的。所以在之前两步的基础上还是进行第原创 2022-03-19 10:36:53 · 1817 阅读 · 0 评论 -
三、RabbitMQ之工作队列模式 以及(多个消费者时的消费策略、消费者消息应答机制、RabbitMQ 持久化操作)
文章目录RabbitMQ之工作队列模式-Work Queues1、有多个消费者时的消费策略:轮询分发消息1.1、抽取工具类1.2、启动两个工作线程(消费者)1.3、 启动一个发送线程(生产者)1.4、结果展示2、消息应答机制—保证消息在消费过程中不丢失2.1、概念2.2、自动应答2.3、手动应答2.3.1、手动应答相关函数2.3.2、手动应答的好处2.3.3、手动应答消息代码2.3.4、手动应答效果演示2.4、消息丢失之后的处理:消息自动重新入队3、RabbitMQ 持久化 - 生产者做的事情3.1、 概念原创 2022-03-19 10:35:02 · 4252 阅读 · 2 评论 -
二、RabbitMQ简单模式-HelloWorld
文章目录RabbitMQ简单模式-HelloWorld1、依赖2、消息生产者3、消息消费者RabbitMQ简单模式-HelloWorld这一部分中,我们将用 Java 编写两个程序。发送单个消息的生产者和接收消息并打印出来的消费者。将介绍 Java API 中的一些细节。在下图中,“ P”是我们的生产者,“ C”是我们的消费者。中间的框是一个队列-RabbitMQ 代表使用者保留的消息缓冲区1、依赖<dependencies> <!--rabbitmq 依赖客户端-原创 2022-03-19 10:28:10 · 280 阅读 · 0 评论 -
一、RabbitMQ概述
文章目录1、RabbitMQ 的概念2、四大核心组成3、RabbitMQ 六大核心部分(模式)4、各个名词介绍5、安装1、RabbitMQ 的概念RabbitMQ 是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是一个快递站,一个快递员帮你传递快件。RabbitMQ 与快递站的主要区别在于:它不处理快件而是接收,存储和转发消息数据。2、四大核心组成生产者:产生数据,原创 2022-03-19 10:26:08 · 755 阅读 · 0 评论