问题描述:
使用kafkaoffsetmonitor监控线上的kafka的集群信息。监控平台搭建之后,发现offset和logsize的值几乎都是平行的,没有任何的数据变化,并且在kafkaoffsetmonitor的监控web界面上发现last seen的值是9天前,说明在offset和logsize的值最后一次更改是9天之前。截图:
截图参数具体解释:
Topic:Topic的名字
Partition:Topic包含的分区,上图中Topic有0-8一共9个分区
Offset:Kafka Consumer已经消费分区上的消息数
logSize:已经写到该分区的消息数
Lag:还有多少消息未读取(Lag = logSize - Offset)
Owner:该分区创建在那个Broker server上面
Created:分区创建的时间
Last Seen:Offset和logSize数字最后一次更新的时间
在上图可以明显的看得到在Offset和logSize最后一次更新时间是在8天之前,在kafka集群当中,这个Topic的consumer是通过python kafka这个包来进行消费的。
在开发的协助下,可以从日志中明显得获取得到consumer是有消费Topic的消息的,但是offset和logsize的值就是没有更改,所有只能从消费者脚本来获取信息,查看kafka.KafkaConsumer获取得到了一个参数信息:
group_id (str or None): The name of the consumer group to join for dynamic
partition assignment (if enabled), and to use for fetching and
committing offsets. If None, auto-partition assignment (via
group coordinator) and offset commits are disabled.
Default: None
从上面可以获取得到,当没有指定group_id这个值的时候,consumer是可以消费topic信息的,但是不会自动的提交offset的位移信息。
所有将代码中的:
kafka_consumer = KafkaConsumer(topic_id="read_list",bootstrap_servers="127.0.0.1:2181")
更改成:
kafka_consumer = KafkaConsumer(topic_id="read_list",group_id="multi_read_list",bootstrap_servers="127.0.0.1:2181")
代码更改之后,监控就恢复了正常.