我想对这个愚蠢的问题表示歉意。我试图在Google和Stack Overflow中寻找答案,但似乎找不到我想要的东西。
今天晚上我一直在尝试使用Java DSL和Akka 2.6.4编写我的第一个Actor。除了令人震惊的框架冗长和大量使用继承之外,其他所有优点都不错:)我可以理解为什么Scala是Akka的首选语言。
话虽这么说,我想下一步并开始在演员中使用Hazelcast。 Hazelcast群集作为单独的服务运行,我想将ActorSystem的缓存地址传递给ActorSystem,以便Actor可以使用它。
我停下来问自己,在Akka中管理应用程序配置的正确方法是什么?我创建了一个简单的application.conf
文件,如下所示:
akka {
loglevel = "INFO"
}
gateway {
hazelcast.address = "localhost:5467"
}
并且我将配置传递给ActorSystem
,如下所示:
Config config = ConfigFactory.load();
ActorSystem<Event> system = ActorSystem.create(Gateway.create(), "gateway", config.getConfig("gateway"));
并且似乎一切正常。现在我的问题是:
hazelcast.address
变量?谢谢大家!
首先,配置被馈送到ActorSystem
的方式有错误:
ActorSystem<Event> system = ActorSystem.create(Gateway.create(), "gateway", config);
第二,actor可以使用以下simple语句:
String hazelcastAddress = context.getSystem().settings().config().getString("gateway.hazelcast.address");