20

Spray 框架 (spray.cc) 似乎是一种使用 Scala 和 Akka 构建 REST 服务的有趣且高效的方式。我来自 Java + Spring 学校,那里的一切都有很好的文档记录、成熟并且有良好的社区支持。

虽然 Spray 玩起来很有趣,但它有其粗糙的边缘。我对在实际应用程序中使用它持怀疑态度。

有人在生产环境中使用过Spray吗?围绕 Spray 的开源社区怎么样?是否可以轻松获得帮助?

更新: Spray 与 BlueEyes (https://github.com/jdegoes/blueeyes) 相比如何?

4

3 回答 3

14

我们在电信中间件应用程序中使用 Spray,我会说 Spray 已准备好生产,并且,

  • 轻量级并与 Akka 无缝集成
  • 可以轻松测试服务(无需启动容器或 Akka 微内核)
  • 与 BlueEyes 相比,有据可查
  • 编组/解组 JSON 简单高效
  • 可以得到spray用户邮件组的支持。

我认为 BlueEyes 没有与 Akka 的无缝集成或良好的文档。不确定它是否可以部署在 Web 容器或 akka 内核中。Spray 的一些功能也是从 BlueEyes 复制而来的。

-杰斯坦

于 2011-09-15T23:13:11.197 回答
10

虽然我们还没有投入生产,但我们正在为新创业公司 Shopolate 使用喷雾剂。到目前为止,我们的测试显示出出色的吞吐量,并且使用它进行开发非常有效。

到目前为止,我们没有发现任何错误。

Spray 论坛上问题的答案很快就会出现,但它仍然是一个起步社区。我发现文档非常完整和清晰。一大优点是底层设计的轻量/优雅,这使得spray源码非常容易掌握和扩展。

迄今为止影响我们的唯一缺点是功能集相对较少,但它正在稳步增加。

我不知道 BlueEyes,所以我无法回答问题的第二部分。

于 2011-09-15T14:41:43.083 回答
4

Spray 是一个非常好的框架,背后有一些非常聪明的人。它为您提供了简单的代码,在功能和并发用户方面都可以很好地扩展。如果你想最终得到一个可读性好的应用程序(良好的结构,很容易找到哪个 url 映射到哪个功能等),Spray 很棒。

不过,并非一切都很好。

与 Akka 的紧密耦合是一把双面剑。对于简单的应用程序,它增加了不必要的复杂性。如果您想在使用 Spray 之前拥抱 Akka,请仔细考虑。

目前,Spray (1.1M4) 的指令文档非常有限,因此您主要靠自己,阅读高级 Scala 代码,摸不着头脑。

到目前为止,向后兼容性还没有被认真对待。升级时希望触及所有代码。这既要归咎于 Akka 和 Scala 本身,也应归咎于 Spray。如果你不喜欢这个,可以选择一些枯燥可靠的东西,比如 Spring MVC。

使用的 Scala 语言结构很难正确解析,以至于大多数 IDE 都会丢失,您必须等待实际的编译器完成它的工作,然后才能知道您要面对什么。我之前说过代码很容易阅读,但这只是高级别的。您很容易了解正在发生的事情,但要真正了解正在发生的事情,您的头脑中需要大量的堆栈空间。

我在生产中使用 Spray 并坚持使用它(可能),但这并不是一件容易的事。期待在同等措施中感到沮丧和高兴。

于 2012-10-25T13:56:32.213 回答