Akka配置Dispatcher(二)
Akka中有四种Dispatcher,请看这里http://my.oschina.net/xinxingegeya/blog/367320
下面是一个示例配置文件,名字是akka默认加载的位于classpath下的文件:application.conf,如下,
MyDispatcherExample {
defaultDispatcher {
type = Dispatcher
executor = "fork-join-executor"
fork-join-executor {
parallelism-min = 2
parallelism-factor = 2.0
parallelism-max = 6
}
}
defaultDispatcher1 {
type = Dispatcher
executor = "thread-pool-executor"
thread-pool-executor {
core-pool-size-min = 1
core-pool-size-factor = 2.0
core-pool-size-max = 6
}
}
pinnedDispatcher {
type = PinnedDispatcher
executor = "thread-pool-executor"
thread-pool-executor {
core-pool-size-min = 2
core-pool-size-factor = 2.0
core-pool-size-max = 10
}
throughput = 5
}
balancingDispatcher {
type = BalancingDispatcher
executor = "thread-pool-executor"
thread-pool-executor {
core-pool-size-min = 1
core-pool-size-factor = 2.0
core-pool-size-max = 2
}
throughput = 5
}
balancingDispatcher1 {
type = BalancingDispatcher
executor = "fork-join-executor"
fork-join-executor {
parallelism-min = 2
parallelism-factor = 2.0
parallelism-max = 6
}
throughput = 5
}
CallingThreadDispatcher {
type = akka.testkit.CallingThreadDispatcherConfigurator
}
}
关于fork-join-executor,也就是Fork/Join并发框架,在这里
http://my.oschina.net/xinxingegeya/blog/370716
如何加载这个配置,如下代码,
/**
* Hello world!
*/
public class Example1 {
public static void main(String[] args) {
/**
* MyDispatcherExample节点下的配置项
*/
ActorSystem _system = ActorSystem.create("default-dispatcher",
ConfigFactory.load().getConfig("MyDispatcherExample"));
/**
* 加载defaultDispatcher下的配置项
*/
ActorRef actor = _system.actorOf(new Props(MsgEchoActor.class)
.withDispatcher("defaultDispatcher").withRouter(
new RoundRobinRouter(5)));
for (int i = 0; i < 25; i++) {
actor.tell(i);
}
_system.shutdown();
}
}
=================END=================