不同版本的storm对kafka的消费组管理方案不同。
1.storm-kafka-client 1.0.2
这个版本中,storm需要自己管理offset信息,offset提交过程如下所示:
org.apache.storm.kafka.KafkaSpout#nextTuple // 表示消费一次,拉取消息
或org.apache.storm.kafka.KafkaSpout#deactivate // spout转为非活跃状态
org.apache.storm.kafka.KafkaSpout#commit
org.apache.storm.kafka.PartitionManager#commit
org.apache.storm.kafka.ZkState#writeJSON
org.apache.storm.kafka.ZkState#writeBytes
最终将offset信息写入到zookeeper中。