技术,互联网,eLearning …

Twitter的RPC框架:Finagle

今天在google reader上无意中看到了twitter开源出来的RPC框架Finagle项目。简单看了介绍,立刻引起了我的兴趣,一是Finagle提供了RPC服务器端和客户端所需的众多成熟的功能,另外则是Finagle是用我所喜欢的scala语言写的。

Finagle基于Netty,支持众多rpc调用方式,包括request-response, streaming  和 pipelining;同时也提供对于保持状态的支持。

客户端特性

  • Connection Pooling
  • Load Balancing
  • Failure Detection
  • Failover/Retry
  • Distributed Tracing (a la Dapper)
  • Service Discovery (e.g., via Zookeeper)
  • Rich Statistics
  • Native OpenSSL bindings
  • Sharding

服务器端特性

  • Backpressure (to defend against abusive clients)
  • Service Registration (e.g., via Zookeeper)
  • Native OpenSSL bindings

支持的协议

  • HTTP
  • Streaming HTTP (Comet)
  • Thrift
  • Memcached/Kestrel
返回顶部