使用高级别消费者阅读Kafka日志时

时间:2016-02-13 07:39:14

标签: multithreading apache-kafka kafka-consumer-api fluentd

我们的所有30个主题都是在我们的kafka中创建了10个分区。我们正在监控所有主题/组ID的分区滞后。

我们正在使用Fluentd插件从kafka读取和路由日志。该插件使用高级消费者实现。我们为单个主题配置了一些使用者,为插件配置了多个主题。总体而言,除了3个主题外,数据正在顺利通过。

问题是,对于正在处理的30个主题中的3个,我们看到分区滞后值不一致,即。查看特定主题/组ID的滞后值,某些分区的延迟远高于其他分区,有时甚至高达30k。但是,对于其他27个主题,所有分区的滞后数量保持一致,一个主题/组ID的所有分区都保持在彼此的近距离范围内(例如,所有分区在12和18之间)。

几乎每次我们重新启动Fluentd代理(重新启动高级别消费者)时,我们都会看到这3个主题的延迟开始平稳,有时它们会保持一致,然后再次延迟数字开始变得曲折。这只发生在3个主题上。但是当我们检查这3个主题的分布时,一切看起来都很正常。

我们不知道这是什么原因。高级别消费者不编码来管理从分区中检索数据。它是处理那部分的kafka lib。消费者代码指定的所有内容都是线程数。我们尝试了10,5,并且在所有情况下(尤其是10和5个线程),滞后不一致性一直出现在这3个主题中。每个主题的数据量均低于每小时30k。

关于可能是什么原因的任何建议?可以做些什么呢?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

根据提供的详细信息,我会开始查看以下几点,我想你会看到它们。

  1. 比较为3个主题制作的消息与其他主题的趋势。同时检查发布到这些主题的消息大小与其他主题。
  2. 只需将有问题的3个主题移动到另一个流畅的实例,以验证延迟行为。
  3. 如果您发现更多信息或通过一些微调来解决问题,请让我知道