Akka:动态更新ActorSystem配置

时间:2018-08-13 14:12:38

标签: java scala akka

我有一个ActorSystem万岁,有大约3000个儿童演员。我使用对ActorSystem的{​​{1}}调用来创建ActorSystem.apply("system", config);

我的配置保存在应用程序的外部,可以随时更改(请考虑DB用户名/密码等)。

当我的外部配置更改时,如何更新已经运行的ActorSystem的配置?

1 个答案:

答案 0 :(得分:2)

ActorSystem的配置是不可变的,这意味着,如果要更改Akka本身读取和使用的配置,则必须终止ActorSystem并启动新的ActorSystem来拾取更改的配置。没有内置的工具可以做到这一点。

如果这是您自己的演员的配置,则可以让他们从系统配置以外的其他位置读取所需的配置,以便您可以触发以重新加载/解析配置或对特定集合实施协议使您可以通过消息重新配置演员的角色。

在任何一种情况下,您都必须自己实现监视配置的变化,可以通过常规的JDK API进行文件系统监视,也可以基于Alpakka目录更改Source-https://developer.lightbend.com/docs/alpakka/current/file.html#listening-to-changes-in-a-directory