Да, можно развернуть приложение Lagom в виде отдельного контейнера JAR / Docker.Для этого вы можете выполнить следующие действия.
- Настройка точек контакта Cassandra : Если вы планируете использовать динамическое расположение службы для своей службы, но вам необходимо статически определить местоположение Cassandra, что очевидно в Production, затем измените
application.conf
вашего сервиса.Кроме того, отключите Lagom ConfigSessionProvider
и вернитесь к тому, который указан в akka-persistence-cassandra
, который использует список конечных точек, перечисленных в контактных точках.Ваша конфигурация Cassandra должна выглядеть примерно так:
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
}
}
}
Создание кластера Akka : Наконец, нам нужно создать кластер Akka самостоятельно.Поскольку мы не используем ConductR, нам нужно реализовать присоединение самостоятельно.Это можно сделать, добавив следующие строки в
application.conf
.
akka.cluster.seed-nodes = [
"akka.tcp://MyService@host1:2552",
"akka.tcp://MyService@host2:2552"]
Теперь мы знаем, какие конфигурации нам необходимо предоставить нашему сервису, давайте посмотрим на этапы развертывания.Поскольку мы используем только команду java -cp
, нам нужно упаковать наш сервис и запустить его.Чтобы упростить этот процесс, мы создали для него скрипт оболочки.
Полный пример вы можете найти в нашем репозитории GitHub - Автономный проект Lagom Scala SBT .
Надеюсь, это поможет!