1
我想使用遠程參與者,這是一個自然的,在編譯時不知道的服務器,所以這個參與者只能在客戶端定義。可能嗎?是否需要在服務器上有遠程scala actor的代碼?
我想使用遠程參與者,這是一個自然的,在編譯時不知道的服務器,所以這個參與者只能在客戶端定義。可能嗎?是否需要在服務器上有遠程scala actor的代碼?
通常不需要。
通過角色代理訪問遠程參與者,這與具體參與者的實施無關。只要與演員合作的方式是發送消息(因此,避免直接調用演員方法,不幸的是,標準Scala演員可能會這樣做,但是,例如,在Akka中不可能有演員和演員參考分離)代理將在大多數情況下爲你工作。
但是,有些情況下,在其他節點上需要actor的字節碼時。例如,當您想要使用郵箱序列化actor時,並將其發送給另一個節點執行。
爲了獲得遠程引用機器 MYMACHINE運行,在端口8000 遠程演員,與名稱 「anActor,在以下 方式使用選擇:
val myRemoteActor = select(Node("myMachine", 8000),'anActor)
從select返回的演員有 type A bstractActor提供 基本相同接口作爲 普通的演員,從而支持 平常郵件發送操作
我感到有點糊塗了,「遺憾的是可能的」,然後「不可能」的阿卡? – 2010-12-11 16:58:20
我是否錯過了Akka中ActorRefs的觀點?我想,其目的是防止調用者直接訪問演員方法。 – 2010-12-11 21:15:29
所以,如果我正確理解你,遠程Actor代碼的正確位置是響應方,Actor將實際工作,但不是請求方,對嗎? – 2010-12-11 23:20:57