MST

星途 面试题库

面试题:消息队列RocketMQ消息消费机制之中等难度题

在RocketMQ中,消息消费模式有哪几种?它们各自的应用场景是什么?请简要阐述消费模式切换时需要注意的要点。
23.3万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

消息消费模式

  1. 集群消费(Cluster)
    • 特点:相同消费组内的多个消费者共同消费主题中的消息,每个消息只会被组内一个消费者消费。
    • 应用场景:适用于高吞吐量的场景,例如订单处理系统,多个订单处理模块可以组成一个消费组,共同处理订单消息,提高处理效率。
  2. 广播消费(Broadcast)
    • 特点:消息会被发送到消费组内的每个消费者,每个消费者都会消费到所有消息。
    • 应用场景:适用于需要每个消费者都处理相同消息的场景,如系统配置更新消息,所有相关服务都需要同步更新配置。

消费模式切换要点

  1. 消息重复消费:从集群消费切换到广播消费时,由于广播消费每个消费者都会消费所有消息,可能会出现消息重复消费的情况,需要在业务逻辑中增加幂等性处理,确保相同消息多次消费结果一致。
  2. 负载均衡:集群消费依赖负载均衡策略来分配消息给不同消费者,切换到广播消费后,负载均衡不再起作用。反之,从广播消费切换到集群消费,需要重新关注负载均衡机制是否正确配置,确保消息能合理分配给各个消费者。
  3. 消费状态管理:广播消费不需要管理消费进度,因为每个消费者都消费所有消息;而集群消费需要记录消费进度。切换时要注意消费进度的处理,如从广播消费切换到集群消费,可能需要重新初始化消费进度,以避免重复消费或漏消费。