私はConsistentHashingPool
のルータを使用して、この単純なケースではユニークな文字列であるオブジェクトIDに基づいてメッセージを消費するためにその場でアクターを作成しようとしています。ドメインオブジェクトごとにアクターを作成する
私はドメインごとのアクターを集約したいと思います。これは本当に簡単な方法です。
しかし、ハッシュは奇妙なことをしていて、既に別のハッシュマッピング値から生成されたアクターにメッセージを送信しているようです。
ActorSystem.ActorOf(
Props.Create(() => new MyAggergateActor()).WithRouter(
new ConsistentHashingPool(10)
.WithHashMapping(o => (o as MyEvent)?.MyAggregateUniqueId ?? string.Empty)
.WithResizer(new DefaultResizer(1, int.MaxValue))),
"myAggregateRouter");
もnrOfInstances
から値を微調整することは、おそらく唯一の最初のインスタンスのセットにわたって動作し、新しい俳優が生み出されていないされているハッシュを意味するだけでなく、物事を破るように見えますか?私はresizerがここで私を助けるはずだったと思った?
私はAkkaを使い始めたばかりです。
私はakka.clusterとシャーディングが私のアプリケーションにとっては全く残虐ではないと思います。また、しかし、私は正方形の穴に丸いペグを使用することによって賢明にしようとしていたと思う。今私はルータを少し良く理解しています(あなたの返事のおかげで)私は自分のやり方の誤りを認識します。アクターを使ってインスタンスを管理し、メッセージを正しいインスタンスに転送するだけです。 – tigerswithguitars