问题标签 [akka-persistence]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Akka持久性滥用?
将 akka 持久性用作本地数据库是个好主意吗?如果服务器无法访问,我需要在本地存储数据,而且我的应用程序是建立在 akka 之上的,所以使用 akka-persistence 听起来是最简单的方法。
数据以平均每 10 秒记录一条记录的速率填充。仍然考虑到 akka-persistence 是为一些不同的东西设计的,这听起来像是一种滥用。有什么我应该注意的问题吗?
akka-persistence - 何时使用 AKKA 持久演员
有人可以解释一下,我们什么时候应该/必须使用持久性演员?有什么好处,解决了什么问题(普通演员解决不了的)?
scala - 在 Scala 中将 Future[Unit] 变成 Try[Unit]
我正在尝试实现一个 API 方法(AsyncWriteJournal.asyncWriteMessages
Akka 2.4 的持久性 API 的一部分),它需要我返回一个Future[Seq[Try[Unit]]]
. 这个想法是可以执行许多操作,其中任何一个都可能单独成功或失败,future 可用于等待所有操作的完成。即使在个别操作中存在某种类型的失败,未来本身也可以选择成功。
我正在使用(Rediscala)的底层操作返回 Futures 但我一直试图将 aSeq[Future[Unit]]
转换为所需的返回类型。我可以Promise
在每个操作上使用它并将它们捆绑在一起,但是如果任何Future.sequence
操作失败,那么结果未来会失败,这不是正确的行为
akka - Akka 持久性演员的用例是什么?
我对 Akka 持久性和持久性演员的适用性一团糟,什么时候应该使用持久性演员?
以给定购物应用程序的购物车模块为例,每个用户的购物车会话是否都是具有各自唯一持久性 ID 的持久性参与者?
在实际应用中的可用性是什么?查询端如何处理持久参与者的状态?当持久性actor在实际应用程序中没有用时?
存储状态或存储消息,是一回事吗?不是吗?有什么区别,什么时候应该使用每个?
有人可以给我一些例子吗?
scala - Play框架重新启动时如何重新加载akka调度程序
我目前正在使用 Play-Scala 框架和 akka actor 开发一个应用程序,以便在发生与数据库的 CRUD 操作时发送电子邮件。重启服务器时出现问题。
当 Play 框架重新启动或持久 akka 调度程序以及重新启动应用程序时,它将运行调度程序时重新加载 akka 调度程序的任何方式。例如,这是我的代码。
cassandra - Events are not recovering in Akka 2.4.0 Persistence & Cassandra Journal Plugin 0.6
I try to write an app using that is using Akka (version 2.4.0) Persistency and Cassandra Plugin (version 0.6, https://github.com/krasserm/akka-persistence-cassandra) to recover from failures.
The events are being stored to cassandra with no issues, however, one I try to kill and actor, so the supervisor restarts it, the events are not received by receiveRecover
.
It seems that the issue is with the plugin itself, as if I use shared LevelDB instead of cassandra, the events are being received on the recovery step.
Here is the implementation of my persistent actor:
In both cases, that I describe above, the code doesn't change. Has anyone seen this issue before?
scala - Akka 推荐实践来初始化 `PersistentActor`
如示例所述
我怎么能在接受任何其他命令之前初始化演员状态?
scala - Akka Persistence:当它不仅仅是状态更新时,命令的执行在哪里
只是为了澄清:当执行不仅仅是状态更新时,命令的执行在哪里(就像在网上找到的大多数示例一样)
例如,就我而言,
该命令是FetchLastHistoryChangeSet,它包括根据我们上次离开的位置从外部服务获取最后一个历史变更集。换句话说就是上一个历史ChangeSet Fetched的最新变化的时间。
事件将是HistoryChangeSetFetched(changeSet, time)。与上面所说的相关,时间应该是新历史 ChangeSet Fetched 的最新更改的时间(根据当前正在处理的命令事件)
现在在我看到的所有示例中,它始终是:(i)验证命令,然后,(ii)持久化事件,最后(iii)处理事件。
在处理事件时,我看到除了 updatestate 逻辑之外还添加了自定义代码。其中,自定义代码通常在更新状态函数之后添加。但是这个习惯大部分时间是关于将消息发送回发送者,或者将它广播到事件总线。
根据我的示例,很明显我需要做很少的操作来实际调用 Persist (HistoryChangeSetFetched(changeSet, time))。事实上,我需要新的变更集,以及最新变更的时间。
我认为可能的唯一方法是在验证命令中进行获取
那是:
ValidateCommand(FetchLastHistoryChangeSet) 在哪里
作为逻辑,读取最后一个 changeSet 时间(changeSet 的最新更改),基于它获取一个新的 changeset,如果它存在,获取其最新更改的时间,并返回元组。
我的问题是,它应该如何工作。验证命令可以像那样复杂吗?即实际执行命令?
scala - Akka 在第一条消息后坚持恢复完成更新状态
我有一个执着的演员。当它第一次启动(数据库为空)时,我会保留一些初始数据。但是状态并没有像我预期的那样得到更新。它仅在处理第一条消息后才更新。如何让演员在状态更新后开始处理消息?
演员代码
测试代码
输出
akka - 是否可以在所有 Actor 上重播 Akka Persistence Journal?
我有一个 Akka Persistence Journal 和几个数据库,为保存在日志中的数据提供不同的视图。大多数视图都包含多个实体(-> 多个 Persistent Actors)。
我知道我可以为一个参与者触发恢复,这将重建仅包含该实体的视图,但如果我想重建所有视图,我将如何处理?
我可以启动所有现有的演员(我需要知道所有演员)来触发整个系统的恢复,但是有没有办法给演员系统一个日志并基本上告诉它重播整个事情?