针对高性能服务器存在一些最基本的要求,现总结如下:

服务器基本要求
1)满足大量请求并发的使用场景;
2)业务逻辑需要与网络操作解除耦合关系;
3)自保护的能力,发生大量请求,导致已经超出服务框架的处理能力时,仍然能够坚强的提供服务;
4)服务自调整的能力,框架能够更具当前系统的请求量,能够拉起更多业务处理进程(线程);
5)服务容错能力,服务处理过程中出现异常,导致服务异常退出,能够自动拉起新的服务,继续处理后续的请求;

框架的总体架构图

总体逻辑架构设计 总体框架和基本思路_总体逻辑架构设计

核心模块介绍

1)监控进程
a)负责监控代理进程与业务进程的状态,出现代理进程死亡或者业务进程死亡时,监控进程负责重新拉起新的进程继续后续的业务请求;
b)负责维持业务进程组中业务进程的数量,监控进程会统计代理进程发送给业务进程的请求数量,以及当前业务进程组已经处理的请求数量,当已发送请求树立大于 已处理请求的数量时,监控进程会负责拉起更多的业务进程处理业务请求数据;
2)代理进程
a)负责接受外部网络的连接请求以及发送的数据包,同时将从外部接受的网络数据包发送给业务处理进程;
b)负责向外部网络发送服务响应包,接受业务进程回复的数据,发送给外部的网络请求发送方;
c)负责网络框架的自我保护,代理进程统计当前系统中正在处理的请求个数(已接受数据包-已处理的数据包),检测是否已经超过系统已经设定的最大请求处理的阈值,结果反映超过了当前系统的负载处理能力,则直接拒绝新的业务处理请求,直至系统当前的负载低于系统设计的负载能力,才继续接受处理后续的业务请求树立;
d)负责发送代理进程状态信息、代理进程已接受、已发送的数据给监控进程;
3)业务进程组
a)负责接受代理进程发送的请求数据包,根据业务特性进行具体的业务逻辑的处理,最后向代理进程发送处理完成之后的数据包;
b)负责具体业务逻辑的实现;
c)负责发送业务进程的状态信息、业务处理数据等给监控进程;

采用这种框架最大的优点在于:将外部网络收发包,全部放到代理进程,与业务逻辑相关的处理操作,全部放到业务处理进程中。在业务处理过程中,由于各种原因导致的业务服务不稳定,只会影响当前正在处理的请求,而不至于影响服务的整体稳定性,确保将对用户造成的损害控制在非常小的范围之内,不至于给大范围内的用户带来产品体验上的影响。