2012-11-21 110 views
9

Akka的EventBus與遠程演員一起工作嗎?Akka EventBus與遠程演員一起工作嗎?

據我所知,它本身並不支持這一點。任何人都可以確認嗎?

它看起來可能會編碼一些提供類似功能的Actor。例如。啓動訂閱遠程服務器上的EventBus的遠程參與者,並將消息發送回本地參與者以在本地EventBus上重新發布。但寫這個沒有意義,如果它已經被支持的話!

感謝

回答

11

的EventBus本身是本地的,也就是說,事件不會自動轉移到EventBuses在其他系統上,但你可以訂閱你想要的,包括遠程的人任何ActorRef。你只需要在其中生成事件的節點上的演員:

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

那麼你可以看看一上來從遠程主機,並有自己認購。

+0

謝謝羅蘭。這看起來是一個好的解決方案。我沒有想過我能夠註冊一個遠程ActorRef! –