2016-07-29 5 views
1

私は紺碧のサービスファブリックを初めて使い、ステートフルなサービスの仕組みや状態の管理方法を理解しようとしています。Azureサービスファブリックは信頼できるサービス状態ですか?

のは、これらのレプリカを持つ必要がありステートフルなサービスを言ってみましょう:

  • つのプライマリ
  • 二つの活性二
  • 1アイドル二

ステートフルサービスから呼び出されたオープンな通信エンドポイントを持っていますステートレスサービスの数プライマリレプリカが状態を変更すると、変更は2つのアクティブなセカンダリに複製されます。私は正しいですか?

ステートレスサービスの1つからセカンダリレプリカを呼び出すことも、プライマリレプリカだけが要求を受け入れることができますか?

プライマリレプリカの状態が変更されたときに、セカンダリレプリカを呼び出すことができますか? StateManagerChangedとDictionaryChangedは疲れましたが、プライマリレプリカでのみ呼び出されますか?

また、プライマリレプリカとアクティブセカンダリの間で分割要求をしたいのですか?セカンダリレプリカのために特別にマークされているものを除き、すべてプライマリに移動しますか?

答えて

2

Microsoftのサイトには、これに関する文書がたくさんあります。

しかし基本的には、のように見える:

  • 状態がレプリカの数を介して複製されます。
  • 取引が
  • 状態を複製するために使用されている主な書き込みに責任があるとレプリカ
  • に更新を送信し、主にどちらかの失敗を通じて、ダウンすると効率
  • のためのサービス・ファブリックによって実行されるバッチ処理があり、ロードバランシングまたはアップグレードでは、アクティブなセカンダリの1つが、プライマリが終了するとすぐに引き継ぎます。私のこれまでの経験は、一度プライマリがダウンしようとすると、あなたは状態を保存することができないことを示しています。
  • は、アクティブなセカンダリから読み取るための方法がありますが、私はまだ自分自身

私の知る限り一番下の行は、彼らが失敗すると仮定するサービスを設計することであることを行っていないし、すべてがうまくいきます。プライマリがダウンすると、セカンダリの1つがほぼ即時に引き継ぎます。

関連する問題