创建队列

将交换机、队列和绑定装配到容器中,如果RabbitMQ中没有就会自动创建
image.png

创建队列设置参数
image.png

创建交换机

image.png

交换机和队列绑定

交换机和丢列绑定的时候指定路由,一个交换机可以绑定多个队列
image.png

发送消息

发送消息时指定交换机的名字
image.png

发送消息时默认使用的是流的方式,如果要使用JSON序列化的方式,需要配置
image.png

接收消息

监听队列消息,使用@RebbitListener+@RabbitHandler来接收消息
image.png
image.png

@RabbitHandler接收同一队列不同的消息
image.png

消息确认机制

保证消息不丢失,可靠抵达,可以使用事务消息,性能会下降250倍,为此引入确认机制。
image.png

生产端确认

生产端确认,可靠抵达-confirmCallback

只能保证消息发送到了服务器,不能保证消息被投递到了目标队列
image.png
开启confirmCallback需要添加配置,消息发送到服务器
image.png
相关配置
image.png
定制RabbitTemplate
image.png

消费端确认

默认情况下是自动确认的,当客户端拿到消息后就会立即确认,然后服务器就会把消息删除。这样就会出现一个问题,就是当客户端拿到消息还没有去完成相应的操作就突然挂了,这样就丢失了消息。

改为手动ACK需要添加配置,手动模式下,只要不确认,服务器的消息就不会被删除。
image.png

接收消息的时候手动确认签收
image.png

拒绝消息签收
image.png