0

如果说我的演员使用的代码(我无法控制的代码)抛出未处理的异常,这会导致整个演员系统进程崩溃还是每个演员都在某种特殊容器中运行?

为了澄清更多,在我的用例中,我希望每个参与者(在运行时)加载一些用户编写的代码/lib,并在它们上调用一些接口方法。这些库可能有问题,并可能导致我的演员系统操作系统进程死亡或停止或类似的事情。我的意思是,如果参与者调用的代码执行了一些停止的操作(例如通过有问题的客户端或死循环访问远程资源),或者甚至调用 Enviroment.exit() 或某些不良性质的东西,该怎么办。

我的意思是,如果我的要求是允许每个参与者加载我无法控制的代码,我该如何保护我的参与者系统免受它们的影响?我什至必须这样做吗?

我认为整个actor系统操作系统进程保护自己免受这些第三方代码的一种方法是在某种容器或事件中运行每个actor,在我的actor控制的本地机器上每个actor有一个actor系统?我是否必须走这么远,或者 akka 已经为我解决了这个问题,并且演员级别的任何失败都不会危及整个演员系统及其过程?

4

1 回答 1

0

如果 JVM 进程死亡,则 JVM 进程也会死亡。你可以通过使用 Akka Cluster 来解决这个问题,这样你就可以观察节点故障并做出反应。

于 2013-02-23T12:18:03.580 回答