パブリッククラス加入者がUntypedActor {アッカ:Subscriberは
public Subscriber() {
ActorRef mediator =
DistributedPubSub.get(getContext().system()).mediator();
// subscribe to the topic named "content"
mediator.tell(new DistributedPubSubMediator.Subscribe("content", getSelf()),
getSelf());
mediator.tell(new DistributedPubSubMediator.Subscribe("content_2", getSelf()),
getSelf());
}
public void onReceive(Object msg) {
if (msg instanceof String)
System.out.println("Message received: " + msg);
else if (msg instanceof DistributedPubSubMediator.SubscribeAck)
System.out.println("subscribing");
else
unhandled(msg);
}
}
を拡張する複数のトピックを扱う今トピックが同じ構造体名(例えばFOO)を有するが、異なるタイプの両方と仮定する。この場合、サブスクライバはどのトピックから "foo"メッセージを受信したかを知ることができますか?
ありがとうございますが、私はあなたの答えを完全に得られませんでした。購読者が1つ以上のトピックに登録することは可能ですか? – PhiberOptixz
ああ間違いなく。実際にはよくあることです。アクターにメッセージを受け取るための追加手段を作成するだけです。私は非常に大規模な俳優ベースのシステムを持っており、いくつかの俳優はいくつかの情報源によって作成されたメッセージを購読するいくつかの購読を持っています。私は、実際には、俳優の制作者ごとにトピックを提案し、消費者が聞きたいことを決めることができます。あなたがメッセージを処理したくない場合は、メッセージをundandledに送るのではなく、メッセージを消費するようにしてください。 –
ありがとうございます。私はこのトピックのものに新しいです。 1)ActorRefをトピック名またはその悪いデザインとして使用できますか? 2)特定のトピック名が既にクラスタ全体で使用されているかどうかを知る方法はありますか?3)質問者が2つのトピックを購読していると仮定して、両方のトピックが同じタイプを公開していると仮定します情報/メッセージ/オブジェクトのうち、メッセージがどのトピックから来たのかを加入者がどのように知るか。 – PhiberOptixz