【问题标题】:Will Kafka Reuse an old disk for writes after a new disk has been added?添加新磁盘后,Kafka 是否会重用旧磁盘进行写入?
【发布时间】:2021-03-23 12:58:36
【问题描述】:

我有一个关于每个 Kafka 代理使用多个磁盘的问题。 假设 Kafka 代理有 3 个与之关联的磁盘。

i) Disk-1 在 5 天内已满

ii) Disk-2 在未来 3 天内的使用率接近 40%。

现在如果log.retention.hours = 168(7 天)已经完成,那么假设 Disk-1 中的数据已被删除,因此 Disk-1 再次空闲,Disk-2 已使用 40%

现在 Kafka 会重新使用 Disk-1 进行新的写入,还是只写入新磁盘,即 Disk-2 、 Disk-3 等等?

基本上,我的问题是,如果在 Kafka 中的最长保留天数后由于消息删除而导致旧磁盘中有足够的可用空间,Kafka 是否会再次写入旧磁盘?

【问题讨论】:

    标签: apache-kafka disk


    【解决方案1】:

    创建分区时,作为副本的每个代理都会选择一个日志目录来放置该分区的数据。在代理上,特定分区的数据仅存储在该选定的日志目录中。

    通过log.dirs 设置在代理配置中指定日志目录。

    如果你有多个日志目录,在创建分区时,会选择分区数最少的日志目录。

    向分区生成消息时,数据会进入该分区所在的日志目录。

    简而言之,您的具体问题的答案是“视情况而定”,但希望我已经清楚地描述了该过程,以便您找出适合您具体情况的答案。

    【讨论】:

    • 非常感谢您的帮助。如果由于日志保留天数删除了 Disk-1 中的消息后,Disk-1 的分区数少于 Disk-2,则数据将再次写入 Disk-1。这是我从你的回答中推断出来的。我说的对吗?
    • 非常感谢您的回复和帮助。
    猜你喜欢
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 2022-01-20
    • 2022-12-31
    • 1970-01-01
    • 2017-04-24
    • 2011-10-21
    相关资源
    最近更新 更多