![](https://i-blog.csdnimg.cn/blog_migrate/c7bf3fe2e35d097c017f525f21b65f96.png)
上一篇文章我们讲述了一个基本的服务器架构图,并描述了这个架构图中每个服务器的功能。不知道看了上一篇文章的朋友有没有发现这个服务器架构图的问题。今天我们就来分析一下这个服务器架构中是否存在问题和不足的地方。
首先我们来看看这个架构图中的监控部分:
上一篇文章中对于监控服务器是这样介绍的:
监控各个服务器的运行情况,当发现服务器运行异常时及时发送报警信息(以邮件或者短信的方式)。
从架构图中可以看出监控服务器会对整个系统中的服务器进行监控。
那么监控服务器又如何能够检查一个服务器是否运行正常呢?
我们知道对于一个服务器来说监控它是否运行正常最有权威、最简单的方式,并不是要它向监控告知自己是否运行正常,而是由和它有相关业务处理逻辑的服务器来进行监控。换句话说,对于业务处理服务器是否运行正常最有发言权的应该是分发服务器。
那么我们就可以将整个的架构重新调整为:
![](https://i-blog.csdnimg.cn/blog_migrate/072dae2a2215c0d49a8960105ce72bf6.png)
业务处理服务器和账号服务器均采用了主服务器和备用服务器的方式。这样用来可以保证当其中一台账号服务器或者业务处理服务器出现问题以后,分发服务器可以根据相关算法切换到另外的一台备用服务器上,保证业务的正常运行。同时分发服务器将出现异常的账号服务器或者业务处理服务器的问题消息发送给监控服务器,监控服务器进行相关报警操作。
上面的话比较绕口,我们来举个例子:
这个例子的前提条件是分发服务器连接着主账号服务器、主业务处理服务器,同时分发服务器正常连接日志服务器、监控服务器以及负载平衡服务器。
(1):当终端用户发送一条业务到分发服务器以后,分发服务器对这条业务进行相关分发(例如它分发到了主业务处理服务器)。
(2):主业务处理服务器在处理这条业务的时候,由于种种原因处理失败,这条业务指令被抛弃掉。或者主业务处理服务器直接退出程序。
(3):分发服务器发送业务以后马上对于这条业务指令进行计时处理。
(4):由于主业务处理服务器已经抛弃了这条业务,则在分发服务器无法在指定时间之内得到主业务处理服务器返回的消息。
(5):分发服务器断开与主业务处理服务器的连接,并和备用业务处理服务器连接。
(6):分发服务器将主业务处理服务器出现异常的消息发送给监控服务器。
(7):监控服务器进行汇总报警。
同理我们对账号服务器也进行了相应的处理。
那么其它服务器应该如何处理呢?这个可否请大家自己来考虑呢?
本文转自狗窝博客51CTO博客,原文链接http://blog.51cto.com/fxh7622/843032如需转载请自行联系原作者
fxh7622