2012-11-21 13 views
9

Czy EventBus firmy Akka działa ze zdalnymi aktorami?Czy Akka EventBus działa ze zdalnymi aktorami?

O ile wiem, nie wspiera tego w sposób natywny. Czy ktoś może potwierdzić, proszę?

Wygląda na to, że możliwe jest kodowanie niektórych podmiotów, które zapewniają podobną funkcjonalność. Na przykład. uruchom zdalny aktor, który subskrybuje EventBus na zdalnym serwerze, i wyślij wiadomości z powrotem do lokalnego aktora, aby ponownie opublikować w lokalnym EventBus. Ale nie ma sensu pisać tego, jeśli jest już obsługiwane!

Dzięki

Odpowiedz

11

EventBus sama jest lokalny, co oznacza, że ​​zdarzenia nie są automatycznie przenoszone do EventBuses na innych systemach, ale można subskrybować dowolny ActorRef chcesz, w tym odległych nich. Trzeba tylko aktorem w węźle, gdzie są generowane zdarzenia:

case class Subscribe(clazz: Class[_]) 
system.actorOf(Props(new Actor { 
    def receive = { 
    case Subscribe(c) => 
     context.system.eventStream.subscribe(sender, c) 
    } 
}), "eventer") 

Następnie można spojrzeć w górę, że jeden ze zdalnych hostów i mają bardziej subskrybowane.

+0

Dzięki Roland. To wygląda na dobre rozwiązanie. Nie wyskoczyłem z tego, że będę mógł zarejestrować zdalnego ActorRef! –

Powiązane problemy