2017-07-04 12 views
0

当社のユーザサービスの1つにサービスファブリックアクターモデルを使用する予定です。私たちには何千人ものユーザーがいて、彼ら自身のプロファイルデータを持っています。これらの資料をはるかに読むことによって、サービスファブリックアクターモデルはサービスファブリッククラスターで状態を維持します。災害復旧/計画されたシャットダウンシナリオ/オフラインデータアクセスで明確なイメージを得ることができませんでした。このような場合、これらのアクターサービスのデータを外部に保持する必要がありますか?サービスファブリックアクターの状態

サービスファブリッククラスタをすべて一度シャットダウンして数日後に再度アクティブにする場合、データはどうなりますか?

答えて

3

AzureのSFクラスタでは、データは一時ドライブに保存されます。 guaranteeには、シャットダウンされているノードが一時ドライブを保持しているわけではありません。したがって、すべてのノードを同時にシャットダウンすると、データが失われます。

これを避けるには、(俳優)サービスのバックアップを定期的に作成する必要があります。例えば、this Nugetパッケージを使用して。結果ファイルをクラスタの外部に格納します。

クラスタテクノロジは、ノードの障害時にデータを安全に保つのに役立ちます。 5ノードクラスタでは、残りの4つの正常なノードが障害ノードの作業を引き継ぐことができます。データは重複して保管されるため、サービスは引き続き使用できます。同じ機能によって、サービス/アクターのローリングアップグレードも可能です。

Here's DRに関する記事。

0

私は、オーダーの管理のためにアクターモデルを使用してサービスファブリックに大規模エンタープライズアプリケーションを実装しました。パッケージhttps://github.com/loekd/ServiceFabric.BackupRestoreように、データのバックアップと復元

  1. のための戦略を選択しながら、役立つかもしれない いくつかのことは、本格的なフルでないと、あなたは、シナリオのいくつかの世話をする必要があります。 例:配備中にアクターパーティションが他のノードに移動し、増分バックアップを取ろうとするとFabricMissingFullBackupExceptionで失敗します。そのノードではプライマリになった後にフルバックアップを取らず、手動で問題を解決する必要があるためです。 この問題を解決するための再試行パターンの追加方法はこの質問の対象外です。
  2. 復元プロセス中に増分バックアップが常に復元されませんでした。
  3. logTrunctationIntervalInMinutesを適切に設定しても、増分バックアップの作成に失敗しました。
  4. 一部の開発者が誤ってサービスやアプリケーションを削除すると、すべてのデータが失われます。
  5. あなたのシステムが私たちの場合のリマインダに大きく依存している場合は、 復元中にすべてのリマインダがリセットされます。

良い解決策:あなたは、いくつかの分析のための電力BIを使用したい場合はDocumentDB、MongoDBは、カサンドラまたはAzureのSQLにデータを格納する独自の実装でデフォルトのKvsActorStateProviderをオーバーライドします。

関連する問題