RabbitMQ高级特性

1、Confirm机制

消息的确认,是指生产者投递消息后,如果Broker收到消息,会给我们生产者一个应答。
生产者进行接受应答,用来确定这条消息是否正常的发送到Broker,这种方式也是消息可靠性投递的核心保障。

2、Return机制

Return Listener用于处理一些不可路由的消息。
生产者发送消息的时候,当exchanger不存在或者指定的路由key路由不到,生产者可以使用Return Listener监听这种不可达的消息。

3、消费者ACK与重回队列

消费端关闭自动签收时,需要手动签收一条消息,如果消费者a收到了消息a但是没有ack,也没有unack,消费者a不会再次接收到消息a,消息a在队列中的状态是unacked,当消费者a断开与mq的连接后,消费者b可以继续接受并像消费者a一样处理消息a。
当消费端关闭自动签收,并且打开requeue,消费端unack一条消息后,该消息会经入重回队列,用于再次投递,一般建议关闭requeue。

4、死信队列DLX

当消息在一个队列中变成死信之后,它能被重新publish到另一个Exchange,这个Exchange就是DLX。
消息变成死信有如下几种情况:

1、消息被拒绝(reject/nack)并且requeue=false
2、消息TTL过期
3、队列达到最大长度

5、可靠性传输

一般情况下,可以按照以下流程保证100%投递成功


RabbitMQ高级特性_第1张图片
可靠性传输

若还要提高可靠性,可以一次发送两条消息,第二条延迟发送,做回调检查,中间再增加一个消息回调服务。

你可能感兴趣的:(RabbitMQ高级特性)