硬件服务器:主机 集群
IBM HP
软件服务器:网络服务器 在后端提供网络功能,逻辑处理,数据处理的程序或者架构等
httpserver django flask
服务器架构:c/s (客户端服务器)
b/s (浏览器服务器)
服务器的组织形式
服务器追求:处理速度快,数据更安全,并发量大
硬件:更高配置,更多主机,集成,分布
软件:程序占有更少资源,更流畅的运行,处理更多的并发
基本的服务器模型
并发:循环并发模式 IO多路复用
循环:单线程程序,循环接收连接或者请求,然后处理,处理后继续循环
缺点:不能同时处理多个客户端的并行,不允许某个客户端长期占有服务器
结构比较简单,适用于UDP程序,要求处理请求可以很快完成
IO多路复用模型:通过同时监控多个IO来达到IO并发的目的
缺点:也是单线程,不能够长期阻塞,不适合处理大量cpu占用高的程序
开销小,比较适合IO密集型的服务端程序
并行服务器:每有一个服务端连接处理,就创建一个新的进程或者线程处理客户端请求,而主进程/线程可以继续接收其他客户端的连接
缺点:资源消耗比较大
客户端需要长期占有服务器的情况
基于fork的多进程并发
多进程并发
相对多进程并发
劣势::
1、可能需要同步互斥机制
2、收到gil的影响
优势:只需要较少的系统资源
实现
threading 模块完成
步骤
1、创建套接字
2、准备客户端连接
3、没当有一个客户端连接进来就创建一个新的进程
4、客户端退出后结束相应线程,关闭客户端套接字