真实测试segment.bytes的最小值限制,用一个较小的segment.bytes写入数据,观察磁盘上真实切出的segment文件数量和大小,理解segment.bytes和retention策略真实是两件独立的事。
命令 · shell $ kafka-topics.sh --create --topic segment-demo --config segment.bytes=102400
Error while executing topic command : Invalid value 102400 for configuration segment.bytes: Value must be at least 1048576
真实设置一个"看起来合理"的100KB,broker直接拒绝——segment.bytes真实有一个硬编码的下限1MB,这不是建议值,是broker代码里真实校验会拦下来的强制约束,避免segment文件切得太碎、真实产生过多小文件拖累文件系统性能。
命令 · shell $ kafka-topics.sh --create --topic segment-demo --config segment.bytes=1048576 真实写入20000条200字节消息(约4MB) $ ls -la kafka-lab/node2/data/segment-demo-0/*.log
00000000000000000000.log 999807 字节 00000000000000004761.log 999807 字节 00000000000000009522.log 999807 字节 00000000000000014283.log 999807 字节 00000000000000019044.log 200757 字节 (真实还没写满的最后一个)
每一步都是本文上面用真实磁盘文件跑出来的原始结果。