我们有一个用例,我们很少要生成最大大小为2 MB的数据到kafka(即,根据用户操作,消息大小会有所不同)。
产生2 Mb大小是否会产生任何影响,还是我们需要将消息拆分为小块(例如100 KB)并产生。
如果我们生产成小块,这将增加用户的响应时间。另外,我们已经通过向kafka产生2 MB的消息进行了检查,并且那里没有太多的延迟。
无论如何,如果我们拆分数据并产生数据,它对磁盘大小没有任何影响。但是经纪人的表现是否会因此而下降?
我们的经纪人配置为:
RAM 125.6 GB 磁盘大小2.9 TB 处理器40
答案 0 :(得分:1)
邮件大小最大为2MB时,我没有发现任何问题。您只需要配置相应的参数;
在经纪人端设置message.max.bytes
和replica.fetch.max.bytes
(请注意,message.max.bytes
<replica.fetch.max.bytes
)。
和max.partition.fetch.bytes
在消费者方面
至少2MB
答案 1 :(得分:0)
我建议考虑使用更高效,甚至二进制的数据格式(ref Avro,Protobuf,MsgPack等)来生成数据,然后在尝试进行调整之前在生产者代码中额外添加压缩(Zstd,GZIP,Snappy等)任何与经纪人相关的属性