簡體   English   中英

服務結構參與者狀態

[英]Service fabric actors state

我們計划將Service Fabric actor模型用於我們的一項用戶服務。 我們有成千上萬的用戶,他們有自己的個人資料數據。 到目前為止,服務結構參與者模型通過其服務結構集群來維護其狀態。 在災難恢復/計划的關閉方案/離線數據訪問中,我看不到清晰的畫面。 在這種情況下,是否需要將數據持久保存在這些actor服務之外?

如果我們決定一天關閉所有服務矩陣群集,並希望在幾天后重新激活,那么數據將如何處理?

在Azure的SF群集中,數據存儲在臨時驅動器上。 無法保證關閉的節點會保留臨時驅動器。 因此,同時關閉所有節點將導致數據丟失。

為了避免這種情況,您應該定期創建(演員)服務的備份。 例如,使用 Nuget包。 將結果文件存儲在集群外部。

集群技術將在節點故障期間幫助確保數據安全,例如,在5節點集群中,剩下的4個健康節點可以接替故障節點的工作。 數據是冗余存儲的,因此您的服務保持運行狀態。 相同的功能還允許滾動升級服務/角色。

這是有關災難恢復的文章。

我已經使用角色模型在服務結構中實現了一個大型企業應用程序,用於訂單管理。 在選擇數據備份和還原策略時可能有用的幾件事

  1. 由於軟件包https://github.com/loekd/ServiceFabric.BackupRestore並不完整,您需要注意一些情況。 例如:在部署過程中,您的actor分區移到了其他節點,如果嘗試進行增量備份,它將失敗並返回FabricMissingFullBackupException,因為在成為主節點后,該節點上您尚未進行完整備份,並且需要手動解決此問題。 我們如何添加重試模式以解決該問題不在此問題的范圍內。
  2. 增量備份並非總是在還原過程中還原。
  3. 即使您正確設置logTrunctationIntervalInMinutes,有時增量備份創建也會失敗。
  4. 一些開發人員錯誤地刪除了服務或應用程序,您將丟失所有數據。
  5. 如果您的系統嚴重依賴提醒(在我們的情況下)。 在恢復期間,所有提醒都將重置。

好的解決方案:如果要使用Power BI進行某些分析,請使用您自己的實現覆蓋默認的KvsActorStateProvider,該實現將數據存儲在DocumentDB,MongoDB,Cassandra或Azure SQL中。

暫無
暫無

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

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