Akka .NET コンシステント ハッシュ ルーターを少し試してみました。ハッシュに使用するキーを指定することはできますが、アクター間でキーを割り当てる方法を決定するのはルーターのようです。
アクター A がタイプ A のメッセージを受け取り、アクター B がタイプ B のメッセージを受け取る、などのようなことをしたかったのですが、一貫したハッシュ ルーターでこれはまったく可能ですか?
Akka .NET コンシステント ハッシュ ルーターを少し試してみました。ハッシュに使用するキーを指定することはできますが、アクター間でキーを割り当てる方法を決定するのはルーターのようです。
アクター A がタイプ A のメッセージを受け取り、アクター B がタイプ B のメッセージを受け取る、などのようなことをしたかったのですが、一貫したハッシュ ルーターでこれはまったく可能ですか?
いいえ、既存のルーターではできません。
EventBus ( Context.System.EventStream.Subscribe(Self, typeof<MyMessage>);
) を使用してアクターを特定のメッセージ タイプにサブスクライブし、呼び出してパブリッシュできsystem.EventStream.Publish(new MyMessage());
ます。この方法で、パブリッシュされたメッセージがすべてのサブスクライバーに送信されます。このアプローチの制限は、単一の ActorSystem のスコープ内でのみ機能することです。
分散パブリッシュ/サブスクライブ シナリオでは、そのようなオプションを公開するAkka.Cluster.Toolsプラグインを使用できます。ただし、この場合、サブスクリプション キーはメッセージ タイプではなく文字列であることに注意してください。