在生产中运行Lagom

问题描述 投票:2回答:1

我正在建立生产中的Lagom应用程序。 我曾尝试与Lightbend联系以获取ConductR许可证,但很久以前没有收到任何回音。 因此,现在我正在寻找一种替代方法。 我有多个问题。

由于应用程序的规模目前很小,我认为使用静态服务定位器现在对我有效(向其他替代方案开放)。 另外,我将MySQL用作事件存储,而不是Cassandra的默认配置(与该线程无关的原因)。

为了禁止Cassandra和Lagom的服务定位器,我在build.sbt中添加了以下几行:

lagomCassandraEnabled in ThisBuild := false

我还使用service1-impl模块将以下内容添加到了application.conf中。

lagom.services {
    service1 = "http://0.0.0.0:8080"
}

对于开发环境,我已经能够在tmux会话中使用sbt runAll成功运行我的应用程序。 使用此配置,在默认的8000端口上没有运行服务定位器,但是我可以在8080端口上单独访问service1。 (不确定这是否是预期的行为。注释?)

我运行sbt dist创建一个zip文件,然后解压缩并在其中运行可执行文件。 有趣的是,该zip文件是在service1-impl文件夹中创建的。 因此,如果我有多个模块(服务?),sbt dist会为每个服务创建单独的zip文件吗?

当我运行通过sbt dist创建的可执行文件时,它会尝试连接到Cassandra,并启动服务定位器,并忽略我添加的静态服务定位器配置。 基本上,它似乎忽略了我添加到build.sbt的行。 谁能解释这个?

最后,如果我要在集群中有2个服务,即service1和service2,以及2个节点,其中节点1运行service1,节点2运行这两个服务,那么我的静态服务定位符在application.conf中看起来如何,并且由于每个该服务将具有自己的application.conf,我是否必须在所有application.confs中复制相同的配置以及静态服务定位符?

会是这样吗?

lagom.services {
    service1 = "http://0.0.0.0:8080"
    service1 = "http://1.2.3.4:8080"
    service2 = "http://1.2.3.4:8081"
}

由于每个特定角色都将在一个节点上生成,因此它将如何与该服务定位器配置一起工作?

另外,我不想在生产中的tmux会话中运行它。 在生产中最终运行此代码的最佳方法是什么?

java akka actor microservices lagom
1个回答
5
投票

您可以立即免费在开发人员模式下开始使用ConductR,而无需联系销售人员。 有关说明,请访问: https : //www.lightbend.com/product/conductr/developer。您确实需要注册(阅读:提供有效的电子邮件)并接受TnC访问该页面。 今天,沙盒可免费用于开发人员模式,因此您可以快速轻松地查看ConductR是否适合您。

对于生产而言,我很高兴地说,如果您注册w / Lightbend.com(同上)并生成“免费层”许可证密钥,那么很快您将能够在生产中部署多达3个节点。

Lagom对微服务持坚定态度。 如果项目未共享这些意见,则总会有Akka和Play。 这种观点的部分原因是部署应该很容易。 好的工具会让人感觉“正确”。 当然,您可以随意部署应用程序,但要准备好在标记的路径越远的地方产生更多的polyfill。

关于服务查找,ConductR提供了HTTP服务查找的重定向,以与Play WS上的“ withFollowRedirects”一起使用[1]关于sbt dist ,每个子项目服务都将是一个程序包。 您可以在Chirper示例[2]中看到这一点,在该示例中sbt dist生成chirp-impl.zip,friend-impl.zip,activity-stream-impl等,如Chirper顶级build.sbt文件中所示。 由于ConductR是干净利落的路径,因此您可以参考它的工作方式,以便更好地了解如何用您自己的方式替换Lagom的部署方式。 那是Lagom最了解的界面。 除了核心已经是OSS以外,ConductR的大部分内容都是OSS,因此,如果文档没有涵盖某些内容,可以尝试github。

披露:我是一个ConductRing光弯机。

  1. http://conductr.lightbend.com/docs/1.1.x/ResolvingServices

  2. [email protected]:lagom /活化剂lagom-java的chirper.git

© www.soinside.com 2019 - 2024. All rights reserved.