【问题标题】:Kafka stream queue - configure consumer property queuedchunks.maxKafka 流队列 - 配置消费者属性 queuedchunks.max
【发布时间】:2023-03-27 16:48:01
【问题描述】:

consumer 的属性 queuedchunks.max 含义有点模糊。

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

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

例如: 如果我设置fetchSize = 1000,queuedchunks.max = 10,是不是意味着无论我消费多少topic,内存中的队列永远不会大于1000*10?

2) 这个队列 - 在将消息刷新到磁盘之前以异步方式为我的消费者收集消息的有效方法吗?磁盘 IO 通常很慢,所以在队列中收集消息会比尝试立即将它们写入磁盘更好吗?

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

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

[T1]、[T2]、[T3]、[T1]、[T2]..?

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

[T1, T2], [T3, T1, T2]..?

4) 节点(条目)的大小是否为 fetchSize 最大?

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

谢谢。

【问题讨论】:

    标签: memory configuration queue consumer apache-kafka


    【解决方案1】:

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

    2 - 是的

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

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

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

    1. 它可能会达到 fetchSize 大小,但可能不会。

    2. 没有

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-26
      • 1970-01-01
      • 2017-02-14
      • 1970-01-01
      • 2018-03-05
      • 2022-01-04
      • 2021-02-18
      • 2020-11-01
      相关资源
      最近更新 更多