1

当前应用程序将 Akka事件流及其发布/订阅用于导入大量数据的用例,并在接收到它发布和事件的每一行的数据时,并且有一个订阅者。如果发布者/订阅者出现问题,这种设计就有丢失事件的风险。

我想知道在这里使用 Akka 持久性是否有意义,有几个原因

1) 保留事件 2) 审计历史 3) 使用快照重新创建场景

请注意,系统中没有共享/全局状态(在几乎所有 Akka 持久性博客/示例中通常被描述为用例)。

Akka 持久性在这里有意义吗?

4

1 回答 1

0

如果我正确理解您的情况,我会说 1)不,2)是,3)不:

1) 如果消息由于 pub/sub 调解器的问题(您无法真正控制)而丢失,它将永远不会到达您的持久参与者,因此永远不会保存在事件流中,因此永远不会重播。

2) 记录的消息将在审核期间查看。

3)如果您的演员是无状态处理器,您将在快照中重新创建/保存什么场景?

我建议您可以通过使用确认/重试机制来解决 1,在该机制中您定期重新发送消息,直到您收到来自消费者的确认。

于 2014-11-07T10:19:01.880 回答