2016-09-12 41 views
0

我正在學習Akka.net。我已經建立了一個運行測試,我在本地運行一個actor,然後遠程轉移到Azure虛擬機上的另一個actor。我該如何讓我的演員不死?

問題是,我完成並關閉本地應用程序後,遠程角色也出現故障。

我需要遠程演員什麼是剛剛接受終端,並等待從演員本地運行的下一個連接「的現有連接被強行關閉遠程主機」。我怎樣才能解決這個問題?

回答

2

如果您使用remote deployment創建演員,那麼演員將永遠停止,一旦它的父母死亡(由於演員系統關閉)。在這種情況下,當孩子住在另一臺機器上時,它仍然是當地演員的孩子。這是演員系統生命週期的一個自然部分 - 孩子不能沒有父母。

如果您有興趣讓您的演員分散在羣集節點中並自動重新平衡/重新創建,您可以查看Akka.Cluster.Sharding插件。請記住,這個解決方案雖然容易得多,但它也比標準的akka​​演員更復雜,速度更慢。確保你真的需要這些功能。

+0

我第二個答案 - 你所描述的是設計。如果父母/主管離開,孩子也會離開。 –

0

如果您希望演員繼續活下去,那麼您不能使用遠程部署,您應該創建一個包含該演員的服務並使用某種形式的遠程技術(如wcf,rest和/或web)與其進行交互服務。

如果你想要一個演員存在等待工作,那麼我建議你看看不同的產品 - 嘗試來自Particular.net的nServiceBus,我們以這種方式使用它,並且非常滿意它。它本質上是偵聽持久隊列的actor模型。

相關問題