scala - 如何使用 Akka 实现 REST Web 服务?

标签 scala rest akka scalatra

我打算实现一个纯 Akka 支持的基于 REST 的 Web API。我不确定使用喷雾。如果有任何好处,我会考虑使用 Scalatra。基本上我对使用 Scala Actor 模型的并发优势很感兴趣。我不希望 Servlet 容器成为该过程的障碍。

还有什么其他选择?

更新1:
哪个是基于 Akka 后端实现 REST 的更好的前端? - 喷雾、Scalatra 或 Dropwizard 或任何其他?

最佳答案

关于 Akka,需要意识到的重要一点是,它不是一个全有或全无的环境。您可以在很大程度上混合和匹配不同的库来组成对您有意义的系统。例如,我编写了使用 Dropwizard 的应用程序。前端使用 Akka 的后端,没有问题。我也对 Clothesline 做了同样的事情(在 Clojure 中实现,但带有 Scala wrapper )。本周晚些时候,我希望尝试使用 Unfilteredwebsocket implementation坐在 Akka 和 RabbitMQ 管道前面,用于向客户端浏览器提供近乎实时的数据——我特别提到了这个例子,因为未过滤的 websocket impl 位于 Netty 之上而不是 servlet 容器)。

更新 :自从几年前写了这个答案后,我就开始使用 Spray专门用于 Akka 的 RESTful 开发。虽然几乎可以使用任何 JVM REST 库,但 Spray 非常自然地适合 Akka 基于 actor 的模型,并且该库显然已经达到了可以轻松成为默认选择的成熟度。即将作为新的 akka-http 模块将 Spray 集成到 Akka 中清楚地表明了这一点。

关于scala - 如何使用 Akka 实现 REST Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6668999/

相关文章:

rest - 将rest插件与grails项目一起使用

sockets - Akka 远程连接

java - sbt引发[错误]服务器访问错误: Connection refused (Connection refused) url=http://repo. typesafe.com/

scala - List.view 和 LazyList 有什么区别?

scala - map 上的 FlatmapValues

java - 使用它的客户端 API 解析深度嵌套的 elasticsearch 聚合

node.js - 使用 Kubernetes 进行微服务设计 - API 网关、通信、服务发现和数据库问题

python - 用于实时数据的 websocket vs REST API?

java - Scala URLClassLoader 未重新加载类文件

scala - Scala 中 akka actor 系统内的全局变量