Spray是否有Thrift marshaling/unmarshaling支持?

Ran*_*ulz 3 scala thrift thrift-protocol spray

我的组织选择采用Thrift消息传递作为整合客户和服务的通用语言.我们所有的服务都是用Scala编写的(或将被编写),而我们的客户端则是用其他语言编写的.

目前(据我所知)Scrooge是Scala唯一的Thrift IDL编译器,它以Finagle为目标.我想选择在Spray上构建服务.

如果有的话,我可以选择使用现成的(开源)软件吗?

fla*_*ian 5

我们是狂热的Thrift/Finagle用户,可以诚实地说,没有任何东西可以与Finagle相提并论.

你在Finagle开箱即用的一些东西:

  • 使用Scrooge自动编译服务和​​客户端
  • 与Java和Scala的数据结构集成(再次Scrooge)
  • 能够将Thrift依赖项添加到项目中.(Scrooge将为jar提取和编译IDL等).
  • 你有maven-finagle-thrift插件,这是Scrooge的Maven风格.

现在关于Finagle,看看这里.与Finagle相比,Spray是一种玩具.到目前为止,Finagle是分布式服务的最佳Scala工具:

  • 可扩展的集中式日志开箱即用(Zipkin)
  • 使用Twitter Server自动管理,指标和更多好东西.
  • 开箱即用的Zookeeper和Mesos集成
  • 高效分离关注点(ThriftMux和处理程序等)
  • 多种高性能工具协议
  • 一种并发模型,在RPC请求(不能使用actor)的情况下很容易胜过Akka.

我不知道与Scala如此密切融合的其他Thrift选项,没有理由走出Finagle.但是,您必须使用完整的生态系统才能真正从中受益.

  • 我周围有很多Finagle粉丝,我不是在寻找Finagle vs. Spray的比较或说服力. (2认同)