《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
2.1 消费模式
那这三个消费者如何来分工来共同消费 order_topic 中的消息呢?
在RocketMQ中支持广播模式与集群模式。
广播模式:一个消费组内的所有消费者每一个都会处理topic中的每一条消息,通常用于刷新内存缓存。
集群模式:一个消费组内的所有消费者共同消费一个topic中的消息,即分工协作,一个消费者消费一部分数据,启动负载均衡,
集群模式是非常普遍的模式,符合分布式架构的基本理念,即横向扩容,当前消费者如果无法快速及时处理消息时,可以通过增加消费者的个数横向扩容,快速提高消费能力,及时处理挤压的消息。
2.2 消费队列负载算法与重平衡机制
那集群模式下,消费者是如何来分配消息的呢?
例如上面实例中order_topic有16个队列,那一个拥有3个消费者的消费组如何来分配队列中。
在MQ领域有一个不成文的约定:同一个消费者同一时间可以分配多个队列,但一个队列同一时间只会分配给一个消费者。
RocketMQ提供了众多的队列负载算法