簡體   English   中英

我可以在Akka.NET中保存整個Actor系統的狀態嗎?

[英]Can I save the state of my entire Actor System in Akka.NET?

我一直在閱讀和研究Akka.NET上的內容,並認為它非常適合我將要開發的非常基本的在線多人游戲。

我對Akka.NET中的Persistence模塊特別感興趣。 我希望能夠做的是在任何時間點拍攝整個Actor系統的快照,並在我選擇的時間恢復該快照(本質上是游戲狀態的“保存/加載”機制)。 Actor持久性的保存和加載似乎是自動發生的,而我希望手動快照系統的當前狀態並在我選擇的時間進行還原。

使用Akka.NET持久性是否可能出現這種情況?

Akka.NET持久性使用事件源作為其持久性和重新創建參與者狀態的方式。 它還支持創建完整當前狀態的快照,但這應視為性能優化,不能單獨使用。 還要注意,持久性基於每個參與者起作用。 您無法將整個系統凍結為一種狀態。

但是,您可以執行以下操作:實現持久性,但永不持久化任何事件。 然后,您向高層參與者發送一條消息,內容為“ SaveSnapshotRecursive”。 收到該消息的所有參與者將保存快照並將消息轉發給他們的孩子(他們還應在快照中記錄其當前孩子的列表)。 如果您願意,此快照存儲可以僅基於文件,並且可以隨時使用它來恢復完整狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM