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对象发送消息

相关推荐
q***47188 小时前
Spring中的IOC详解
java·后端·spring
qq_386218998 小时前
Gemini生成的自动搜索和下载论文的python脚本
开发语言·python
vx_vxbs668 小时前
【SSM电影网站】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·python·mysql·小程序·php·idea
SunnyDays10119 小时前
如何使用 Java 删除 Word 文档中的水印
java·删除word文档水印
大锦终9 小时前
【MySQL】内置函数
数据库·mysql
猿小喵9 小时前
索引优化-MySQL性能优化
数据库·mysql·性能优化
o***Z4489 小时前
JavaScript在Node.js中的内存管理
开发语言·javascript·node.js
毕设源码-邱学长9 小时前
【开题答辩全过程】以 基于Java企业人事工资管理系统为例,包含答辩的问题和答案
java·开发语言
转转技术团队9 小时前
回收系统架构演进实战:与Cursor结对扫清系统混沌
java·架构·cursor
AI分享猿9 小时前
Java后端实战:SpringBoot接口遇异常请求,轻量WAF兼顾安全与性能
java·spring boot·安全