【问题标题】:Kafka topics not working after few days of creation创建几天后Kafka主题不起作用
【发布时间】:2016-02-16 13:19:22
【问题描述】:
我是 Kafka 的新手,几天后从生产者那里创建了几个主题(自动),即分区 1、反射事实 -1 和 ISR -1。
它工作得很好,用来很好地消费所有主题消息。
今天,即两天后,我运行了我的生产者和消费者程序,反之亦然,但我的消费者无法从主题中消费/读取消息。
我检查了所有日志,没有发现问题所在。
出了什么问题?
主题会在一段时间后变得陈旧吗?
我需要在 kafka-server 属性中检查任何属性值吗?
请帮帮我。
谢谢。
~夏姆
【问题讨论】:
标签:
apache-kafka
kafka-consumer-api
kafka-producer-api
【解决方案1】:
您可以通过多种方式使用提供的各种工具检查 kafka 集群的健康状况。
-
使用提供的 ConsumerOffsetChecker 类来验证生产者和消费者之间是否存在任何延迟。
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zkconnect <zk host/ip>:<zk port> --group <consumer group name>
-
使用如下的 JMX 指标来验证消息是否是在集群级别生成的以及是否有其他指标。
kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
kafka.network:type=RequestMetrics,name=RequestsPerSec,request={Produce|FetchConsumer|FetchFollower}
-
使用控制台消费者来验证主题上是否存在消息
bin/kafka-console-consumer.sh --zookeeper <zk host/ip>:<zk port> --topic test --from-beginning
验证 kafka 配置(server.properties 文件)中的 log.retention.XXX 值
documentation link 中提供了其他 JMX 监控详细信息和配置
最后一点解释起来有点复杂,但我会尝试。查看blog link on confluent.io,它在更多分区可能需要更多内存在客户端部分中讨论了生产者在将消息发送到代理之前缓冲消息。不确定您的问题是否相关。