标签:
前段时间,为提高直播时用户体验,所在事业部计划做一个用户带宽统计系统,用于统计直播时用户终端(客户端、浏览器)定时上报的频道带宽等数据,并根据数据进行各项指标分析,最终采取采取措施提升直播质量。这个任务落在我头上,我先对系统的并发量做了个调查,结果就是系统需要支持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://www.cnblogs.com/cyfonly/p/5598614.html