Web服务器:Mongrel2
jopen
11年前
Mongrel2是一个基于ZeroMQ,与应用、语言和网络体系结构无关的Web服务器,专注于现代浏览器技术。Mongrel2支持 17种语言和平台, HTTP, Flash sockets, WebSockets, Long Polling, 和许多方法来部署。
基本架构是:
a、非阻塞IO
b、通过libtask实现event IO和每Connection一个coroutine
c、和Mongrel一样用Ragel实现HTTP协议解析
d、将Request编码为JSON或TNetString发送到ZeroMQ
e、ZeroMQ的客户端作为Handler接收Request进行处理
f、Handler将响应写回ZeroMQ
g、Mongrel2将Response写回给Http Connection
h、这整个过程又是通过Ragel管理状态机来实现的