【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.失败重试机制

相关推荐
后端AI实验室4 分钟前
等保三级整改,敏感数据加密,数十个系统——3个人用Cursor一周搞定了
java·ai
qq_334060216 分钟前
spring_springmvc_mybatis权限控制+boostrap实现UI
java·spring·mybatis
sunwenjian88611 分钟前
Spring Boot 整合 Druid 并开启监控
java·spring boot·后端
1104.北光c°17 分钟前
基于Canal + Kafka的高可用关注系统:一主多从关系链
java·开发语言·笔记·分布式·程序人生·kafka·一主多从
Mem0rin18 分钟前
[Java]异常及其处理
java·开发语言
skiy19 分钟前
Spring boot创建时常用的依赖
java·spring boot·后端
早起的年轻人21 分钟前
告别Git仓库臃肿:一招解决Maven target目录误提交问题
java·git·maven
快乐柠檬不快乐27 分钟前
Java连接电科金仓数据库(KingbaseES)实战指南
java·开发语言·数据库
程序员清风29 分钟前
看完Anthropic研究才懂:你有多会问,AI就有多强!
java·后端·面试
爱学习的小囧30 分钟前
VCF 集群部署灵活组合:单节点与高可用配置完全指南
java·服务器·前端