独立部署 Lagom Framework jar/docker

Deploy Lagom Framework as standalone jar/docker

是否可以将 Lagom 应用程序部署为独立的 运行 jar 或 Docker 容器? 如果是,怎么做?

是的,可以将 Lagom 应用程序部署为独立的 JAR/Docker 容器。为此,您可以按照以下步骤操作。

  1. 配置 Cassandra 联系点:如果您计划为您的服务使用动态服务定位,但需要静态定位 Cassandra,这在生产中很明显,那么修改 application.conf 你的服务。此外,禁用 Lagom 的 ConfigSessionProvider 并退回到 akka-persistence-cassandra 中提供的那个,它使用接触点中列出的端点列表。您的 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}
}
  1. 提供 Kafka Broker 设置(如果您使用的是 Kafka Message Broker):如果您打算使用 Lagom 的流媒体服务,下一步是提供 Kafka 代理设置。为此,你需要修改你的服务的application.conf,如果Kafka服务是静态定位的,也就是你的服务只充当消费者的时候,否则你不需要进行如下配置。
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
    }
  }
}
  1. 创建Akka集群: 最后,我们需要自己创建一个Akka集群。由于我们没有使用 ConductR,因此我们需要自己实施加入。这可以通过在 application.conf.
  2. 中添加以下行来完成
akka.cluster.seed-nodes = [
  "akka.tcp://MyService@host1:2552",
  "akka.tcp://MyService@host2:2552"]

现在,我们知道我们需要为我们的服务提供哪些配置,让我们来看看部署的步骤。由于我们只使用 java -cp 命令,我们需要打包我们的服务并 运行 它。为了简化流程,我们为其创建了一个 shell 脚本。

有关完整示例,您可以参考我们的 GitHub 存储库 - Lagom Scala SBT Standalone project.

希望对您有所帮助!