随着移动互联网的快速普及,越来越多的人进入网络直播行业。在看到网络直播市场的潜力后,各大门户网站开始发力,投入巨资建设。
直播需要使用尽可能少的服务器来承载尽可能多的用户,以节省企业成本。根据直播的应用场景,探讨高并发网络编程技术,研究高并发网络模型和软件架构,理清各I/O类型的能力、局限和区别,分析多进程模型的优点和限制,实现了高并发实时直播系统并应用到企业生产运营中去,为企业节省服务器成本和运维人力。
一、操作系统与网络架构选型
Linux是一套可以自由传播和免费使用的类Unix操作系统,被大多数IT企业广泛使用。它是一种基于POSIX和UNIX的多用户多任务、多线程、多CPU的操作系统,具有稳定可靠、功能强大、安全、价格低廉及开源等优点。
Linux为TCP/IP参考模型提供了良好支持,该模型分为4层:链路层、网络层、传输层和应用层。
链路层处理与电缆的物理接口细节;网络层处理网络中数据包的活动,例如数据包路由;传输层为二台主机中的应用提供端到端通信;应用层负责处理特定应用程序细节。
直播系统是在Linux操作系统下基于TCP/IP参考模型实现的,并使用套接字进行相关编程。套接字是介于应用层和传输层之间的抽象层,它将TCP/IP层的复杂操作抽象为几个简单的接口供调用,实现网络进程通信。
二、I/O模型选择
I/O模型大体划分为阻塞式I/O、非阻