RocketMQ是阿里巴巴公司的一个消息队列框架(很多思想借鉴Kafka),对于RocketMQ本身不做过多说明,下面主要说明RocketMQ的两种消费模型。

    消费模型有两种:广播消费消息模型,集群消费消息模型。

    广播消费消息模型,指消费这消费某主题的所有队列的消息,消费组在该消息模型下不起作用,类似JMS的publish/subscribe.

    集群消费消息模型,是指同一个消费组的消费者各自消费某一主题的消费队列的消息,比如有一个主题 topicA,该主题有4个队列(创建主题的时候可以指定该主题的队列的数量),有一个消费组testConsumerGroup,该消费组有四个消费者(四个机器或者四个进程),则四个消费者各自消费一个消息队列。

    情景回顾:在做RocketMQ的监控时,测试消息的消费情况,发现不同消费组,都会消费掉同一条消息,这和我对当时集群消费模型的理解(即:集群模式,消息队列中的消息只能被消费一次)不符。在查阅资料及代码验证后得出结论:

    1. 在Rocket集群消费模式下,(订阅)同一个主题(Topic)下的消息,对于不同的消费组是一种“广播形式”,即每个消费组的都会消费消息。

    2. 在Rocket集群消费模式下,(订阅)同一个主题(Topic)下的消息,对于相同的消费组的消费者而言是一种集群模式,即消费者平分消息并消费。

备注:创建时间:2017-01-20 16:33:46   个人博客转移文档 

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐