每个主题级别的Kafka配置copy.fetch.max.bytes

时间:2019-06-27 13:08:29

标签: apache-kafka

我想将Kafka集群设置为仅允许在特定主题上发送大型消息。从docs中可以看到,如果我想在整个集群级别上做到这一点,可以通过设置message.max.bytes来允许代理和replica.fetch.max.bytes上的大量数据来实现。为了允许它被复制,但是我的理解是,这将增加群集中所有主题的内存使用量,而不仅仅是我知道可以接收大消息的主题。还有一个主题级别的设置max.message.bytes,用于控制消息的最大大小,但是我看不到一个主题级别的设置,用于控制复制操作的最大数据大小。这些紧密联系的设置之一在主题级别上不可配置,这似乎很奇怪。也许我错过了这种设置,或者还有另一种方法可以实现这些目标?

1 个答案:

答案 0 :(得分:0)

replica.fetch.max.bytes只能在代理级别设置。但是,您可以在用户端设置max.partition.fetch.bytes

  

服务器将返回的每个分区的最大数据量。   记录由消费者分批提取。如果第一条记录   提取的第一个非空分区中的批处理大于   在此限制下,批次仍将退回以确保   消费者可以进步。接受的最大记录批量大小   代理是通过message.max.bytes(代理配置)定义的,或者   最大消息字节数(主题配置)。请参阅fetch.max.bytes以限制   消费者要求的大小。

请注意,这是一个按分区的配置,这意味着如果将其设置为较大的数量,则如果您也有很多分区,它将消耗大量内存。