Scala、Akka、Lagom、Play、Reactive 和微服务

Scala, Akka, Lagom, Play, Reactive and Microservices

我一直想用 Scala 创建微服务。稍后我们可能还需要一些网页。

  1. 就微服务或 REST HTTP 而言,什么是响应式编程?
  2. Play、Lagom 和 Akka 之间的关系(如果有的话)是什么?都是用来做微服务的吗?
  3. Play 是被动的吗?
  4. 微服务可以为动态网页提供服务吗?还是我需要为此单独申请?
  5. 我用 ReactJS 做了一些工作。这适合图片中的任何地方吗?

请帮忙

  1. 这个问题有点太宽泛了,无法在这里回答。但是 Akka 的创建者 Jonas Bonér 在他的免费电子书“Reactive Microservices Architecture”中探索了微服务和响应式系统之间的关系,你为什么不先读一读呢。
  2. Akka 是 library/tookit,它更底层,不会像框架那样指导您使用某些模式。 Play 和 Lagom 都是框架,在一定程度上规定了一种结构,并为您的应用程序提供更多的架构指导。它们都建立在 Akka 之上。 Lagom 和 Play 之间有很多重叠,例如您可以使用其中任何一个来编写 RESTful HTTP 服务。从历史上看,Play 是 "full stack web framework",包括 HTML 页面的服务器端呈现。 Lagom 更年轻,专为微服务而构建,并且为该领域的典型架构模式和挑战(例如服务查找、服务之间的异步消息传递等)提供了大量内置支持
  3. 是的,绝对是。有关详细信息,请参见例如“What Makes Play Frameworks Fast”?
  4. 有不同的思想流派,有人说服务应该提供自己的服务 UI,其他人会为此提供单独的服务。如果您查看像 Chirper or Auction 这样的 Lagom 示例应用程序,您会发现其中页面的服务器端渲染是由 Play 应用程序完成的,它使用 Lagom 服务作为它们的后端。
  5. 是的,您可以使用 ReactJS 编写客户端应用程序(将 运行 在浏览器中),并使用 Lagom 编写服务器端 and/or Play,没问题。