2016-03-26 5 views
2

クラスタ内でpub/subパターンを使用しようとしています。 これに関する文書は非常に貧弱です。Akka.Net(C#)クラスタ内のすべてのアクタにメッセージを公開

私が探しているシナリオは: 1.アクターがイベントを購読しています。 2.コード内の任意の場所で、アクターを選択せず​​に、アクターシステム内のこのイベントのすべてのサブスクライバーにメッセージをパブリッシュします。

「既存の」ドキュメントから、これを行う方法は以下を使用しています。 DistributedPubSub.Get(Context.System).Mediator;

しかし、メディエータを開始すると、「関連」例外が発生します。

  1. 私には何が欠けていますか?
  2. 誰かがデモを教えてくれますか?

おかげ

+0

デフォルトシリアライザとしてAkka.Serialization.Wireを使用していますか?実際の例は[examplesセクション](https://github.com/akkadotnet/akka.net/tree/dev/src/examples/Cluster/ClusterTools)にあります。 – Horusiath

+0

こんにちは、返信いただきありがとうございます。はい私はシリアライザとしてワイヤを使用しています。提供されたリンクはpub/subを実装していません。 –

答えて

1

あなたが本当にクラスタ内の各ノードすべて役者に同じメッセージを送信するために探していますか?

私はAkka.NETを使い慣れていますが、これについては、クラスターのゴシップを聞いて参加ノードについて学び、おそらくそうでなければ個々のアクターのレコードを記録する俳優を作成しようとします含まれているアクターのための個々のノードを照会する方法を見つける。一度、これらの俳優への参照を持っていれば、彼らにメッセージを送るだけで十分です。

クラスター内のすべてのアクターを検出することを心配することなく、各ノードの一部としてアクターが指定されている(おそらく、ルーターからノードに1:1配備されている)すべての地元の俳優。おそらく、これらのアクターへの参照は、照会されたときに提供されるか、またはこのノードがローカルアクターにメッセージをブロードキャストするためのプロキシ/ゲートウェイとして機能することができます。

一般に、ルータの背後にあるノードについて話している場合、ルートに意図された効果を得るためにブロードキャストメッセージでメッセージをラップすることができるように見えます。

関連する問題