2012-04-12 145 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")