首页 > 图灵资讯 > java面试题>正文

RocketMQ 的广播消息和集群消息有什么区别?

2024-03-18 13:54:15

 

广播消息和集群消息是 RocketMQ 的两种不同的消息消费模式。其中

  • 广播模式意味着一条消息会被发送到所有订阅了这个主题 Topic 的消费者,而所有消费者都会收到相同的消息副本。
  • 集群模式意味着一条消息只会分发给订阅了这个主题 Topic 的同一个消费者组中的一个消费者处理。每个消费者组只会处理一次消息。

他们的区别主要提现在实现方式以及适用场景上。

  • 集群模式在 Broker 端统一管理每个消费者组的消费进度,对消费进度的管理是严格的。这样,每次消费者服务启动后,都可以从上一次消费的进度开始开始进行消费。 而广播模式是交由每个消费者自行管理消费进度,消费进度的管理是不严格的,容易产生丢失。当消费者服务启动后,如果本地的消费进度丢失了,就只能消费到启动之后的消息,而无法从上一次消费的进度开始消费。因此,广播模式对于消息的连续性保证是不强的。
  • 集群模式适用于大多数常规对消息安全敏感的业务场景,例如订单处理、库存管理等。多个消费者协同工作可以提高消息的处理能力并实现消息的负载均衡。而广播模式适用于一些对消息安全不太敏感的特殊业务场景。例如日记记录、时间通知等。这些场景下所有的消费者都需要处理相同的消息。

 
上一篇 RocketMQ 如何保证消息顺序?
下一篇 RocketMQ 提供了哪些消息过滤的机制?

文章素材均来源于网络,如有侵权,请联系管理员删除。