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