MQ-整体回顾

one

异步、解耦、削峰

two

深入理解核心编程模型及消息应用场景

主要通过多了QUEUE进行交换消息

虚拟机的消息是不能发到另外虚拟机的Queue上的

  1. 生产者创建connection建立连接
  2. 通过connection声明channel信道
  3. 通过channel声明队列
  4. 声明好队列后发送消息
  5. 消费者拿到connection
  6. 打开信道channel
  7. channel声明队列
  8. channel拿到消息进行交互

细节

connection可以创建多个channel
声明交换机和队列


声明Stream类型的对列

对列类型的区别:

classic:先进先出

quorum:在classic上增加了消息的可用性【集群中写过超过半数的队列,这消息才算正常写完】

stream:用文本的形式把消息暂存起来

交换机和队列的绑定

java 复制代码
channel.exchangeBing()

发送消息

java 复制代码
channel.basicPublish()

消费者主动拿消息

不知道消息什么时候来,会不及时不建议使用

消费者被动拿消息
推消息

只要mq收到消息,就会主动向消费端推送消息



1

2 work queue

分发到消费者,只能消费一次

自动应答,收到就减队列消息。存在拿到消息没有落地到数据库导致消息丢失

手动应答
3 发布订阅模式

4 direct

5 topics

6 headers

交换机的header的


7 publish confirms

可靠消息发送

springboot集成

  1. 引入依赖
  2. 配置参数
  3. 声明
  4. 使用RabbitmqTemplate对象发送消息

相关推荐
女王大人万岁12 分钟前
Golang标准库 CGO 介绍与使用指南
服务器·开发语言·后端·golang
myzzb14 分钟前
纯python 最快png转换RGB截图方案 ——deepseek
开发语言·python·学习·开源·开发
t1987512815 分钟前
基于Chirp分解和多相快速算法的离散分数傅里叶变换(DFRFT)MATLAB实现
开发语言·算法·matlab
jllllyuz16 分钟前
基于MATLAB的PAM通信系统仿真实现
开发语言·matlab
程序员小假16 分钟前
我们来说一下虚拟内存的概念、作用及实现原理
java·后端
橘子1322 分钟前
redis持久化
数据库·redis
qq_4480111625 分钟前
python中的内置globals()详解
开发语言·python
悠哉清闲37 分钟前
Future
java·开发语言·kotlin
deepxuan1 小时前
Day2--python三大库-numpy
开发语言·python·numpy