【问题标题】:How to decide whether Kafka is suitable for event storing?如何判断 Kafka 是否适合事件存储?
【发布时间】:2019-07-11 23:36:19
【问题描述】:

我考虑将 Kafka 用于事件溯源项目(有些代理会产生事件,这些事件将通过 Kafka 传递到特定的处理器......)

由于我在事件溯源和 Kafka 方面没有实际经验,因此我在网上做了一些研究。而且我发现 Kafka 不适合事件溯源 (Using Kafka as a (CQRS) Eventstore. Good idea?)。 有一句名言:

SQL/NoSQL 存储和 Kafka 作为代理是比离开更好的选择 Kafka 处理这两个角色以创建完整的功能完整解决方案

有一位卡夫卡合著者告诉

Kafka 可以很好地用作事件溯源的日志。它是 容错,可扩展到巨大的数据大小,并具有内置的 分区模型。

我仍然无法考虑在我的情况下使用 Kafka 是否是一个好主意。即使 Kafka 有主题,我还需要事件存储吗?

我想要一个简单的问题列表,我应该问自己,这有助于我决定是单独使用 Kafka 还是使用 Kafka + 事件存储。

【问题讨论】:

    标签: apache-kafka event-sourcing


    【解决方案1】:

    如何判断Kafka是否适合事件存储?

    首先,您需要确定您认为“事件溯源”的含义。

    您可能想查看 Martin Fowler 的 What do you mean by "Event-Driven"

    要考虑的一件事是是否存在需要在事件分区上维护的域不变量。在大多数专用事件存储中,有一些机制可确保只有在新事件与之前写入的事件一致时才将新事件附加到历史记录中。

    在许多事件溯源解决方案中,您需要许多简短的历史记录 - 每个订单履行、每个发货、每个流程实例的历史记录 - 这样您就可以支持对不同实例的并发写入,而不会丢失一致性属性。

    如果您需要这些支持,那么您需要了解 Kafka 的功能集与它们的匹配程度(实际上与评估任何其他现成的解决方案没有什么不同)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 2013-05-12
      • 2014-05-23
      • 2022-09-23
      • 2015-11-15
      相关资源
      最近更新 更多