我想知道卡夫卡主题中的每一张唱片是否都占有相同的大小,而不管消息的实际大小如何?
我知道以下属性-> max.message.bytes=1000012,这将使记录的大小达到1000012字节。
我的问题是,如果传入的记录小于这些字节,那么预留给它的空间的实际大小是多少?
发布于 2019-05-28 16:46:57
在Kafka中,经纪人在磁盘上附加的内容与制作人发送的几乎完全一样。
然而,正如您所暗示的,生产者将消息包装到一个记录和一个批处理中。
这些数据结构的完整描述可以在文档中找到。
除了非常小的消息外,消息占用的磁盘空间主要取决于其大小,因为每条消息的Kafka开销相对较小。
例如,对于没有键或头的10字节的单个消息,磁盘上的大小将为78字节。这似乎是一种很大的开销,但由于它几乎是恒定的,无论消息大小如何,如果有效负载为1024字节,那么所占用的磁盘总数将仅为1094字节。
如果考虑到批处理,则开销会进一步减少,因为批处理头(~50个字节)将用于多个记录。
发布于 2019-05-28 16:43:13
据卡夫卡博士称,
max.message.bytes:卡夫卡允许的最大的记录批次。如果增加了这个值,并且有超过0.10.2岁的使用者,则还必须增加使用者的获取大小,以便他们能够获取这么大的记录批。
据我所知,您是在问是否每条消息都保留一个与max.message.bytes相等的空间。
答案是否定的。max.message.bytes定义消息的最大允许大小,而不是每条消息的大小。
https://stackoverflow.com/questions/56342349
复制相似问题