2

我是 Kafka 的新手,几天后从生产者那里创建了几个主题(自动),即分区 1、反射事实 -1 和 ISR -1。它工作得很好,用来很好地消费所有主题消息。

今天,即两天后,我运行了我的生产者和消费者程序,反之亦然,但我的消费者无法从主题中消费/读取消息。我检查了所有日志,没有任何线索发现出了什么问题。

出了什么问题?主题会在一段时间后变得陈旧吗?我需要检查 kafka-server 属性的任何属性值吗?

请帮我。

谢谢你。〜夏姆

4

1 回答 1

1

有几种方法可以使用提供的各种工具检查 kafka 集群的健康状况。

  1. 使用提供的 ConsumerOffsetChecker 类来验证生产者和消费者之间是否存在任何滞后。

    bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zkconnect <zk host/ip>:<zk port> --group <consumer group name>
    
  2. 使用如下的 JMX 指标来验证消息是否是在集群级别生成的,并且还有其他指标。

    kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
    kafka.network:type=RequestMetrics,name=RequestsPerSec,request={Produce|FetchConsumer|FetchFollower}
    
  3. 使用控制台使用者验证主题上是否存在消息

    bin/kafka-console-consumer.sh --zookeeper <zk host/ip>:<zk port> --topic test --from-beginning
    
  4. 验证 kafka 配置(server.properties 文件)中的 log.retention.XXX 值

文档链接中提供了其他 JMX 监控详细信息和配置

最后一点解释起来有点复杂,但我会尝试。查看confluent.io 上的博客链接,它讨论了生产者在将消息发送到代理之前缓冲消息的部分更多分区可能在客户端中需要更多内存。不确定您的问题是否相关。

于 2016-02-16T05:19:22.487 回答