【发布时间】:2012-02-09 12:11:44
【问题描述】:
注意: 很遗憾,这个问题已关闭,但我正在努力维护它,以防其他人提出同样的问题。
我一直在寻找一个很好的解决方案来在 Scala 中开发一种介于移动设备和现有网络服务之间的服务。
当前可行的选项列表是:
可能还有更多选择。一个人如何决定使用哪一个?一个好的 Scala 中间件选择的特点是什么(请原谅双关语;-)。一方面,我想选择 Akka,因为它是 TypeSafe Scala 堆栈的一部分,但另一方面,像 Finagle 这样的东西具有丰富的库集,并且使管道变得如此简单。喷雾看起来不错,使用简单。
我们将不胜感激任何建议、见解或经验。我敢肯定,有些人一定对其中一些有一些经验,他们不会介意分享。
更新:
我希望重新提出这个问题。对这个问题的一个好的回答将有助于新的 Scalateers 避免相关的陷阱。
更新 2:
这些是我提出这个问题后的亲身经历:
Finagle - 我在一个项目中使用了 Finagle,它坚如磐石。
Spray - 在我的最新项目中,我正在使用 Spray,我非常高兴。最新版本是基于 Akka 2 构建的,您可以直接使用 Spray-can 库运行它,从而无需 Web 服务器。 Spray 是一组库,而不是一个框架,并且非常模块化。 Learn about Spray: REST on Akka video 提供了一个很好的概述,this blog at Cakesolutions 展示了一个非常好的开发方法和架构。
更新 3:
生活节奏很快。如果你不时不时停下来看看周围,你可能会错过它。 - 摩天轮
这些天来,选择变得更简单了。在我看来,Spray 赢得了这场战斗。 integrated into Akka 将成为下一个 Akka HTTP。我现在已经在多个项目中使用 Spray,老实说,它是我遇到过的最棒的软件。
这并没有回答最初的问题,但至少说明了为什么在大多数情况下 Spray 似乎是最佳选择。它非常灵活、无阻塞且非常稳定。它有客户端和服务器端的库和一个很棒的测试工具包。另外,请查看这些统计数据以了解性能:Web Framework Benchmarks
【问题讨论】:
-
感谢您添加 finagle @ErnestFriedman-Hill。如果可以,我很乐意为您解释为什么用户将此问题标记为不具建设性。我还没有在生产中使用过上述任何系统,我花了一周的时间来审查它们和其他系统,并且希望对其他体验有见解。
-
基本上是因为 StackOverflow 不是为讨论问题而设计的。一个好的 SO 问题有一个具体的、可验证的答案,一个不可辩论的答案。你的问题是一个非常受人尊敬的问题,但这不是 SO 想要看到的。以下是常见问题解答中的三个示例,您不应该在这里问:“您最喜欢的______是什么?” “我用______代表______,你用什么?” “我很好奇其他人是否和我一样。”您的问题似乎是这三个反例的混合体。
-
@ErnestFriedman-Hill 我可能错了,但也许这是一个可以验证答案的问题。当我问这个问题时,我最终使用了 Finagle。该项目结束得很好,并且像发条一样运行,但我仍然想知道基于 Akka 的服务是否会更好。我仍然不知道答案,真的希望你们能考虑重新打开它。
-
一个关于如何使这样的问题有点有效的提示,问:“这些框架之间有什么区别?”