高性能服务器设计——总体框架介绍(转载)

文章了来源:http://blog.csdn.net/jiang1013nan/article/details/17471479

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

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

       框架的总体架构图

        核心模块介绍

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


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

posted @ 2014-12-17 16:36  Walle  阅读(366)  评论(0编辑  收藏  举报