【服务器模型】
【服务器的基本介绍】
-
硬件服务器:
主机 集群 -
生产服务器厂商:
IBM、HP、联想、浪潮 -
软件服务器:
编写的服务端程序,依托于硬件服务器运行,提供给用户一定的软件服务
分类:
webserver—>网络后端程序提供网络请求的后端处理和数据交互
httpserver—>处理HTTP请求、回复http响应
邮箱服务器—>提供邮箱服务
文件服务器—>提供文件的上传下载
功能:
网络连接,逻辑处理,数据的交互,数据的传输,协议的实现 -
模型结构:c/s (客户端服务器模型)
b/s (浏览器服务器模型) -
服务器目标:
处理速度快,数据更安全可靠,并发量大(同时处理更多用户的请求) -
优化:
硬件:更高的配置,集成分布的技术,更好的网络速度,更多的主机,网络安全
软件:程序占有更少的计算机资源,更稳定的运行效果,更流畅的运行速度,采用更合理的技术。处理更高的并发
【基本服务器模型】
- 循环服务器:
单进程程序,循环的接收客户端的请求,处理请求,每处理完一个请求后再去接收处理下一个请求
优点:实现简单,占用系统资源少
缺点:无法同时连接多个客户端,当一个客户端长期占有服务器时会形成其他客户端无法访问的情况
使用情况:任务比较短暂,udp套接字更适合循环 - 并发服务器:
同时能够处理多个客户端的任务请求。
并发可分为IO并发或者多进程多线程并发- IO并发:IO多路复用 协程
优点:资源消耗少,适用于IO类型服务器
缺点:不能监控CPU密集的情况,单线程不能长期阻塞在消息的收发 - 进程、线程的并发:
为每个客户端单独提供一个进程线程,处理客户端请求
优点:客户端可以长期占用服务器
缺点:消耗系统资源较多
- IO并发:IO多路复用 协程
【多进程并发模型】
基于fork的多进程并发:
- 创建套接字 绑定 监听
- 等待接收客户端请求 accept
- 创建子进程处理客户端请求,父进程继续准备接收其他客户端连接
- 客户端退出则子进程结束
示例:
# fork tcp并发