【问题标题】:Dividing microservices in Lagom在 Lagom 中划分微服务
【发布时间】:2017-11-13 23:33:39
【问题描述】:

Lagom 默认为每个微服务创建两个模块 - API 和实现。

是否可以将一个微服务划分为 3+ 个模块?

【问题讨论】:

    标签: microservices lagom


    【解决方案1】:

    当然。您可以像处理任何其他 Java 或 Scala 项目一样执行此操作:创建一个子项目,该子项目是包含在您的服务中的内部库。

    查看Online Auction Java 示例 Lagom 项目的示例。具体来说,securitytools 子项目。这些使用build.sbt 中的sbt dependsOn 方法包含在其他服务中。

    例如:

    lazy val itemApi = (project in file("item-api"))
      .settings(commonSettings: _*)
      .settings(
        version := "1.0-SNAPSHOT",
        libraryDependencies ++= Seq(
          lagomJavadslApi,
          lombok
        )
      )
      .dependsOn(security, tools)
    

    在这种情况下,API 项目依赖于其他库,但您可以对实现项目执行相同的操作,以使用 API 不需要的库。注意,实现项目也依赖于其对应的API,所以API的任何依赖都会被实现继承。

    【讨论】:

    • 如果我想将实现拆分为两部分,例如 item-impl 和 item-impl2,该怎么办?这可能吗?如果是的话,这有意义吗?
    • 我不确定这是否有意义。你想达到什么目的?
    • 这个想法背后的人想将实现分成两部分,因此他想知道是否可以这样划分。
    • 这两部分会作为两个独立的服务运行吗?
    • 一个项目是服务,另一个是另一个服务使用的“库”,如上所述。它与任何 Java webapp 都非常相似:一个项目是可部署的 war 文件,它会根据需要将其他项目作为依赖项拉入。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 2017-09-01
    • 2017-12-14
    • 1970-01-01
    • 2021-01-03
    相关资源
    最近更新 更多