卡夫卡中的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(消费者)不能足够快地从Kafka获取消息并推送到redis,导致demo.incoming话题堆积。尽管Kafka-monitor已经扩展到30个副本,但主题仍然堆积如山。
截图中显示了该主题的分区数为8。

理论上,Kafka的消息数量应该保持在非常低的数量。因为消费者,在这种情况下是Kafka-monitor,应该在消息到达时立即消费它,因为它有超过30个副本。
发布于 2019-07-07 07:53:47
该命令列出了所有分区的结束偏移量,而不是主题中的“消息数量”(没有计算开始和结束偏移量的精确命令)。你赚的总和总是会增加的。价值增加的速度只会告诉你生产者的行动有多快,而不是消费速度。
如果您想要查看某个使用者组尚未处理的消息数量,可以使用kafka-consumer-groups工具
由于该主题实际上有8个分区,因此对于该主题,同一组中一次最多只能有8个消费者,尽管我不确定您的Kafka监控工具是如何工作的
https://stackoverflow.com/questions/56916284
复制相似问题