2017-11-04 7 views
1

私は、メモリー内の状態を追跡するが、派生データのみを含む非常に単純なAkka.NETシステムを持っています。したがって、どのアクタも起動時にバックエンドデータベースから最新の状態をロードし、メッセージの受信を開始しそこから状態を維持することができます。だから、私は俳優に失敗させ、いつでもプロセスを再開させることができます。それは自分自身を再建するでしょう。 しかし、私は複数のノード(主にメモリ要件)を走りたいと思っています。要求に応じてノードの数を増減したいと思います。ダウンタイムなしで新しいバージョンをリリースするため。 これを達成するためのクラスタリングの最も軽量な設定(永続性の観点から)は何でしょうか?永続性を持たないクラスタリングを実行できますか?永続性を本当に必要としないときにAkka.NETクラスタを設定するにはどうすればいいですか?

答えて

2

これではない単一の質問なので、私はそれらを一つずつ答えてみましょう:

  1. だから私はちょうど俳優が失敗してみましょうと私はをいつでもプロセスを再起動することができます - はい、しかしこと、覚えておいてくださいプロセスのハードリセットは、正常なシャットダウンよりもはるかに高価です。分散システムでは、ノードが停止している場合は、以前にノードの障害検出を要求するよりも、ノードの残りのノードに通信する方が良いです。これはノードの障害検出の一部であり、分)。
  2. 要求に応じてノード数を増減したい - これはクラスタの標準動作です。どの機能セットを使用するかによって、Akka.NETの場合、クラスタサイズの上限を指定する必要が生じることがあります。
  3. また、ダウンタイムなしで新しいバージョンをリリースします。 - クラスタ機能の大部分は、いわゆる役割を使用して特定のノードのセットにスコープできます。各ノードは、それが提供するサービスを使用することができ、他のノードが機能を必要とするかどうかを検出する役割のセットを持つことができます。そのため、バージョニングのようなものにはロールを使用できます。
  4. 持続性のないクラスタリングを実行できますか? - これはデフォルトの設定です(Akkaでは、クラスタノードは永続的なバックエンドを使用する必要はありません)。
+1

この詳細な回答ありがとうございます。あなたは私をたくさん助けてくれました。 –

関連する問題