如何为Akka中的每个请求actor分配线程

时间:2014-09-17 06:19:47

标签: multithreading scala akka scala-2.10

我有一个一致的哈希路由器(scala / akka),它将特定的消息类型a分配给一组特定的每请求参与者A,并将消息类型b分配给一组特定的每请求参与者B ...等问题是:我如何将一组参与者A与其自己的线程A以及一组参与者相匹配B到自己的帖子B

希望演员集A不会阻止演员集BB不会阻止A。可悲的是,我的Akka调度员经验缺乏,我的多线程经验也是如此。感谢。

1 个答案:

答案 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演员创建一个调度员。