注意: 不幸的是,这个问题已关闭,但我正在努力维护它,以防其他人提出同样的问题。
我一直在寻找一个很好的解决方案来在 Scala 中开发一种介于移动设备和现有 Web 服务之间的服务。
当前可行的选项列表是:
那里可能有更多选择。一个人如何决定使用哪一个?一个好的 Scala 中间件选择的特点是什么(请原谅双关语;-)。一方面,我想选择 Akka,因为它是 TypeSafe Scala 堆栈的一部分,但另一方面,像 Finagle 这样的东西具有丰富的库集,并且使管道变得如此简单。喷雾看起来不错且易于使用。
任何建议、见解或经验将不胜感激。我敢肯定,外面的人一定对其中一些有一些经验,他们不会介意分享。
更新:
我希望重新提出这个问题。对这个问题的一个好的回答将帮助新的 Scalateers 避免相关的陷阱。
更新 2:
这些是我提出这个问题后的亲身经历:
Finagle - 我在一个项目中使用了 Finagle,它坚如磐石。
Spray - 在我的最新项目中,我正在使用 Spray,我非常高兴。最新版本是基于 Akka 2 构建的,您可以直接使用 Spray-can 库运行它,从而无需 Web 服务器。Spray 是一组库,而不是一个框架,并且非常模块化。Learn about Spray: REST on Akka 视频提供了一个很好的概述,Cakesolutions 上的这个博客展示了一个非常好的开发方法和架构。
更新 3:
生活节奏很快。如果你不时不时停下来看看周围,你可能会错过它。-费里斯·布勒
这些天来,选择变得更简单了。在我看来,Spray 赢得了这场战斗。它正在被集成到 Akka中,成为下一个 Akka HTTP。我现在已经在多个项目中使用 Spray,老实说,它是我遇到过的最棒且支持最好的软件。
这并不能回答最初的问题,但至少可以说明为什么在大多数情况下 Spray 似乎是最佳选择。它非常灵活、无阻塞且非常稳定。它有客户端和服务器端的库和一个很棒的测试工具包。此外,查看这些统计数据以了解性能:Web 框架基准