RabbitMq高级特性
- 消息的可靠性投递(confirm确认模式,return退回模式)生产者配置
confirm消息确认机制:
消息的确认,是指生产者投递消息后,如果Broker收到消息,则会给我们生产这一个应答。
生产者进行接收应答,用来确定这条消息是否正常的发送到Broker,这种方式也是消息的可靠性投递的核心保障。
实现案例:
配置文件开启确认机制
生产者(消息发送到交换机时确认是否收到):
消息回退机制(消息由交换机发送到队列时确认):
1.开启回退机制(配置文件中开启如上确认机制)
消费者Ack手动确认机制:
Ack确认机制:
1.自动确认机制(默认acknowledge=“none”)
2.手动确认机制(acknowledge = "manual")
3.根据异常情况确认(acknowledge = "auto")
手动确认机制配置:
消息限流:
前提:Ack确认机制为手动确认,消费者配置perfetc属性,设置每次最多可接受多少消息进行处理,在消息未确认时无法接受新的消息
延迟队列:
死信队列+普通队列实现
普通队列不设置消息的消费者并且设置TTL消息过期时间,死信交换机通过路由key绑定到普通交换机上,死信交换机绑定消费者,当普通队列上的消息过期时,数据就会进入死信队列,完成消息的延迟消费