美文网首页
RabbitMQ面试题:如何解决消息的顺序问题? --- 202

RabbitMQ面试题:如何解决消息的顺序问题? --- 202

作者: 一位先生_ | 来源:发表于2022-05-24 01:53 被阅读0次

    RabbitMQ的消息顺序问题,需要分三个环节看待,发送消息的顺序、队列中消息的顺序、消费消息的顺序。

    发送消息的顺序

    消息发送端的顺序,大部分业务不做要求,谁先发消息无所谓,如果遇到业务一定要发送消息也确保顺序,那意味着,只能全局加锁一个个的操作,一个个的发消息,不能并发发送消息。

    队列中消息的顺序

    RabbitMQ中,消息最终会保存在队列中,在同一个队列中,消息是顺序的,先进先出原则,这个由Rabbitmq保证,不同队列中的消息顺序,是没有保证的,例如:进地铁站的时候,排了三个队伍,不同队伍之间的,不能确保谁先进站。

    消费消息的顺序

    在多个消费者消费同一个消息队列的场景,通常是无法保证消息顺序的。

    例如:消息A、B、C按顺序进入队列,消费者A1拿到消息A、消费者B1拿到消息B, 结果消费者B执行速度快,就跑完了,又或者消费者A1挂了,都会导致消息顺序不一致。

    解决消费顺序的问题,通常就是一个队列只有一个消费者

    这样就可以一个个消息按顺序处理,缺点就是并发能力下降了,无法并发消费消息,这是个取舍问题。

    相关文章

      网友评论

          本文标题:RabbitMQ面试题:如何解决消息的顺序问题? --- 202

          本文链接:https://www.haomeiwen.com/subject/gswfsrtx.html