两个月前基于Netty写了一个web服务器框架。



当时候主要的目的是,朋友托我写个支持web通讯的东西,但是现在websocket又不通用,所以只好在服务器上打心思,基于netty写了一个web通讯框架,可以单机轻松实现上万并发。



后来拿出去吹牛,被人鄙视了,被鄙视的缘由是:通讯框架用netty,协议层用netty,日志层用log4j,JSON层用阿里巴巴的jsonlib………是对现有框架的封装,没有任何“自主知识产权”的东西……







于是,抽了一点时间从0开始写了个web服务器,名称是BSR-半兽人,GIT地址位于    https://github.com/kanmars/bsr.git



其特点如下:



    1、整个服务器采用分模块设计,共有:server,event,http,pipe,demo四个模块



    2、通讯层使用NIO实现,使用注册表机制储存链接上下文



    3、链接分发机制采用reactor反应炉模式,由BossThread分发到注册表中,由WorkerThread线程进行后续处理



    4、工作线程处理采用管道Pipe机制,采用管道序列来实现复杂的处理操作,纵向可扩展,扩展能力优秀



    5、支持三种简单管道:



                EchoPipe,回声管道



                HttpProtocolPipe,HTTP协议解析管道



                HttpResourcePipe,HTTP静态资源处理管道



    6、对管道进行顺序组装,可以生成复杂逻辑



    7、HttpProtocolPipe,HTTP协议解析完全独立实现,不依赖现有框架,实现了较为完整的HTTP报文处理,如request,response,session,cookie等



    8、MainDemo.java中是服务器的启动示例



目前的缺点:



    1、功能较为原始



    2、稳定性有待改善



    3、没有参照现有框架如jetty等的设计



下一步可做的进一步优化:



    1、对MainDemo的启动进程进行优化,优化多线程结构



    2、对服务器Bean实现jmx协议,便于远程控制



    3、实现springmvc的处理管道,使程序具有springmvc功能



    4、完善异常机制,使程序稳定运行



    5、对常用资源进行池化操作











下一次的优化,可能就是用c语言写一个了,我一直对自己的设定,是c+java双精通







但是正如我所说的,编程是一个然并卵的行业。