Memory Kafka流队列-配置使用者属性queuedchunks.max

Memory Kafka流队列-配置使用者属性queuedchunks.max,memory,configuration,queue,consumer,apache-kafka,Memory,Configuration,Queue,Consumer,Apache Kafka,消费者的属性queuedchunks.max的含义有点模糊 我看到,消费者中的每个流都有一个定义了容量的队列(queuedchunks.max) (一) 但是,若我的消费者开始消费更多的主题(在单个流中),这会影响该队列能够容纳的对象的最大大小 例如: 如果我设置fetchSize=1000,queuedchunks.max=10,这是否意味着无论我使用多少主题,内存中的队列永远不会大于1000*10 (二) 在磁盘上闪烁消息之前,这种队列有效的方法可以异步收集消息吗?磁盘IO通常很慢,所以在队

消费者的属性queuedchunks.max的含义有点模糊

我看到,消费者中的每个流都有一个定义了容量的队列(queuedchunks.max)

(一) 但是,若我的消费者开始消费更多的主题(在单个流中),这会影响该队列能够容纳的对象的最大大小

例如: 如果我设置fetchSize=1000,queuedchunks.max=10,这是否意味着无论我使用多少主题,内存中的队列永远不会大于1000*10

(二) 在磁盘上闪烁消息之前,这种队列有效的方法可以异步收集消息吗?磁盘IO通常很慢,所以在队列中收集消息要比在磁盘上立即写入消息好吗

(三) 如果我从N个主题中消费消息,则如何在此队列中排序

每个队列节点(条目)仅保留1(单个)主题的消息:

[T1]、[T2]、[T3]、[T1]、[T2]

或者,每个节点都可能保存不同主题的消息

[T1,T2],[T3,T1,T2]

4) 节点(条目)是否具有fetchSize最大大小

5) 是否可以为每个主题设置fetchSize?或者它只是消费者的财产


谢谢。

1-不,消费者流大小不会因主题数量而改变, streams编号将保持等于您在consumer开始时定义的编号

2-是

3-每个“消息”都是已定义的最大大小(fetchSize)的获取块,它可能只包含单个主题的单个分区的消息

所以它看起来像: [T1-P1][T1-P2][T2-P1]…[Tn Pk]

分区之间没有顺序,但1个分区的所有消息总是按顺序出现

  • 它可能达到fetchSize,但可能没有

  • 没有