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

相关推荐
哎呦没1 分钟前
SpringBoot框架下的资产管理自动化
java·spring boot·后端
小爬虫程序猿5 分钟前
如何利用Python解析API返回的数据结构?
数据结构·数据库·python
wowocpp1 小时前
查看 磁盘文件系统格式 linux ubuntu blkid ext4
linux·数据库·ubuntu
m0_571957582 小时前
Java | Leetcode Java题解之第543题二叉树的直径
java·leetcode·题解
一点媛艺3 小时前
Kotlin函数由易到难
开发语言·python·kotlin
姑苏风3 小时前
《Kotlin实战》-附录
android·开发语言·kotlin
奋斗的小花生4 小时前
c++ 多态性
开发语言·c++
魔道不误砍柴功4 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_2344 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨4 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享