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

相关推荐
CoderYanger8 小时前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第二弹)
java·数据库·spring boot·spring·面试·java-ee·mybatis
CQU_JIAKE11 小时前
11.7[高体】
java·后端·spring
wafrdggh11 小时前
2026电商快递批量查询怎么用?固乔助手模板设置评测
大数据·数据库·小程序
一个天蝎座 白勺 程序猿11 小时前
KingbaseES数据库归档重做日志文件管理:从配置到运维的实战指南
运维·数据库·oracle·kingbasees·金仓数据库
apcipot_rain12 小时前
C++转Java日记(04)
java·开发语言·c++
特立独行的猫A12 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
云和数据.ChenGuang13 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
憧憬成为java架构高手的小白14 小时前
LangGraph4j 实战(下)
java
天诰14 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
龙腾AI白云15 小时前
仿真到现实(Sim-to-Real)迁移:跨越仿真与现实鸿沟
数据库·机器学习·plotly·知识图谱·tornado