Facebook开源Proxygen:包含一个HTTP服务器的C++ HTTP库

Facebook今天宣布将开源内部使用的Proxygen,这是一套包含了一个HTTP服务器的C++ HTTP库。Facebook在最近几个月开源了不少项目,其中大部分项目面向移动开发者。不过,今天宣布的项目要更为有趣,因为它面向的是更广大的开发者们。

Facebook在一开始就表示,Proxygen并不试图取代Apache或Nginx等流行的HTTP和代理服务器。Facebook工程师DanielSommermann和Alan Frindell在今天的声明中表示:“这些项目是用C编写的,专注于打造极度灵活的HTTP服务器,虽然提供了很好的性能,但可配置项目太多。相反,我们专注于打造高性能的C++ HTTP框架,搭配合理的默认配置,同时提供易于集成到现有应用中的服务器和客户端代码。”

Proxygen框架允许用户快速设置一个事件驱动型服务器来处理HTTP和SPDY请求。其他项目也很有可能会利用这一代码库来打造自己的网络服务器。

Sommermann和Frindell表示,Proxygen起源于2011年的一个项目,当时该项目是为了编写一个可定制的反向代理负载平衡器。

尽管Facebook可以在HTTP栈使用Apache、Nginx或Varnish,但Sommermann和Frindell表示,自己编写框架可以与Facebook的现有框架和工具(如Apache Thrift)进行更深度的整合。

考虑到Facebook的规模,该团队也在寻求能在现有解决方案之外扩大规模的解决方案,而且Facebook也想在其他工具中复用Proxygen框架。Haystack、HHVM和Facebook的负载平衡器也使用了部分Proxygen框架。

到现在为止,Proxygen已经处理了“数万亿HTTP(S)和SPDY请求”,足见代码的健壮性。