阅读Akka Projection项目时,我无法摆脱这样的感觉:它与Lagom(用于构建基于 Actor 的反应式微服务的框架)具有相同的目的。
其他相似之处:
一些差异:
所有这些更不用说 Akka Serverless,它只是一个 PAAS,负责以下逻辑:
...但依赖于相同的编程和设计模型。
也许更有知识/有更多见解的人可以解释这种关系(如果有的话)是什么?一种产品是否正在逐渐被放弃,转而采用另一种产品(在这种情况下,最好让社区知道)?如果是,这是否是由于 Lightbend 商业模式的转变所致?在做出有关使用这两种产品的技术决策之前,了解这一点非常重要。
我正在尝试用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 …