有的时候需要查看Kafka中某个topic的消息数量,当kafka是利用strimzi.io部署的时候,方式有点小变化

首先进入对应的pod

1
2
# 进入pod
kubectl exec -it -n namespace kafka-kafka-0 kafka -- bash

[Optional]配置认证信息

1
2
3
4
5
6
# 如SCRAM-SHA-512认证,新建consumer.properties文件并写入以下内容
cat << EOF > consumer.properties
security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-512
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="username" password="password";
EOF

查看topic最大偏移

1
2
3
4
5
# 查看topic的所有分区的最大偏移
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --command-config consumer.properties --topic <topic-name> --time -1

# 查看topic的所有分区的最小偏移
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --command-config consumer.properties --topic <topic-name> --time -1

最大偏移减去最小偏移即可得到该topic的消息总数