【问题标题】:Kafka log compaction and event sourcingKafka 日志压缩和事件溯源
【发布时间】:2016-06-16 17:11:19
【问题描述】:

我使用 kafka 作为事件存储。尽管永远不应该删除事件,但我想知道在日志增长过多的情况下从 kafka 中删除特定事件的最佳策略。要清理的候选事件将是例如属于已删除聚合的事件、最初考虑但不需要的事件等。

  1. Kafka 实现基于键的日志压缩策略。是否可以以某种方式使用它来删除某些事件?
  2. 还有其他方法可以自动删除属于特定聚合的事件吗?

谢谢

【问题讨论】:

  • 事件溯源的一个要点是保持系统完整的完整审计日志,另一个是对所有内容进行数据分析,包括过去发生的事情。故意删除非活动聚合的事件不可避免地会禁用这两个选项,而无法恢复。现在存储很便宜,不知道相关数据,不是吗?

标签: apache-kafka event-sourcing


【解决方案1】:
  1. 是的。引用documentation on log compaction

压缩也允许从删除。带有键和空负载的消息将被视为从日志中删除。此删除标记将导致删除具有该键的任何先前消息(与具有该键的任何新消息一样),但删除标记的特殊之处在于它们本身将在一段时间后从日志中清除。上面给出了不再保留删除的时间点。

  1. 不,我认为使用密钥来识别来自特定聚合的消息是您最好的选择。

【讨论】:

  • “上面给出了不再保留删除的时间点”......有趣的是,链接所指的页面已被删除:)
猜你喜欢
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 2018-03-12
  • 2023-03-13
  • 1970-01-01
  • 2016-06-02
  • 2019-02-03
相关资源
最近更新 更多