我正在学习Akka.net。我已经设置了一个运行测试,我在本地运行一个actor,然后远程转移到Azure中VM上的另一个actor。
问题是,在我完成并在本地关闭应用程序后,远程操作员也会关闭。
"远程主机"
强行关闭现有连接我需要远程actor只是接受终止,并等待本地运行的actor的下一个连接。我该如何解决这个问题?
答案 0 :(得分:2)
如果您正在使用remote deployment创建actor,那么一旦它的父级将死亡(由于actor系统关闭),actor将始终停止。在这种情况下,当孩子住在另一台机器上时,它仍然是当地演员的孩子。这是演员系统生命周期的自然组成部分 - 儿童离不开父母。
如果您对让演员分散在群集节点中并让它们自动重新平衡/重新创建感兴趣,您可以查看Akka.Cluster.Sharding插件。请记住,虽然更容易,但这个解决方案也比标准的akka演员更复杂,更慢。确保你真的需要这些功能。
答案 1 :(得分:0)
如果你想让一个actor继续活着然后就不能使用远程部署,你应该创建一个包含actor的服务,并使用某种形式的远程技术(如wcf,rest和/或web services)与它交互
如果你想让一个演员等待工作,那么我建议你研究一个不同的产品 - 尝试来自Particular.net的nServiceBus,我们以这种方式使用它并且非常满意。它本质上是侦听持久队列的actor模型。