【发布时间】:2017-11-05 14:55:47
【问题描述】:
我一直在考虑使用 Apache Kafka 作为事件源配置中的事件存储。发布的事件将与特定资源相关联,传递到与资源类型相关联的主题,并按资源 ID 分片到分区中。因此,例如,创建 Folder 类型和 id 1 的资源将产生一个 FolderCreate 事件,该事件将传递到通过将 id 1 分片到主题中的总分区数给定的分区中的“文件夹”主题。即使我不知道如何处理使日志不一致的并发事件。
最简单的场景是有两个可以使彼此无效的并发操作,例如一个更新文件夹,一个销毁同一个文件夹。在这种情况下,该主题的分区最终可能包含无效序列 [FolderDestroy, FolderUpdate]。这种情况通常可以通过对事件as explained here 进行版本控制来解决,但 Kafka 不支持此类功能。
在这些情况下,可以做些什么来确保 Kafka 日志本身的一致性?
【问题讨论】:
标签: apache-kafka cqrs event-sourcing