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