2012-04-12 118 views
2

我想配置Akka使用遠程演員與redis耐用郵箱,如下所示。Akka與遠程演員和持久郵箱

common.conf文件:

akka { 
    actor { 
     mailbox { 
      redis { 
       hostname = "127.0.0.1" 
       port = 6379 
       } 
     } 
    provider = "akka.remote.RemoteActorRefProvider" } 

    remote {netty {hostname = "127.0.0.1" }} 
} 

和我的application.conf文件:

calculatorActor {include "common"} 
remotecreation { 
include "common" 
akka { 
    actor { 
     deployment { 
     /advancedCalculator { 
      router = "round-robin" 
      nr-of-instances = 200 
      target { 
      nodes = ["akka://[email protected]:2552"] 
      } 

     } 
     } 
    } 
    remote.netty.port = 2554 
    } 
} 

這配置從阿卡採樣的遠程的。當我運行應用程序時,我沒有看到任何連接到了redis端(耐用郵箱!)。 Redis日誌僅包含:

0 clients connected (0 slaves) 
+0

只是一個簡單的問題,因爲你已經問過這個。如果兩個遠程參與者使用相同的Redis實例,那麼他們的名稱是否相同,是否共享該郵箱? – 2015-09-14 13:19:17

回答

5

您必須指定具有正確郵箱類型的調度程序。

從文檔:

my-dispatcher { 
    mailbox-type = akka.actor.mailbox.RedisBasedMailboxType 
} 

,然後用此調度程序創建的演員:

val myActor = system.actorOf(Props[MyActor].withDispatcher("my-dispatcher"), name = "myactor")