gpt4 book ai didi

python - 尽管有 30 多个 kafka-monitor 副本,但 Kafka 主题还是卡住了

转载 作者:行者123 更新时间:2023-12-01 07:37:31 24 4
gpt4 key购买 nike

Kafka 中的

demo.incoming 主题不断堆积。

我正在使用scrapy cluster 。每秒大约 70 个请求通过 Scrapy Cluster REST api(Producer)提交到 Kafka。蜘蛛可以很快完成爬行,因为 Redis 中的队列数量非常少,大多数时候不到 10 个。但 demo.incoming 中的消息数量每秒都在不断增加。这是我用来检查 Kafka 中的 demo.incoming 主题中的消息数量的命令

kafka-run-class.sh kafka.tools.GetOffsetShell \
--broker-list localhost:9092,kafka-statefulset-2:9092,kafka-statefulset-1:9092 \
--topic demo.incoming \
--time -1 --offsets 1 | awk -F ":" '{sum += $3} END {print sum}'

我认为这是因为 Kafka-monitor(Consumer) 无法足够快地从 Kafka 获取消息并推送到 Redis,导致 demo.incoming 主题堆积。尽管将 Kafka-monitor 扩展到 30 个副本,但主题仍然不断堆积。

截图中显示该主题的分区数为 8。

enter image description here

理论上来说,Kafka 中的消息数量应该保持在一个非常低的数量。因为消费者(在本例中为 Kafka 监视器)应该在消息到达后立即使用它,因为它有超过 30 个副本。

最佳答案

该命令列出了所有分区的结束偏移量,而不是主题内的“消息数”(没有精确的命令来计算开始和结束偏移量)。你赚到的钱总是会增加。该值增加的速率只能告诉您生产者的行动速度有多快,而不是消费率。

如果您想查看消费者组尚未处理的消息数量,您可以使用 kafka-consumer-groups 工具

由于该主题实际上有 8 个分区,因此该主题同一组中最多只能有 8 个消费者,尽管我不确定您的 Kafka 监控工具是如何工作的

关于python - 尽管有 30 多个 kafka-monitor 副本,但 Kafka 主题还是卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com