您的位置:首页 > 运维架构 > 网站架构

系统架构健康监测

2009-02-13 22:40 169 查看
事实上无论代码写的多么优秀,各种问题考虑得多么全面,但系统发生故障的可能性还
是存在的,作为模块或者设备的冗余配置,恰当的健康监测是判断模块是否工作正常的基础
架构。
1,命令/响应(ping/echo):
一个构件发出一个命令,并希望预定时间内收到一个审查构件的响应。和心跳方式相比,
它的特点是发出检测命令是由专门的构件完成的。这个解决方案一般用在处理共同完成某项
任务的一组构件内。一般情况下,“探测器”可以放在底层,它向相关软件进程发出命令,
而高层命令发声器向底层探测器发出测量命令。在模块设计的时候,必须包括对于健康探测
器探测命令的响应信息,这种响应应该力求对于各个模块是统一的,同时也要尽可能的简单。
命令/响应机制一般以方法访问的方式工作,这在某些情况下可能是方便的。
健康监测可以远程进行,但更多的情况是在本地进行,和远程探测相比这种方式所需要
的网络带宽比较少。
2,心跳(dead man)计时器:
“心跳”是一种主动检测方案,由被测构件主动发出一个自检结果信息(心跳),由另
一个构件收听这个信息,如果心跳失败,则可以判断这个构件失灵,并通知按照可靠性策略
纠正错误构件。心跳也可以同时传递数据,比如传递上一次交易的日志。心跳一般以事件机
制工作,统一的定时器并不一定是必须的,但如果所有的备测模块按统一时间工作,给可靠
性处理策略将会带来好处。
上述两种情况,被测模块都可以处于不同的进程中。
3,异常:
异常处理是一种最常用的程序内处理方案,当出现异常的时候,异常处理程序将会在同
一个进程中处理相关问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: