请帮助理解
1) 选择 Akka http 和 Lagom 来构建微服务
2) REST API 和基于 Akka http/Lagom 的微服务之间有什么区别。
谢谢
这是一个非常广泛的问题,但让我给你一些建议。
1) Akka是一个库(或者,正如 Akka 团队所说,一个工具包),而Lagom是一个框架。有什么不同?引用Martin Fowler 的话:
库本质上是一组可以调用的函数,现在通常组织成类。[..]
框架体现了一些抽象设计,内置了更多行为。
如果您知道自己在做什么, Akka 会为您提供编写反应式微服务所需的一切。Lagom在某种程度上告诉您如何编写反应式微服务。例如,它规定了一定的项目结构,并为微服务中的常见模式提供现成的实现,例如服务查找、断路器、异步消息传递,甚至事件溯源和 CQRS。您也可以使用 Akka 完成所有这些工作(事实上,这就是 Lagom 在下面使用的),但如果您自己实现,您最终会实现很多。如果您对 Akka 不是很有经验(您可能没有,否则您不会问这个问题),我建议您给 Lagom 一个机会。
2)微服务是关注一种业务能力,并与其他微服务交互形成功能系统的应用程序。REST是一种用于访问和操作资源的架构风格。这些是完全独立的,你可以在没有 REST 的情况下做微服务,也可以在没有微服务的情况下做 REST。但是您也可以将它们结合起来,即将您的微服务构建为 REST 服务。这种方式,或者更具体地说是基于 HTTP 的 REST 并使用 JSON,对于不仅与其他微服务交互,而且从 Web 前端或任意客户端应用程序调用的面向公众的微服务来说非常常见。所以是的,有区别,实际上它们彼此无关,但是您可以使用 Lagom(或 Akka HTTP)来构建 REST API。