简单的微服务框架

Simple Microservice framework

有一段时间我一直在寻找一种快速简单的微服务框架解决方案。我对所有 Lightbend 产品和 Scala 都很陌生,但由于它看起来很有趣,我决定尝试一下。

几个问题:

1) 不明白为什么需要新框架Lagom?

如果 play 已经可以给我相同的解决方案(作为微服务)那么为什么还需要另一个框架?

2) 通过 play,我设法非常快速地创建了一个“Hello World”项目,而且部署也非常简单直接(通过 dist)。

我喜欢这样一个事实,我可以将所有内容合并到一个 ZIP 中,然后 运行 通过脚本将其合并。据我了解,在 Lagom 中我需要使用 ConductR。

对于我当前的需求,它看起来像是一个很大的开销。是否有一个简单的为什么要像在游戏中一样部署它?

谢谢大家

Lagom 建立在 Play 之上。 Play 旨在成为通用(异步)Web 框架,而 Lagom 更具体的目标是添加一些 tools/opinions 专注于将您的应用程序部署为微服务。

Lagom 提供的几个示例可帮助您实现微服务风格的架构(Play 没有):-

坚持

例如,它添加的一件事是 API 用于基于 Play 当前提供的持久性支持的基于 CQRS 的持久性 - 这(如果您不知道)是一种模式它通过解耦查询和命令来帮助您实现微服务架构。

容器编排

假设您有一个 Play 应用程序,它有 25 个不同的微服务——这可能是一个保守的数字,即使是相对较小的企业应用程序——您如何管理所有这些 JVM 的 deployment/orchestration?那么容器风靡一时。您如何管理所有这些容器? ConductR 是一种工具,可以减轻该任务的一些痛苦,Lagom 为您提供了 ConductR 的集成工具,使您可以更轻松地将它与您的 Lagom 项目一起使用 - 这是您无法通过 Play 获得的。

我仍然可以用 Play

好的,您可以在 Play 项目中使用大量 SBT 模块来帮助您实现同样的事情,但是您需要选择所需的工具,找出众多可用模块中的哪些是适合的您的项目,根据需要配置和连接它们 - 这是 Lagom 的目标之一 - 将这些决策和配置任务从您身上拿走,这样您就可以专注于编写您的应用程序逻辑。

如果我的应用程序很小,可能只有 5 个服务,那么您可以非常有说服力地争辩说您真的不需要 Lagom(或与此相关的任何其他微服务框架)。但是,如果您的应用程序可能会增长,那么在漫长的 运行.

中,单独玩会花费您更多的时间

在设计微服务时,显然还有更多的考虑因素,但您已经掌握了 Play 与 Lagom 的要点。