是否可以将Lagom应用程序部署为独立运行的jar或Docker容器?
如果是的话,怎么办?
最佳答案
是的,可以将Lagom应用程序部署为独立的JAR / Docker容器。为此,您可以按照以下步骤。
application.conf
。同样,禁用Lagom的ConfigSessionProvider
并回退到akka-persistence-cassandra
中提供的application.conf
,它使用在接触点中列出的端点列表。您的Cassandra配置应该看起来像这样-cassandra.default {
## list the contact points here
contact-points = ["127.0.0.1"]
## override Lagom’s ServiceLocator-based ConfigSessionProvider
session-provider = akka.persistence.cassandra.ConfigSessionProvider
}
cassandra-journal {
contact-points = ${cassandra.default.contact-points}
session-provider = ${cassandra.default.session-provider}
}
cassandra-snapshot-store {
contact-points = ${cassandra.default.contact-points}
session-provider = ${cassandra.default.session-provider}
}
lagom.persistence.read-side.cassandra {
contact-points = ${cassandra.default.contact-points}
session-provider = ${cassandra.default.session-provider}
}
lagom.broker.kafka {
service-name = ""
brokers = "127.0.0.1:9092"
client {
default {
failure-exponential-backoff {
min = 3s
max = 30s
random-factor = 0.2
}
}
producer = ${lagom.broker.kafka.client.default}
producer.role = ""
consumer {
failure-exponential-backoff = ${lagom.broker.kafka.client.default.failure-exponential-backoff}
offset-buffer = 100
batching-size = 20
batching-interval = 5 seconds
}
}
}
java -cp
中添加以下行来完成。 akka.cluster.seed-nodes = [
"akka.tcp://MyService@host1:2552",
"akka.tcp://MyService@host2:2552"]
现在,我们知道需要为服务提供哪些配置,让我们看一下部署步骤。由于我们仅使用ojit_code命令,因此我们需要打包服务并运行它。为了简化该过程,我们为其创建了一个shell脚本。
有关完整的示例,您可以参考我们的GitHub repo-Lagom Scala SBT Standalone project。
希望对您有所帮助!