1

阅读Akka Projection项目,我无法摆脱它与Lagom(构建基于 Actor 的反应式微服务的框架)的目的相同的感觉。

其他相似之处

  • 他们背后的同一家公司
  • 相同的实现原则(通常是类)
  • 相同的模块(Kafka、Event Journalization、Persistence 等)

一些差异

  • 发布周期
    • Lagom 于 2020 年 11 月发布了最后一个版本
    • Akka Projection 6 天前,在此之前的 2021 年 5 月
  • Akka Projection 是为 Lightbend 的 PAAS 设计的?他们在开始指南中链接到 Akka 平台
    • 这对于 Lagom 是可选的
  • 服务端点实现

所有这一切,更不用说 Akka Serverless,它只是一个 PAAS,它负责以下逻辑:

  • 坚持
  • 聚类
  • 分片

...但依赖于相同的编程和设计模型。

也许更有知识/有更多见解的人可以解释这种关系(如果有的话)?一种产品是否逐渐被另一种产品抛弃(在这种情况下,最好让社区知道)?如果是,这是由于 Lightbend 商业模式的转变吗?在做出关于使用这两种产品中的任何一种的技术决策之前,了解这一点很重要。

4

1 回答 1

6

Lagom 是 Akka 之上的一个自以为是的框架,尤其是围绕集群分片和持久性(以及一种类似于 Play 定义 HTTP 交互的方法,以及一种定义的依赖注入方法)。它以ReadSideProcessor一种自以为是的方式包括从 CQRS 的持久性中投射事件流。

Akka 的许多最新进展部分是基于从 Lagom 那里学到的一些关于更加固执己见的知识。ReadSideProcessor投影给Akka带来了一些类似但更普遍的东西(因为它可以投影,例如来自 Kafka 的事件) ;值得注意的是,Projection 主要是 Lagom 的核心维护者之一的工作。

我不会真正将 Akka 平台归类为 PaaS,但更多的是“Lightbend 订阅”子集的替代定价/消费模型(Akka 平台是基于使用的,没有咨询类型的安排;订阅的定价可以公平地描述为“如果您不得不询问它的成本,您可能负担不起”,但它确实包括来自真正了解 Akka/Lagom/Play 堆栈的团队的某种程度的咨询参与)。否则 Akka 平台就是 Akka。

Akka Serverless 的 PaaS 在底层是 Akka,但 Akka 的本质隐藏在 gRPC API 后面(无论好坏)。与在 Lagom 中一样,您正在定义域实体的行为,并且框架层将其显示为 Akka 参与者;Akka Serverless 比 Lagom 更严格地分离了这种表现形式(在 Lagom 中剥离 Lagom 单板以暴露更多 Akka 是很有可能甚至有时甚至有用的),但这反过来又允许用任何可以说 gRPC 的语言定义行为。

我无法推测未来会怎样。Akka 本身是纯开源的(并且有不少贡献者没有被 Lightbend 雇用):因此它在某种程度上不受 Lightbend 发生的任何影响(商业附加组件的范围多年来也有所减少,最明显的是多区域持久性和开源的裂脑解析器)。Akka 的一些用例可能永远不会在 Akka Serverless 中有效使用。至于 Lagom,它可能已经实现了它的目标并被认为是成熟的(加入了各种其他微服务优先框架)。

我个人倾向于使用 vanilla Akka:我会考虑推荐的 Typed API(尤其是在 Scala 中)以提供“恰到好处”的意见,尽管比 Lagom 少。来自 Scala 背景,缺乏 DI 也值得赞赏。如果您决定想要商业插件并在 Kubernetes 上的公共云中运行,那么 Akka 平台可能值得购买;对于其他部署,订阅可能是值得的。

于 2021-08-25T22:35:42.920 回答