1. 死信队列
2. 延迟队列
1. 死信队列
死信队列,英文缩写:DLX 。Dead Letter Exchange(死信交换机),
当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。
消息成为死信的三种情况:
1. 队列消息长度到达限制;
2. 消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队列,requeue=false;
3. 原队列存在消息过期设置,消息到达超时时间未被消费;
队列绑定死信交换机:
给队列设置参数: x-dead-letter-exchange 和 x-dead-letter-routing-key
创建交换机
package com.fzj.config;
import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitConfig {
private final String EXCHANGE="exchange";
private final String DEAD_EXCHANGE="dead_exchange";
private final String QUEUE="queue";
private final String DEAD_QUEUE="dead_queue";
@Bean
public Queue queue(){
return QueueBuilder
.durable(QUEUE)
.withArgument("x-message-ttl",