我正在使用 akka 集群并尝试为不同的环境设置两个不同的配置。
- 一个用于我的本地设置,我将使用种子节点来启动我的应用程序
- 两个用于我的生产 Kubernetes 设置。
我尝试了来自 Akka 的 Config Docs,其中提到了 conf 文件中的-Dconfig.resource=/dev.conf
and include application
,但它仍然不断要求akka.discovery.method
inapplication.conf
下面是我的两个配置文件:
应用程序.conf
akka {
log-config-on-start = off
stdout-loglevel = "DEBUG"
loglevel = "INFO"
loggers = ["akka.event.slf4j.Slf4jLogger"]
logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
log-dead-letters = on
log-dead-letters-during-shutdown = off
actor {
provider = "cluster"
}
cluster {
down-removal-margin = 7s
sharding {
least-shard-allocation-strategy {
rebalance-threshold = 1
max-simultaneous-rebalance = 5
}
}
}
}
akka.http.server.idle-timeout = 900s
akka.http.client.idle-timeout = 900s
应用程序-seed.conf
include "application"
akka {
actor {
provider = "cluster"
serializers {
jackson-json = "akka.serialization.jackson.JacksonJsonSerializer"
}
}
discovery.method = config
remote.artery {
canonical {
hostname = "127.0.0.1"
port = 2551
}
}
cluster {
seed-nodes = [
"akka://MyCluster@127.0.0.1:2551"]
}
}
当我使用参数运行代码时:
-D config.resource=/application-seed.conf
它向我抛出了错误:
中未配置默认服务发现实现
akka.discovery.method
。确保将此设置配置为您的首选实现,例如 application.conf 中的“akka-dns”(来自 akka-discovery 模块)。
以前有人做过这种设置吗?