【发布时间】:2016-02-13 07:39:14
【问题描述】:
我们所有的 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。
关于可能是什么原因的任何建议?有什么办法呢?
非常感谢您提前提供的帮助。
【问题讨论】:
标签: multithreading apache-kafka kafka-consumer-api fluentd