kafka查看消费数据

kafka查看消费数据

一、如何查看

在老版本中,使用kafka-run-class.sh 脚本进行查看。但是对于最新版本,kafka-run-class.sh 已经不能使用,必须使用另外一个脚本才行,它就是kafka-consumer-groups.sh

普通版

查看所有组

要想查询消费数据,必须要指定组。那么线上运行的kafka有哪些组呢?使用以下命令:

bin/kafka-consumer-groups.sh --bootstrap-server kafka-1.default.svc.cluster.local:9092 --list

注意:根据实际情况修改kafka的连接地址

 

执行输出:

...
usercenter
...

 

这些组在是程序代码里面定义的,比如usercenter就是一个业务模块。

 

查看消费情况

bin/kafka-consumer-groups.sh --describe --bootstrap-server kafka-1.default.svc.cluster.local:9092 --group usercenter

参数解释:

--describe  显示详细信息

--bootstrap-server 指定kafka连接地址

--group 指定组。

 

注意:--group指定的组必须存在才行!可以用上面的--list命令来查看

 

执行输出:

 

指定自己的分组 自己消费的topic会显示kafka总共有多少数据,以及已经被消费了多少条

标记解释:

TOPIC
PARTITION
CURRENT-OFFSET
LOG-END-OFFSET
LAG
CONSUMER-ID
HOST
CLIENT-ID
topic名字分区id当前已消费的条数总条数未消费的条数消费id主机ip客户端id

 

 

 

 

从上面的信息可以看出,topic为xx-pending-business-c0a9dc71 总共消费了4条信息, 未消费的条数为0。也就是说,消费数据没有积压的情况!

 

注意:以kafkaspout类作为消费者去读kafka数据,相当于直接从kafka server上取文件,没有消费者组的概念

每次读的数据存在自己zk的offet中,所以不能通过上述命令查看

 

ACL版查看

如果kafka启用了acl权限验证,则不能直接使用上面的命令查看,需要增加参数--command-config参数才行

此参数必须要指定一个配置文件才行

修改默认的配置文件

cd /kafka_2.12-2.1.0/
vim config/config/consumer.properties

 

最后一行增加2行,表示指定SASL协议连接

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

 

查看所有组

bin/kafka-consumer-groups.sh --command-config config/consumer.properties  --bootstrap-server kafka-1.default.svc.cluster.local:9092 --list

 

注意:--command-config 后面的配置文件,我用的是相对路径。请以实际情况为准!

 

查看消费情况

bin/kafka-consumer-groups.sh --command-config config/consumer.properties  --describe --bootstrap-server kafka-1.default.svc.cluster.local:9092 --group usercenter

 

如果需要使用shell脚本,来检测kafka的消费数据,有没有积压。

可以先使用--list命令,然后对结果使用for循环遍历,将组名赋予到--group参数上即可!

 

 

本文参考链接:

https://blog.youkuaiyun.com/sweetgirl520/article/details/80323584

posted @ 2018-12-30 17:11 肖祥 阅读( ...) 评论( ...) 编辑 收藏
Kafka 是一个分布式流处理平台,它允许发布和订阅消息流。消费数据Kafka 的核心功能之一。以下是 Kafka 消费数据的基本步骤和概念: 1. **消费者组(Consumer Group)**: - 消费者组是 Kafka 中用于实现负载均衡和容错的一种机制。一个消费者组可以包含多个消费者实例,这些实例共同消费一个或多个主题(Topic)的数据。 - 每个分区(Partition)只能被同一个消费者组中的一个消费消费。 2. **消费者实例(Consumer Instance)**: - 消费者实例是一个独立的进程或线程,用于从 Kafka 中拉取数据。 3. **偏移量(Offset)**: - 偏移量是每个分区中消息的编号,用于记录消费消费到的位置。每次消费者拉取数据时,Kafka 会返回消息的偏移量,消费者可以提交这些偏移量以便在重新启动后继续消费。 4. **提交偏移量(Committing Offsets)**: - 消费者需要定期提交偏移量,以确保在故障恢复时能够从正确的位置继续消费。提交偏移量可以通过自动提交或手动提交的方式进行。 5. **拉取模型(Pull Model)**: - Kafka 使用拉取模型,消费者主动从 Kafka 服务器拉取数据,而不是服务器主动推送数据消费者。这种模型使得消费者能够控制数据消费的速率。 以下是一个简单的 Kafka 消费者示例代码(使用 Java): ```java import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.clients.consumer.KafkaConsumer; import java.time.Duration; import java.util.Collections; import java.util.Properties; public class KafkaConsumerExample { public static void main(String[] args) { Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("group.id", "test-group"); props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.put("auto.offset.reset", "earliest"); KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props); consumer.subscribe(Collections.singletonList("test-topic")); try { while (true) { ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(1000)); for (ConsumerRecord<String, String> record : records) { System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value()); } consumer.commitSync(); } } finally { consumer.close(); } } } ``` 这个示例代码展示了如何创建一个 Kafka 消费者,并从指定的主题中消费数据消费者会定期提交偏移量,并在循环中持续拉取数据
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值