one
异步、解耦、削峰

two
深入理解核心编程模型及消息应用场景
主要通过多了QUEUE进行交换消息
虚拟机的消息是不能发到另外虚拟机的Queue上的
- 生产者创建connection建立连接
- 通过connection声明channel信道
- 通过channel声明队列
- 声明好队列后发送消息
- 消费者拿到connection
- 打开信道channel
- channel声明队列
- channel拿到消息进行交互
细节

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



声明Stream类型的对列

对列类型的区别:
classic:先进先出
quorum:在classic上增加了消息的可用性【集群中写过超过半数的队列,这消息才算正常写完】
stream:用文本的形式把消息暂存起来
交换机和队列的绑定
channel.exchangeBing()
发送消息
channel.basicPublish()
消费者主动拿消息

不知道消息什么时候来,会不及时不建议使用
消费者被动拿消息
推消息
只要mq收到消息,就会主动向消费端推送消息





1

2 work queue

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

自动应答,收到就减队列消息。存在拿到消息没有落地到数据库导致消息丢失
手动应答
3 发布订阅模式

4 direct
5 topics

6 headers
交换机的header的



7 publish confirms
可靠消息发送
springboot集成
- 引入依赖

- 配置参数

- 声明

- 使用RabbitmqTemplate对象发送消息





















![心法利器[97] | 判断问题是否真的需要大模型来解决](https://img-blog.csdnimg.cn/img_convert/9f9a137f7e3a6233a587604b4fe7af46.png)