2017-05-13 18 views
2

私はActorモデルを初めて使っています。私は自分のプロジェクトのActorモデルを実装しようと考えていますので、Akka.Netについて読んで始めました。ドキュメンテーションから、Actorの状態はActorの存続期間中存続しているようです。アクターモデル(Akka.net)に状態が保存されていますか?

1.状態は保存されていますか?ラムで?もしそうなら、私たちはラムのスペースを使い果たしませんか?

2.私は何百万のレコードを持っているときにアクターモデルを実装しますか?百万のレコードを持つ顧客テーブルのActorを実装したいとします。どのように私は顧客を読み込むでしょうか?

答えて

2

デフォルトでは、すべてのアクタの状態はメモリに直接表されます。それを永続化することもできます(イベントソーシングを使用するシナリオでは、Akka.Persistenceライブラリがあります)。

  1. アクタのアクターはかなり軽量です。中程度のハードウェアには、数百万のアクティブなアクターが簡単に存在することができます。もちろん、メモリ不足の可能性があります。この場合、現在使用されていないアクターを処分することができます。まだ十分でない場合は、Akkaクラスターを複数のマシンに分散してスピンアップさせることを決定します。
  2. 通常、すべてのテーブルレコードを俳優として投影するのは意味がありません。より有用なアプローチはDDD(Domain Driven Design)の原則を適用することです。アクターはその方法論から知られているAggregate Rootsの概念に非常によく対応します。俳優のロード戦略の場合、通常、人々は必要なときにそれらをゆっくりと作成し、何らかの不活動期間の後に処分することが多い(したがって、その目標の俳優は、次の数分間または数時間の間使用されます)。
+0

詳細な回答ありがとうございました! – user3587180

関連する問題