【RabbitMQ】如何保证消息的顺序性+解决消息积压+设计消息队列中间件

一、如何保证消息的顺序性

       啥?我该怎么保证从消息队列里拿到的数据按顺序执行。

       这是MQ面试必问的问题之一。第一看看你了解不了解顺序这个事,第二看看你有没有办法保证消息是有序的。这是生成环境中常见的问题。

       mysql的binlog同步。你再mysql里增删改3条binlog。接着这三条binlog发送到MQ里面。到消费出来依次执行。起码要保证人家是按照顺序来的吧。不然本来是增加、修改、删除。你愣是给更改了顺序,换成了删除、修改、增加。这就乱了。

       1、RabbitMQ可能出现数据错乱问题

                                    【RabbitMQ】如何保证消息的顺序性+解决消息积压+设计消息队列中间件_第1张图片

        1个生产者,多个消费者。生成的顺序是数据1、数据2、数据3.消费的数据是数据2、数据1、数据3。没有按之前的顺序。

 

        2、如何保证消息的顺序性

                                  【RabbitMQ】如何保证消息的顺序性+解决消息积压+设计消息队列中间件_第2张图片

       搞3个Queue,每个消费者就消费其中的一个Queue。把需要保证顺序的数据发到1个Queue里去。

二、如何解决消息积压

       如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百分消息持续积压几个小时,说说怎么解决。

       这些问法

你可能感兴趣的:(【RabbitMQ】如何保证消息的顺序性+解决消息积压+设计消息队列中间件)