공용 클래스 가입자를 처리하는 가입자는 이제 두 항목이 동일한 구조 이름 (. 예 : foo는)하지만, 다른 유형이 있다고 가정 UntypedActor {Akka : 여러 주제를
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"메시지를 수신했는지 어떻게 알 수 있습니까?
감사합니다. 그러나 답변을 완전히받지 못했습니다. 가입자가 하나 이상의 주제에 가입 할 수 있습니까? – PhiberOptixz
확실히. 사실 아주 일반적입니다. 액터로 메시지를 가져 오는 추가 수단을 만듭니다. 나는 매우 큰 액터 기반 시스템을 가지고 있으며, 몇몇 배우는 여러 소스에서 생성 된 메시지를 구독하는 여러 구독을 가지고 있습니다. 저는 실제로 배우 제작자마다 주제를 제안하고 소비자들이 듣고 자하는 것을 결정하게 할 것입니다. 메시지를 처리하고 싶지 않으면 메시지를 처리되지 않은 메시지 (즉, 데드 레터)로 보내기보다는 메시지를 사용하도록하십시오. –
감사합니다. 나는이 주제에 익숙하지 않다. 1) ActorRef를 주제 이름이나 나쁜 디자인으로 사용할 수 있습니까? 2) 특정 주제 이름이 이미 전체 클러스터에서 사용되는지 여부를 확인하는 방법이 있습니까? 3) 가입자가 2 개의 주제에 가입하고 있다고 가정하면 두 주제가 동일한 유형을 게시하고 있다고 가정합니다. 정보/메시지/개체에 대한 메시지를 수신하면 메시지가 어떤 주제에서 왔는지 가입자가 어떻게 알 수 있습니까? – PhiberOptixz