3

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

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

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

4

1 回答 1

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 请求(不能使用参与者)上很容易胜过 Akka。

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

于 2014-01-29T16:21:35.540 回答