您的位置:首页 > 其它

高性能服务器设计——总体框架介绍

2013-12-21 20:24 316 查看
针对高性能服务器存在一些最基本的要求,现总结如下:

服务器基本要求

1) 满足大量请求并发的使用场景;

2) 业务逻辑需要与网络操作解除耦合关系;

3)自保护的能力,发生大量请求,导致已经超出服务框架的处理能力时,仍然能够坚强的提供服务;

4) 服务自调整的能力,框架能够更具当前系统的请求量,能够拉起更多业务处理进程(线程);

5) 服务容错能力,服务处理过程中出现异常,导致服务异常退出,能够自动拉起新的服务,继续处理后续的请求;

框架的总体架构图



核心模块介绍
1) 监控进程

a) 负责监控代理进程与业务进程的状态,出现代理进程死亡或者业务进程死亡时,监控进程负责重新拉起新的进程继续后续的业务请求;

b) 负责维持业务进程组中业务进程的数量,监控进程会统计代理进程发送给业务进程的请求数量,以及当前业务进程组已经处理的请求数量,当已发送请求树立大于 已处理请求的数量时,监控进程会负责拉起更多的业务进程处理业务请求数据;

2) 代理进程

a) 负责接受外部网络的连接请求以及发送的数据包,同时将从外部接受的网络数据包发送给业务处理进程;

b) 负责向外部网络发送服务响应包,接受业务进程回复的数据,发送给外部的网络请求发送方;

c) 负责网络框架的自我保护,代理进程统计当前系统中正在处理的请求个数(已接受数据包-已处理的数据包),检测是否已经超过系统已经设定的最大请求处理的阈值,结果反映超过了当前系统的负载处理能力,则直接拒绝新的业务处理请求,直至系统当前的负载低于系统设计的负载能力,才继续接受处理后续的业务请求树立;

d) 负责发送代理进程状态信息、代理进程已接受、已发送的数据给监控进程;

3) 业务进程组

a) 负责接受代理进程发送的请求数据包,根据业务特性进行具体的业务逻辑的处理,最后向代理进程发送处理完成之后的数据包;

b) 负责具体业务逻辑的实现;

c) 负责发送业务进程的状态信息、业务处理数据等给监控进程;

采用这种框架最大的优点在于:将外部网络收发包,全部放到代理进程,与业务逻辑相关的处理操作,全部放到业务处理进程中。在业务处理过程中,由于各种原因导致的业务服务不稳定,只会影响当前正在处理的请求,而不至于影响服务的整体稳定性,确保将对用户造成的损害控制在非常小的范围之内,不至于给大范围内的用户带来产品体验上的影响。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: