ToB企服应用市场:ToB评测及商务社交产业平台

标题: RabbitMQ个人实践 [打印本页]

作者: 伤心客    时间: 2022-11-24 16:24
标题: RabbitMQ个人实践
前言

MQ(Message Queue)就是消息队列,其有点有很多:解耦、异步、削峰等等,本文来聊一下RabbitMQ的一些概念以及使用。
RabbitMq

案例

Springboot整合RabbitMQ简单案例
基本概念


发布消息到RabbitMQ需要经过两步:
工作流程

了解了RabbitMQ的一些概念,我们来捋捋使用RabbitMQ的流程:
交换机(Exchange)

交换机可以绑定队列,绑定时可以给队列指定路由(Routing key)和参数(Arguments)
所有的消息发送都是经过交换机转发到队列的,而不是直接到队列中
交换机类型:
消息过期时间TTL

有两种方式设置TTL,创建队列时设置整个队列的TTL或者在发送消息时单独设置每条消息的TTL,消息存活时间取两者的最小值。
死信队列

死信队列也是一个正常队列,只是当绑定了死信队列的队列满足相应条件,就会将满足条件的消息转移到死信队列中。
进入死信队列的条件:
死信队列的配置:
如何保证MQ消息正确送达与消费

可靠性生产和推送

步骤:
实现:
上面我们讲了,发布消息到RabbitMQ需要经过两步:
producer → exchange
exchange 根据 exchange 的类型和 routing key 确定将消息投递到哪个队列
所以,发布消息的确认也分两个部分,以下是确认步骤:
可靠性消费

步骤:
实现:
总结

本文介绍了RabbitMQ的一些概念和简单使用,有不少东西其实是没有讲清楚的,比如publisher-confirm-type和acknowledge-mode的几种类型的区别等等。主要是在官方文档找不到相关的细致描述,查文档的能力还是有待提高。。。
参考资料
RabbitMq 技术文档 - 腾讯云开发者社区-腾讯云 (tencent.com)
Spring AMQP

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4