Akka Routing:收件人演员已经死了

时间:2015-05-19 13:59:52

标签: akka

我正在测试Akka,我在application.conf中有这个配置。

akka.actor.deployment {
    /OperationManagerActor/StatusCheckerActor {
        router = smallest-mailbox-pool
        resizer {
            lower-bound = 1
            upper-bound = 10
            messages-per-resize = 1
        }
    }
}

我得到以下例外。

2015-05-15 10:55:06 INFO RoutedActorRef:74 - Message [akka.routing.ResizablePoolActor$Resize$] from Actor[akka://GroupOperation/user/OperationManagerActor/$b/StatusCheckerActor#444638645] to Actor[akka://GroupOperation/user/OperationManagerActor/$b/StatusCheckerActor#444638645] was not delivered. [1] dead letters encountered. 
This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.

在我的手术完成之前,我的演员死了什么?

1 个答案:

答案 0 :(得分:0)

我使用的初始配置是 Akka Resizers 。使用resizers时,将根据配置自动调整池的大小,因为正常消息将发送给它。 messages-per-resize决定尝试调整大小的频率。

在这种情况下,public int messagesPerResize()是调整大小操作之间的消息数。使用1在每条消息之前调整大小。

因此,我转而使用固定数量的演员(nr-of-instances而非resizer)并解决了问题。

akka.actor.deployment {
        /OperationManagerActor/StatusCheckerActor {
            router = smallest-mailbox-pool
            nr-of-instances = 10
        }
    }