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

相关推荐
2401_841495641 天前
【数据结构】基于Prim算法的最小生成树
java·数据结构·c++·python·算法·最小生成树·prim
木井巳1 天前
[Java数据结构和算法] HashMap 和 HashSet
java·数据结构·1024程序员节
祈祷苍天赐我java之术1 天前
解析常见的限流算法
java·数据结构·算法
摇滚侠1 天前
IDEA 启动前端项目 IDEA 切换分支
java·ide·intellij-idea
元直数字电路验证1 天前
Jakarta EE开发中,如何配置IntelliJ IDEA的远程调试?
java·eureka·intellij-idea
石头wang1 天前
idea字体的问题(idea应用本身的字体问题)
java·ide·intellij-idea
孔明兴汉1 天前
第一章-第三节-Java开发环境配置
java·开发语言
小王不爱笑1321 天前
Java 核心知识点查漏补缺(一)
java·开发语言·python
空空kkk1 天前
Java——类和对象
java·开发语言
JIngJaneIL1 天前
篮球论坛|基于SprinBoot+vue的篮球论坛系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·篮球论坛系统