Akka负载均衡调度程序配置

3
我已经在src/main/resources中创建了一个名为application.conf的文件,内容如下:
balancing-dispatcher {
  type = BalancingDispatcher
  executor = "thread-pool-executor"
}

文件里面没有别的内容。

通过使用Akka TestKit创建尝试使用dispatcher的新Actor时,我收到了以下错误信息:

[WARN] [04/13/2013 21:55:28.007] [default-akka.actor.default-dispatcher-2] [Dispatchers] Dispatcher [balancing-dispatcher] not configured, using default-dispatcher

我的程序现在能够正确运行,尽管只使用了一个线程。

此外,我打算将我的程序打包成一个库。Akka文档指出:

If you are writing an Akka application, keep you configuration in application.conf at
the root of the class path. If you are writing an Akka-based library, keep its 
configuration in reference.conf at the root of the JAR file.

我已经尝试了这两种方法,但都没有成功。有什么想法吗?
1个回答

2
由于找不到你的application.conf,我只能假设你的src/main/resources不在你的构建路径中(如果不知道你用什么工具来构建,就不能再发表评论了)。
还有一件小事:为什么要在里面使用"thread-pool-executor"?我们发现默认的"fork-join-executor"更容易扩展。
你关于一个线程的评论表明你只创建了一个Actor;使用BalancingDispatcher并不能自动创建更多的Actor,你必须以某种方式告诉Akka这样做(例如手动创建该Actor的多个实例或通过Router)。
关于reference.confapplication.conf的问题更多地涉及设置的性质。如果你的库希望从配置中获取自己的设置,则默认值应该放在reference.conf中;这是设计概念,并且是这个文件总是被隐式合并的原因。默认值应该只在那个文件中,而不是在代码中。

它是我的构建路径的一部分,因为我可以通过系统资源访问它。例如println(getClass()。getResource(“/ reference.conf”))正确列出了文件。我在src / test / resources中添加了一个重复的文件,但问题仍然存在。我还尝试将文件更改为akka {actor {balancing-dispatcher ...}}。我找不到带有自定义调度程序的示例.conf文件在akka-samples中,是否有地方可以下载执行此操作的示例项目?请注意,我还生成了一组Actor。 - Simon Todd
我可以建议您在akka-user ML上发布所有细节吗?您似乎有一些特殊的问题,很难在StackOverflow上进行调试。 - Roland Kuhn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接