Kafka不会消耗所有生成的数据

时间:2017-05-28 12:12:03

标签: java apache-kafka kafka-consumer-api kafka-producer-api

我在具有8个内核和32GB RAM的VM上安装了一个kafka实例。

我从10台不同的机器写入(生产)并从一台机器上消费,所有机器都在同一个网络中。

我生成的数据大小约为35MBit / s。

出于某种原因,大多数时候我不能消耗超过~10MBit / s(在有限的时间内我设法消耗所有产生的数据),即使kafka和消费者服务器大多闲置(因此我认为这不是保留问题)。

kafka可以忽略一些产生的数据吗?

可能对分析有用的一些参数值:

num.network.threads=32
num.io.threads=16
message.max.bytes=2147483647
num.partitions=10
log.retention.ms=120000 (2 minutes)

1 个答案:

答案 0 :(得分:0)

您的保留时间太短。如果您的消费者比10个生产者中的任何一个落后2分钟,则消息将丢失。尝试24小时或至少尽可能多的磁盘空间来填充。默认保留期为7天。如果成功进入主题,那么将消息保留更长时间也可以帮助您进行调试。