gpt4 book ai didi

apache-kafka - Kafka 使用了哪些内部主题?

转载 作者:行者123 更新时间:2023-12-04 03:55:22 26 4
gpt4 key购买 nike

我们使用 kafka 流 api 进行聚合,其中我们也使用 group by。
我们还使用状态存储来保存输入主题数据。

我注意到的是

Kafka内部创建了3种topic

  • Changelog-<storeid>-<partition>
  • Repartition-<storeid>-<partition>
  • <topicname>-<partition>

  • 我无法理解的是
  • 为什么当我在 <topic>-<partition> 中拥有所有数据时会创建变更日志主题
  • 重新分区主题是否包含分组后的数据。
  • 我看到 Changelog 和 topicname-parition 的大小大约相同。

  • 数据有什么不同,因此必须为此保存不同的文件。

    最佳答案

    'Changelog' 和 'repartition' 内部 Kafka 主题特定于 Kafka Streams。

    来自卡夫卡维基,

    Kafka Streams allows for stateful stream processing, i.e. operators that have an internal state. This internal state is managed in so-called state stores. A state store can be ephemeral (lost on failure) or fault-tolerant (restored after the failure). The default implementation used by Kafka Streams DSL is a fault-tolerant state store using 1. an internally created and compacted changelog topic (for fault-tolerance) and 2. one (or multiple) RocksDB instances (for cached key-value lookups). Thus, in case of starting/stopping applications and rewinding/reprocessing, this internal data needs to get managed correctly.



    更新日志主题 在流上有连接/聚合操作时创建。实际上,聚合调用的结果会创建一个状态存储,并且为了容错,状态存储由 Kafka Changelog 主题备份。

    聚合结果存储在这个内部主题中。当应用程序重新启动且 application-id 未更改时,状态将从更改日志主题中恢复。

    重新分区主题 在流上有键修改操作时创建。例如 groupByKey() 操作创建重新分区主题。查询 JIRA page了解更多关于自动创建重新分区主题的信息。

    这两个内部主题使 Kafka 流具有容错的有状态流处理能力。

    重新分区主题是否包含分组后的数据? - 是的

    Changelog 和 topicname-parition 的大小大致相同 - 可能所有聚合操作的结果都存储在此主题中。

    更多详情请查看 Kafka Wiki page .

    关于apache-kafka - Kafka 使用了哪些内部主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56080896/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com