【问题标题】:Is there Thrift marshaling / unmarshaling support for Spray?是否有对 Spray 的 Thrift 编组/解组支持?
【发布时间】:2014-02-21 13:17:15
【问题描述】:

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

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

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

【问题讨论】:

  • 真的,对这个问题有什么反对意见?它当然符合堆栈溢出标准。据我所知,它似乎没有重复另一个问题。

标签: scala thrift spray thrift-protocol


【解决方案1】:

我们是 Thrift/Finagle 的狂热用户,老实说,没有任何东西可以与 Finagle 相比。

使用 Finagle 开箱即用的一些东西:

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

现在关于 Finagle,看看here。与 Finagle 相比,Spray 是一个玩具。 Finagle 是迄今为止最好的分布式服务 Scala 工具:

  • 开箱即用的可扩展集中式日志记录 (Zipkin)
  • 使用 Twitter Server 实现自动管理、指标和更多好东西。
  • 开箱即用的 Zookeeper 和 Mesos 集成
  • 高效的关注点分离(ThriftMux 和处理程序等)
  • 用于高性能工具的大量协议
  • 一种并发模型,在 RPC 请求(无法使用参与者)上轻松胜过 Akka。

我不知道其他 Thrift 选项与 Scala 集成得如此之深,而且没有什么理由离开 Finagle。但是,您必须使用完整的生态系统才能真正从中受益。

【讨论】:

  • 我身边有很多 Finagle 的粉丝,我不是在寻找 Finagle 与 Spray 的比较或说服力。
  • @RandallSchulz 可以理解,底线 Scrooge 是唯一成熟的 Scala Thrift 编译器,但它与 Finagle 深度集成。如果你想要 Spray,你可能会使用 Thrift 到 Java 编译
  • @RandallSchulz 我忽略了主轴。 github.com/foursquare/spindle,看起来不错,可以完成任务。毕竟你可以避免贪吃。
  • 谢谢。我去看看。
猜你喜欢
  • 1970-01-01
  • 2015-07-26
  • 1970-01-01
  • 2021-11-15
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-06
相关资源
最近更新 更多