Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 发生碰撞时保持阿克卡状态_Scala_Persistence_Akka_Fault Tolerance - Fatal编程技术网

Scala 发生碰撞时保持阿克卡状态

Scala 发生碰撞时保持阿克卡状态,scala,persistence,akka,fault-tolerance,Scala,Persistence,Akka,Fault Tolerance,我是Akka的初学者,我喜欢它为异步编程提供的许多功能,例如actor、agent或Futures Akka的一个强大卖点是,当一个参与者崩溃时,参与者系统会重新创建一个等价的参与者,并替换旧的参与者,从而保证强大的稳定性 其他一些系统(我被告知JMS就是其中之一)更进一步,持续保存参与者之间发送的消息。这样,如果机器发生物理崩溃(例如由于硬件故障),仍然可以恢复故障前的状态 这对我现在正在开发的应用程序非常有吸引力。阿克卡是否提供了这样的机制?如果没有,是否有某种方法可以将其与外部系统集成,从

我是Akka的初学者,我喜欢它为异步编程提供的许多功能,例如actor、agent或Futures

Akka的一个强大卖点是,当一个参与者崩溃时,参与者系统会重新创建一个等价的参与者,并替换旧的参与者,从而保证强大的稳定性

其他一些系统(我被告知JMS就是其中之一)更进一步,持续保存参与者之间发送的消息。这样,如果机器发生物理崩溃(例如由于硬件故障),仍然可以恢复故障前的状态


这对我现在正在开发的应用程序非常有吸引力。阿克卡是否提供了这样的机制?如果没有,是否有某种方法可以将其与外部系统集成,从而实现此目的?

是的,您所描述的内容可以通过使用来实现,可以根据每个参与者的需要进行配置


对于不同的后端,有几种实现,如果您没有为您最喜欢的消息队列找到一种,那么实现您自己的适配器将不是很困难。我们将在Akka源代码树中维护的唯一实现是
FileBasedMailbox
,它作为如何实现的模板。Akka 2.0.x发行版中的其他邮箱类型由各自的“所有者”作为社区项目进行维护。

持久邮箱是有选择地保存邮件的好方法,因此Akka可以实现类似于JMS的功能。除了技术之外,在体系结构级别考虑什么消息与系统相关,以及在系统故障后如何恢复状态是非常重要的。p> 一种方法是事件源(eventsourcing),它与actor范例配合得很好。在这个概念中,应用程序的状态存储为一系列事件,而不是状态本身。当系统或其部分出现故障时,可以通过应用持久事件存储中的所有事件来恢复状态。持久邮箱可以是指向此类事件存储的链接,也可以直接使用专用的参与者

Martin Krasser在这个博客上写了一篇非常好的文章,描述了使用Akka的这种方法。他也是Akka事件源扩展的作者,该扩展名为