【问题标题】:Axon: Using Cassandra as a Event StoreAxon:使用 Cassandra 作为事件存储
【发布时间】:2021-01-14 15:32:01
【问题描述】:

我们正在尝试实现我们自己的基于 Cassandra 的事件存储,该存储扩展了 EmbeddedEventStore。关于为什么这可能不适用于 Axon 的任何想法,以便我们看到与使用 JPA 相同的行为?一个疑问围绕着 Cassandra 支持最终一致性这一事实。目前,当在单个 JVM 中使用多线程 TrackingEventProcessor 和/或在不同 JVM 中部署基于 Saga 的应用程序时,我们看到了意外行为,日志如下:

o.a.e.TrackingEventProcessor : message=Unable to claim the token for segment: 0. It is owned by another process

似乎它总是试图从段 0 中检索。

这很可能是我们自己的缺陷(可能是我们的 bean 配置 KafkaPublisher/EventProcessorConfigurer),我们会解决,但更大的问题是,在您看来,是否有可能使Cassandra 与 Axon 合作。我记得在 google 群组论坛中看到一些帖子说由于性能问题没有考虑 Cassandra 支持。我们希望确保我们不会投资于那些难以维护或根本不是一个好的解决方案的东西。

【问题讨论】:

  • 你的一些措辞让人怀疑@blackcompe。您是要创建 Cassandra 的 TokenStore 还是 EventStore?是您对EmbeddedTokenStore 的使用让我怀疑。 Axon Framework 中有一个EmbeddedEventStore,但根本没有EmbeddedTokenStore。此外,用户组对 Cassandra 的“性能争论”是关于事件存储,而不是令牌存储。
  • 只是想回复您的“我记得在 google 群组论坛中看到过一些帖子”。正如您可能知道的那样,谷歌小组已移至the new discuss platform,所有旧帖子都已导入并可搜索。您可能不知道在那里您可以提及和/或 DM 人。这可能是与过去使用该组合的人取得联系的好方法。
  • @Steven:Iol,是的,我的意思是 EventStore。
  • @MilenDyankov:我知道。我反弹回来。

标签: cassandra token axon


【解决方案1】:

如果您想在使用 Axon 框架的同时创建自己的事件存储解决方案,建议提供 EventStorageEngine 实现。

这样,EventStore(如果您不使用 Axon 服务器,则其类型为 EmbeddedEventStore)可以简单地指向用于存储和检索事件的其他存储解决方案。 EventStorageEngine 的示例是 JpaEventStorageEngine、JdbcEventStorageEngine 和 MongoEventStorageEngine。前两个驻留在 Axon Frameworks 事件源模块中,而 MongoDb 变体是 Axon 的Mongo Extension 的一部分。

现在,关于它是否可行的实际问题。 我非常有信心您应该能够起草一份CassandraEventStorageEngine,它可以很好地完成这项工作。

然而,它是否会成为您可以拥有的最优化的 Event Store 是值得商榷的。 AxonIQ 将 Axon Server 起草为事件存储是有原因的,这仅仅是因为如果您使用不同的存储方法,您对事件存储的所有硬性要求都没有得到最佳实施? 为什么?很简单,因为 RDBMS、MongoDb、Cassandra、Kafka 等提供的功能范围更广,其核心意图与 Event Store 不同。

在这里提供所有细节可能有点多,但是 Allard Buijze(Axon 框架的创建者)的 this 演示应该会对此提供一些见解。另外,为什么 Cassandra 不是最佳解决方案。

因此,总结一下,如果您强烈希望建立自己的活动商店,那么选择 Cassandra 将是一项有趣的尝试。如果它能够从 Event Store 中为您带来所有您需要的,那还有待商榷。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    相关资源
    最近更新 更多