我们的30个主题都是用Kafka中的10个分区创建的。我们正在监视所有主题/组id的分区延迟。
我们使用fluentd插件从kafka读取和路由日志。该插件是使用高级使用者实现的。我们为插件的个别主题和多个主题配置了一些消费者。总的来说,除了其中3个主题外,数据流动没有任何问题。
问题是,对于正在处理的30个主题中的3个,我们看到分区滞后值不一致,即,查看特定主题/组id的滞后值,某些分区的滞后值远远高于其他分区,有时甚至高达30k。但是,对于其他27个主题,所有分区的滞后数保持一致,一个主题/组id的所有分区彼此保持在很近的范围内(例如,所有分区都在12到18之间)。
几乎每次我们重新启动fluentd代理(它会重新启动高级消费者)时,我们都会看到这3个主题的延迟开始趋于平稳,有时它们会保持一致一段时间,然后延迟数字又开始变得曲折。这只适用于3个主题。但当我们检查这三个主题的分布时,一切看起来都正常。
我们对此不知所措。高级使用者不会编写代码来管理从分区检索数据。是Kafka自由党处理这一部分。使用者代码只指定线程数。我们尝试了10、5,在所有情况下(特别是10和5线程),这3个主题的滞后不一致性不断出现。每一个主题的数据量都不到每小时30k。
关于原因有什么建议吗?我们能做些什么?
非常感谢你的帮助。
1条答案
按热度按时间o2rvlv0m1#
根据提供的细节,我将从以下几点开始,我想你应该已经看过了。
比较3个主题与其余主题的消息生成趋势。还要检查发布到这些主题和其他主题的消息大小。
只需将有问题的3个主题移到另一个fluentd示例来验证延迟行为。
请务必让我知道,如果你发现更多或解决一些微调问题