RabbitMQ原理(截图大佬总结知识点)

无论是什么模式,都会有一个默认ex。发送消息一定是ex去发送,而不是Que去发送。也就是ex会接收消息,然后push到Que,所有的消费者会自动监听和订阅我们的Que,正是因为有这些推送的机制,我们接下来会有一系列的模式来进行订阅。我们可以选择哪些消费者来消费或者哪些不消费,来灵活的运用。如果队列没有声明ex,那么它一定会选择一个默认的ex。当我们在线上消费或者浏览的时候,千万不要选择ACK去处理,一旦使用ACK,它会当成真实的消费,从而把消息移除。如果我们的程序正在高速的运转,你点了ACK进行浏览,那么会把消息给移除掉,从而造成我们数据的丢失。

 

 

TTL是队列设置队列过期时间的标志。而设置消息过期,不会出现TTL标志。如果同一个队列既设置了队列过期又设置了消息过期,那么以最小的过期时间为准。如果定义了死信队列,那么只有队列过期(TTL)的消息会被转移到死信队列中,过期时间则不会被转移到死信队列中。

 

MQ分布式事务,生产者生产一条订单消息投递到Q(消息队列)中,并消息冗余一条,如果成功投递,则修改状态status为1,如果投递失败则修改status为0,使用定时机制把消息状态为0的消息重新从消息冗余的表中查询出来,投递到Q中。然后,消费者从Q中,取出来确认。

 

posted @ 2025-07-08 11:14  C豪  阅读(7)  评论(0)    收藏  举报