MST

星途 面试题库

面试题:消息队列RocketMQ中消费者的两种消费模式有何区别?

请阐述RocketMQ消费者的集群消费(Clustering)模式和广播消费(Broadcasting)模式在消息分发、应用场景等方面的区别。
42.1万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

消息分发区别

  • 集群消费(Clustering)
    • 一条消息只会被同一个消费组内的一个消费者实例消费。例如,消费组内有3个消费者实例A、B、C,一条消息到达后,只会被A、B、C其中之一接收并处理。
    • RocketMQ通过负载均衡算法,将消息平均分配给消费组内的各个消费者实例。
  • 广播消费(Broadcasting)
    • 一条消息会被同一个消费组内的所有消费者实例消费。即消费组内若有多个消费者实例,每个实例都会收到并处理这条消息。
    • 不管有多少个消费者实例,每个实例都能完整地收到所有消息,不存在消息分配问题。

应用场景区别

  • 集群消费(Clustering)
    • 高并发处理场景:适用于需要处理大量消息且追求处理效率的场景,如订单处理系统。多个消费者实例并行处理不同的消息,提高整体处理速度。
    • 数据一致性要求高场景:比如在银行转账操作中,同一笔转账消息不能被重复处理,确保数据准确性。
  • 广播消费(Broadcasting)
    • 系统通知场景:例如推送系统公告、全局配置更新等,需要所有相关的消费者都能收到通知信息。
    • 数据备份与同步场景:多个数据节点都需要同步相同的数据,每个消费者都处理消息以完成数据备份或同步。