恭喜发现宝藏!微信搜索公众号【TechGuide】关注更多新鲜好文和互联网大厂的笔经面经。 作者@TechGuide【全网同名】 点赞再看,养成习惯,您动动手指对原创作者意义非凡🤝
当你的才华还撑不起你的野心时,你应该静下心去学习 。 前言众所周知,消息队列是在高并发场景下非常好用的工具,可以用来做异步处理、应用解耦和流量削峰。本文将会简略介绍RabbitMQ的原理,之后会集中介绍springboot整合RabbitMQ及其使用,包括队列和路由键的设置,以及延时队列的实现原理和它的应用场景。
正文 一、RabbitMQ介绍RabbitMQ基于AMQP(高级消息队列协议) 异步处理、应用解耦、流量削峰。
1)引入场景启动器,自动配置类就会自动生效,自动配置了RabbitTemplate和AmqpAdmin。
2)配置连接
3)开启注解
1)amqpAdmin类
交换器 队列
绑定
2)RabbitTemplate收发消息
3)监听消息
也可以在类上标@RabbitListener注解指定监听哪些消息,类中的各个方法上标注@RabbitHandler,从而监听不同类型消息。
以下可以模拟多路发送消息/发送多种消息。
消息投递到服务器、消息投递到队列、消费者接收消息三个环节都可能丢失、出错,分别需要对应的机制保证可靠性。 1)确认回调ConfirmCallback
需要自定制RabbitTemplate,并设置ConfirmCallback确认回调机制,并重写confirm方法,传回完成情况和异常原因。
correlationData可指定唯一消息ID。 消费方收到消息自动回调confirm方法(只是表示消息到达Broker,不一定被处理),以上参数详细设置如下:
2)返回回调ReturnCallback 投递失败才回调
以上属于发送端确认
2. 接收端确认
默认自动ack,设置为手动确认模式。
收货策略: 拒收策略:
注意:以上需要打开如下所有设置:
(以上所有截图来自雷神视频)