0

我想问你一些关于 apache kafka 和压缩主题的问题。我们想在 kafka 压缩主题上提供一些 PII 数据。我们想通过 tombstone 删除这个主题的数据。目前有多个问题需要我们验证我们的假设:

  1. 是否有其他公司通过像 KIP-354 建议的带有墓碑生成的压缩主题来满足 kafka 中的 gdpr 要求(遗忘权)https://cwiki.apache.org/confluence/display/KAFKA/KIP-354% 3A+Add+a+Maximum+Log+Compaction+Lag ?
  2. 我们的假设是否正确,只有当记录不在活动段文件中时才会触发压缩。所以在我们看来,kafka 文档需要修改,在 kafka 文档点 4.8 中添加:主题的 max.compaction.lag.ms 可以用来保证消息写入时间和时间之间的最大延迟消息变得有资格进行压缩。在这里它应该添加条件,我们要压缩的消息不应该在活动段文件中。这是 max.compaction.lag.ms 功能的错误还是设计的?我们目前还不确定。
  3. 是否仅在插入新消息后才触发压缩?或者是否还有一个压缩非活动段文件的异步过程?

感谢您的回答;-)

4

1 回答 1

1

你说得很对。

  1. 压缩 Kafka 主题中的消息删除或多或少与删除数据库中的一行相同。它只是不会在墓碑消息发送后立即发生。
  2. 是的,活动日志段未压缩。如果你想加速这个特定主题的压缩过程(为了满足第 1 点),你可以减少最大段大小(segment.bytes,默认为 1GB)和最大段 MS(segment.ms,默认为 604800000 = 1 周)到一些较低的值,例如 100MB 和 1。您应该查看 min.cleanable.dirty.ratio 并将其设置为更激进的值,再次取决于要求(第 1 点)。
  3. 压缩是异步发生的,无论是否在墓碑之后发送任何消息都没有关系。每个 Kafka、broker、LogCleaner 上都有一个组件运行,它负责这个。
于 2020-08-30T19:58:32.417 回答