【问题标题】:Replenish event sourced aggregate with kafka as event store使用 kafka 作为事件存储来补充事件源聚合
【发布时间】:2017-02-24 20:18:16
【问题描述】:

越来越多的文章将 kafka 作为事件存储并在使用 cqrs 和事件源构建的应用程序中使用它。 如何在 kafka(作为事件存储)中查询某个聚合的事件,以完成写入端的操作?

【问题讨论】:

    标签: apache-kafka cqrs event-sourcing


    【解决方案1】:

    您可以使用 Kafka Streams (http://docs.confluent.io/current/streams/index.html) 来计算存储在 Kafka 中的数据聚合。在下一个版本中(投票已经在进行中)Kafka Streams 添加了一个名为 Interactive Queries 的新功能,允许您随时查询每个聚合的当前值。

    现在请参阅设计文档(仍然具有旧名称“可查询状态”的功能)https://cwiki.apache.org/confluence/display/KAFKA/KIP-67%3A+Queryable+state+for+Kafka+Streams

    发布后会有关于交互式查询如何工作的详细文档。如果您现在有后续问题,请继续。

    【讨论】:

    • 有没有关于如何使用 kafka 和可查询状态的示例?所有事件都应该在同一个主题上吗?一个聚合可以有多种类型的事件,我假设每个事件都有自己的主题。
    • 有没有关于如何使用 kafka 和可查询状态的示例?所有事件都应该在同一个主题上吗?一个聚合可以有多种类型的事件,我假设每个事件都有自己的主题。而要查询某个聚合的状态,我们需要按顺序聚合所有这些事件的结果。我是否以错误的方式使用 Kafka?
    • 一个状态是针对单个操作员的。如果您有不同的类型,您仍然可以创建自己的复合类型以将所有数据提供给同一个运算符。主题也是如此。对于 Kafka,数据只是字节——因此,如果您提供自定义的反序列化器,您也可以将不同的类型写入单个主题。 (不完全确定您对问题的第二部分的意思。也许您想跟进 Confluent 或 Kafka 邮件列表?groups.google.com/forum/#!forum/confluent-platformkafka.apache.org/contact
    猜你喜欢
    • 2021-10-01
    • 2014-11-21
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 2021-12-11
    相关资源
    最近更新 更多