赞
踩
目录
Kafka系列:
kafka管理监控系统 CMAK(yahoo的kafka-manager)部署及使用
Kafka系列(三)、生产者分区策略、ISR、ACK机制、一致性语义
前面提到消费者组订阅的topic的每个分区只能被同一消费者组内的一个消费者所消费,同一个消费者组内的消费者是如何选择它应该消费的topic的分区有下面两种策略:
因此当消费者组内都订阅了相同的主题时建议使用RandomRobin轮循策略,这样能够达到让消费者负载均衡的状态。当消费者组内订阅的主题不一样的时候就必须要用Range范围策略。
消费者组内的消费者成员消费的主题分区会在下面这些场景下发生重新分配,这种机制叫做Rebalance机制 :
由于消费者在消费消息的时候可能会由于各种原因而断开消费,当重新启动消费者时我们需要让它接着上次消费的位置offset继续消费,因此消费者需要实时的记录自己以及消费的位置。在0.90版本之前,这个信息是记录在zookeeper内的,在0.90之后的版本,offset保存在__consumer_offsets 这个topic内。
由于上面介绍的rebalance分区重新分配的情况出现,因此offset是按照消费者组单位来存储的,在zk内也是按照消费者组来记录offset的。根据ConsumerGroup、Topic、Partition 我们可以确定一个唯一的offset,当消费者组内触发rebalance机制时,消费者组内的其他消费者也可以根据记录的<ConsumerGroup - Topic - Partition>来定位前一个消费者消费到的offset进而接着上次的Offset继续消费,来保证消费端的一致性。
希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。