这是我参与更文挑战的第1天,活动详情查看: 更文挑战
定义全局变量
IP="x.x.x.x:2181"
Ktool=/kafka/bin/kafka-topics.sh
创建topic
if [ $topic != "" ];then
if [ $partitions -lt 50 ];then
${Ktool} --create --zookeeper ${IP} --replication-factor $factor --partitions $partitions --topic $topic
echo $topic $partitions $factor
echo "创建成功"
fi
fi
查看kafka基本信息
echo ""
echo ""
echo "-----显示所有topic-----"
echo ""
${Ktool} --list --zookeeper ${IP}
echo ""
echo "-----显示所有topic属性-----"
echo ""
echo "属性名称简介: "
echo "retention.ms==日志数据保留时长432000000毫秒为5天"
echo "PartitionCount==分片总数"
echo "ReplicationFactor==数据复制份数,一般3台为2份,以此类推"
echo "Replicas和Isr==目前数据所在节点和参加选举的节点"
echo ""
topics=$(${Ktool} --list --zookeeper ${IP})
for i in ${topics[@]}
do
if [ "$i" != "__consumer_offsets" ];then
echo "topic: $i"
${Ktool} --describe --zookeeper --topic $i
fi
echo ""
done
echo "----显示完成-----"
echo ""
查看Offset最大最小值
Kclass=/kafka/bin/kafka-run-class.sh
echo "topic: $topic最小值是: "
${Kclass} kafka.tools.GetOffsetShell --broker-list ${IP} --topic $topic --time -2
echo "topic: $topic最大值是: "
${Kclass} kafka.tools.GetOffsetShell --broker-list ${IP} --topic $topic --time -1
查看最新消息,最大支持1000条
if [ $message -lt 1000 ];then
echo ""
echo "你选择的topic:$topic,消息条数为:$message"
echo ""
/kafka/bin/kafka-console-consumer.sh --topic $topic --bootstrap-server ${IP} --max-messages $message
echo ""
echo ""
echo "-----显示完成-----"
fi
查看消息,从Offset最小值开始查看 最大1000条
if [ $message -lt 1001 ];then
echo ""
echo "你选择的topic:topic,消息条数为:$message"
echo ""
/kafka/bin/kafka-console-consumer.sh --topic $topic --bootstrap-server ${IP} --from-beginning --max-messages $message
echo ""
echo "-----显示完成-----"
fi
查看消息,指定Offset位置开始查看 最大1000条
if [ $offset != "" ];then
if [ $message -lt 1000 ];then
echo ""
echo "你选择的topic:$topic,offset: $offset,partition: $partition, 消息条数为:$message"
/kafka/bin/kafka-console-consumer.sh --topic $topic --bootstrap-server ${IP} --offset $offset --partition $partition --max-messages $message
echo ""
echo ""
fi
fi
查看所有消费组
echo ""
/kafka/bin/kafka-consumer-groups.sh --bootstrap-server ${IP} --list | grep -v console-consumer
echo "消费组列表如下,已为您自动过滤了控制台显示的(console-consumer)相关消费组"
echo ""
查看消费组详情
echo "属性简介:"
echo "- TOPIC: 该消费者组消费的是哪些topic"
echo "- PARTITION: 表示该消费者消费的是哪些分区, 如果有些topic只有一个分区,那么分区号为0"
echo "- CURRENT-OFFSET: 表示消费者组最新消费的位移值, 此值在消费过程中是变化的"
echo "- LOG-END-OFFSET: 表示topic所有分区当前的日志终端位移值, 因为我们生产了多少数据,这里就显示多少数值"
echo "- LAG: 表示滞后进度, 此值为LOG-END-OFFSET 与 CURRENT-OFFSET的差值, 代表的是滞后情况, 此值越大表示滞后严重, 本例最终LAG为0 说明没有消费滞后."
echo ""
/kafka/bin/kafka-consumer-groups.sh --bootstrap-server ${IP} --describe --group $group
echo ""