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

