码迷,mamicode.com
首页 > Web开发 > 详细

对netty5支持HTTP协议的代码简析

时间:2016-06-19 20:03:20      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

  前段时间,为提高直播时用户体验,所在事业部计划做一个用户带宽统计系统,用于统计直播时用户终端(客户端、浏览器)定时上报的频道带宽等数据,并根据数据进行各项指标分析,最终采取采取措施提升直播质量。这个任务落在我头上,我先对系统的并发量做了个调查,结果就是系统需要支持10W+每秒的并发量。

  为简化用户终端的开发工作(越复杂就越容易出错),决定使用 HTTP 作为数据上报协议。虽然数据接收系统是个 HTTP 服务器,但显然这并不是个 WEB 应用,因此无需使用 TOMCAT 等提供 WEB 容器。鉴于 netty 的多线程模型以及其对 HTTP 协议的良好支持,最终我决定使用 netty + HTTP1.1 来实现数据接收系统。在未经过任何优化的情况下我对 netty + HTTP1.1 的架构进行了性能测试,并与基于 TOMCAT 的 HTTP 服务进行了对比,结果还是让我非常满意的。(关于性能测试细节后续整理后补上)

  由于种种原因,用户带宽统计系统目前并未进入排期开发阶段,而我也在这段时间对 netty 的 HTTP 支持进行了简单的实践,实现了一些很基础的功能(暂时也不打算实现一个很完善功能的netty HTTP服务端,有兴趣的朋友可以自己去实现更高级的用法),藉以此梳理下 netty 支持 HTTP 协议的源码。

  该服务端基于 netty5 和 HTTP1.1,简单实现以下功能:

  • HTTP GET 请求解析与响应
  • HTTP POST 请求解析与响应,目前提供 application/json、application/x-www-form-urlencoded、multipart/form-data 三种常见 Content-Type 的 message body 解析(可自行扩展)
  • 作为服务端接收浏览器文件上传及保存(multipart/form-data)

 

对netty5支持HTTP协议的代码简析

标签:

原文地址:http://www.cnblogs.com/cyfonly/p/5598614.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!