阅读Akka Projection项目时,我无法摆脱这样的感觉:它与Lagom(用于构建基于 Actor 的反应式微服务的框架)具有相同的目的。
其他相似之处:
一些差异:
所有这些更不用说 Akka Serverless,它只是一个 PAAS,负责以下逻辑:
...但依赖于相同的编程和设计模型。
也许更有知识/有更多见解的人可以解释这种关系(如果有的话)是什么?一种产品是否正在逐渐被放弃,转而采用另一种产品(在这种情况下,最好让社区知道)?如果是,这是否是由于 Lightbend 商业模式的转变所致?在做出有关使用这两种产品的技术决策之前,了解这一点非常重要。
Lagom 是 Akka 之上的一个固执己见的框架,特别是围绕集群分片和持久性(以及类似于 Play 的定义 HTTP 交互的方法,以及定义的依赖注入方法)。它包括以ReadSideProcessor一种固执己见的方式从 CQRS 的持久性中投射事件流。
Akka 最近的许多进展部分是基于结合了从 Lagom 学到的一些关于更加固执己见的知识。投影给 Akka 带来了类似但更通用的东西(因为它可以投影,例如来自 Kafka 的事件)ReadSideProcessor;值得注意的是,Projection 很大程度上是 Lagom 核心维护者之一的工作。
我不会真正将 Akka 平台归类为 PaaS,而更多的是“Lightbend 订阅”子集的替代定价/消费模型(Akka 平台基于使用情况,没有太多咨询类型的安排;订阅的定价可以公平地描述为“如果你必须问它要花多少钱,你可能买不起”,但它确实包括来自真正了解 Akka/Lagom/Play 堆栈的团队的一定程度的咨询参与)。否则,Akka 平台就是 Akka。
Akka Serverless 的 PaaS 是 Akka 的底层,但 Akka 特性隐藏在 gRPC API 后面(无论好坏)。就像在 Lagom 中一样,您定义域实体的行为,框架层将其表现为 Akka actor;Akka Serverless 比 Lagom 更严格地分离了这种表现形式(在 Lagom 中剥离 Lagom 饰面以暴露更多 Akka 是很有可能的,有时甚至很有用),但这反过来又允许用任何可以使用 gRPC 的语言来定义行为。
我无法推测未来会怎样。Akka 本身是纯开源的(而且它的贡献者中有不少不是受 Lightbend 雇用的):因此它在某种程度上不受 Lightbend 发生的任何事情的影响(多年来商业附加组件的范围也有所减少,最值得注意的是多区域持久性和裂脑解析器已开源)。Akka 的某些用例可能永远不会在 Akka Serverless 中有效发挥作用。至于 Lagom,它有可能已经实现了其目标,并将被认为是成熟的(加入各种其他微服务优先框架)。
我个人倾向于使用普通 Akka:我会考虑推荐的 Typed API(尤其是 Scala)来提供“恰到好处”的意见,尽管比 Lagom 少。来自 Scala 背景,缺乏 DI 也是值得赞赏的。如果您决定需要商业附加组件并且在 Kubernetes 的公共云中运行,那么 Akka 平台可能值得购买;对于其他部署,订阅可能是值得的。
| 归档时间: |
|
| 查看次数: |
325 次 |
| 最近记录: |