我有一个一致的哈希路由器(scala / akka),它将特定的消息类型a
分配给一组特定的每请求参与者A
,并将消息类型b
分配给一组特定的每请求参与者B
...等问题是:我如何将一组参与者A
与其自己的线程A
以及一组参与者相匹配B
到自己的帖子B
?
希望演员集A
不会阻止演员集B
而B
不会阻止A
。可悲的是,我的Akka调度员经验缺乏,我的多线程经验也是如此。感谢。
答案 0 :(得分:2)
您需要为A类和B类的演员配置调度程序。
有关详细信息,请参阅http://doc.akka.io/docs/akka/snapshot/scala/dispatchers.html,但执行此操作的一个示例是通过在创建actor时指定特定的Dispatch来执行此操作。只需将withDispatcher("dispatcher-actortype-A")
附加到您的actor的Props对象,然后在您的akka配置文件中添加:
dispatcher-actortype-A {
# Dispatcher is the name of the event-based dispatcher
type = Dispatcher
# What kind of ExecutionService to use
executor = "thread-pool-executor"
# Configuration for the thread pool
thread-pool-executor {
# minimum number of threads to cap factor-based core number to
core-pool-size-min = 2
# No of core threads ... ceil(available processors * factor)
core-pool-size-factor = 2.0
# maximum number of threads to cap factor-based number to
core-pool-size-max = 10
}
# Process 100 messages before moving to the next actor
throughput = 100
}
显然,你也想为B演员创建一个调度员。