RabbitMq

RabbitMq

消息延迟消费

message.getMessageProperties().setDelay(5000)

死信就是消息在特定场景下的一种表现形式,这些场景包括:

消息被拒绝(basic.reject / basic.nack),并且requeue = false
消息的 TTL 过期时
消息队列达到最大长度
达到最大重试限制
消息在这些场景中时,被称为死信。

死信队列就是用于储存死信的消息队列,在死信队列中,有且只有死信构成,不会存在其余类型的消息。死信队列也是一个普通队列,也可以被消费者消费,区别在于业务队列需要绑定在死信队列上,才能正常地把死信发送到死信队列上。

//1. 手动创建,需在RabbitMQ中手动创建myQueue1 队列,否则报错
@RabbitListener(queues = “myQueue1”)
public void process1(String message){
log.info(“MqReceiver1: {}”, message);
}

//2. 自动创建队列
@RabbitListener(queuesToDeclare = @Queue(“myQueue2”))
public void process2(String message){
log.info(“MqReceiver2: {}”, message);

}

//3. 自动创建队列,Exchange 与 Queue绑定
@RabbitListener(bindings = @QueueBinding(
value = @Queue(“myQueue3”),
exchange = @Exchange(“testExChange”)
))
public void process3(String message){
log.info(“MqReceiver3: {}”, message);
}

用了配置类创建了 通过注解创建会
Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'alternate-exchange' for exchange 'FruitDirectExchange' in vhost '/': received the value 'AlternateExchange' of type 'longstr' but current is none, class-id=40, method-id=10)

posted @ 2023-09-06 23:05  Arborblog  阅读(6)  评论(0编辑  收藏  举报