【RabbitMQ】

课程背景

一.初始MQ

1.同步调用

2.异步调用

1.解耦合:如果需要扩展业务,那就扩呗,让扩展的服务去监听消息队列就可以了

2.无需等待:只管发消息,发完就不管了,干别的事去了

3.故障隔离:接收消息的服务故障了,和发消息的无关,你失败了就接着重试就行了,总会成功的

4.流量削峰:当高并发进来时,先缓存在里面,等空闲的时候再去处理

二.快速入门

1.基本介绍

2.快速入门

3.workQueue

4.Fanout交换机(广播)

发一个消息,多个微服务都来监听,只有队列没有交换机的话,被一个消费者消费一次就没了,所以是不行的。

三.生产者

1.可靠性

连接时,失败重连,连接多长时间算超时,属于阻塞式等待

2.确认机制

侧重于消息发送时,mq返回一个结果给生产者,成功还是失败。

1.案例(异步回调)

每一个消息都要有一个自己的id,不能重复

四.MQ的可靠性

MQ自己把消息搞丢了

解决方案

1.数据持久化

消息持久化解决了存储在内存的安全问题,同时解决了page out引起的阻塞。但性能不高。

2.Lazy queue

五.消费者的可靠性

1.确认机制

reject:消息本身就有问题。不断重试还是会有问题。

2.失败重试机制

相关推荐
FQNmxDG4S6 小时前
Java多线程编程:Thread与Runnable的并发控制
java·开发语言
虹科网络安全7 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje7 小时前
Java语法进阶
java·开发语言·jvm
rKWP8gKv77 小时前
Java微服务性能监控:Prometheus与Grafana集成方案
java·微服务·prometheus
老前端的功夫8 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_435287928 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
小江的记录本8 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
yaoxin5211238 小时前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python
极客先躯10 小时前
高级java每日一道面试题-2025年11月24日-容器与虚拟化题[Dockerj]-runc 的作用是什么?
java·oci 的命令行工具·最小可用·无守护进程·完全标准·创建容器的核心流程·runc 核心职责思维导图
用户606487671889610 小时前
AI 抢不走的技能:用 Claude API 构建自动化工作流实战
java