小编vas*_*orc的帖子

Lagom 和 Akka 投影的区别

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

其他相似之处

  • 背后是同一家公司
  • 相同的实现原理(通常是类)
  • 相同的模块(Kafka、事件日志记录、持久化等)

一些差异

  • 发布周期
    • Lagom 最后一次发布是在 4 月份,之前是 2020 年 11 月
    • Akka 投影 6 天前,2021 年 5 月之前
  • Akka Projection 是为 Lightbend 的 PAAS 设计的吗?他们在入门指南中 链接到 Akka Platform
    • 对于 Lagom 来说这是可选的
  • 服务端点实现

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

  • 坚持
  • 聚类
  • 分片

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

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

akka lagom

1
推荐指数
1
解决办法
325
查看次数

Java可选:映射到子类或其他超类

我正在尝试用Manning的Manning的“ Akka in Action”重写一个POC项目的scala示例。该项目是用于创建事件和购买票证的小型Http服务器。

我正在演员可以发送影片Optional<Event>给我的时刻RestApi。根据是否存在该值,我应该使用OKelse 完成调用NOT_FOUND

在Scala中,代码段如下所示:

      get {
          // GET /events/:event
          onSuccess(getEvent(event)) {
            _.fold(complete(NotFound))(e => complete(OK, e))
          }
        }
Run Code Online (Sandbox Code Playgroud)

... where getEvent返回一个Option[Event](等于java的Optional<Event>)。这就是我用Java重写的方式:

   get(() -> onSuccess(() -> getEvent(event), eventGetRoute()))

   ...
    //and eventGetRoute() is a function:
    private Function<Optional<Event>, Route> eventGetRoute() {
        return maybeEvent -> maybeEvent.map(event -> complete(OK, event, Jackson.marshaller())).orElseGet(() -> complete(NOT_FOUND));
    }
Run Code Online (Sandbox Code Playgroud)

无法编译:Bad return type in lambda expression: Route cannot be converted to RouteAdapter。较长的(第一个)complete返回a …

java scala optional akka akka-http

0
推荐指数
1
解决办法
172
查看次数

标签 统计

akka ×2

akka-http ×1

java ×1

lagom ×1

optional ×1

scala ×1