1 . 多进程方案:随着客户端的增加,连接成功后,为每个客户端分配一个进程,子进程继承与客户端交互的socket(父进程完成连接,子进程负责业务处理(父进程下发任务))。
2 . 多进程服务器模型,每个普通线程自身accept建立连接,主控线程(线程创建,任务指定,线程回收),多线程同时accpet阻塞等待连接(惊群问题–互斥锁解决),accept加锁。
3 . 主控线程完成网络IO事件监听,某一刻IO监听就绪,向线程池中国呢投递特定任务(根据就绪socket不同,生成不同任务),线程池中完成任务传递,某个线程获取任务处理。(并发能力又IO复用决定,线程池决定服务器业务处理能力)。
反向代理服务器(负载均衡,灾难转移)分布式
线程池:多线程容器
优点:
- 预先创建待用线程,业务抵达,直接有线程可用,无需创建,缩短业务处理周期。
- 线程池中的线程有高重用性,可以反复使用,相比传统的多线程而言,减少了频繁创建和销毁的成本。
- 动态根据任务量和任务需求调整线程中的可用线程数量(对线程的管理和控制)。
构成:任务传递模式(生产者消费者模式),任务容器,线程池阈值(便于线程管理),线程。
设计原则:
- 线程池不能与任务绑定,线程只完成任务传递与执行,任务的实现与线程池五无关。
- 线程池拥有通用的自定义任务接口,可以让用户传递任意类型任务。
线程池中三种线程:
- 生产者线程 :任务投递
- 消费者线程 :任务获取与执行
- 管理者线程:根据线程池阈值,动态调整线程资源
线程池阈值:最大线程阈值 最小线程阈值 当前存活线程 忙线程数量 闲线程数量线程开关
反向代理
反向代理就是通常所说的web服务器加速,它是一种通过在繁忙的web服务器和外部网络之间增加一个高速的web缓冲服务器来降低实际的web服务 器的负载的一种技术。反向代理是针对web服务器提高加速功能,作为代理缓存,它并不是针对浏览器用户,而针对一台或多台特定的web服务器,它可以代理 外部网络对内部网络的访问请求。
负载均衡
使线程池中的每一个进程或服务器群的每一台服务器分配的工作量按照权重或者一定的比例平衡。
灾难转移
若某一台服务器或线程发生了故障 则不会给该处分配任务。