MapleStory

监控与故障管理(3)

错误恢复模式(参考书籍Patterns For Fault Tolerant Software第6章):
1.故障隔离(Quarantine)
对故障的服务或者设备进行隔离,例如代理其提供的服务
2.集中恢复(Concentrated Recovery)
对重要恢复有显著的用户提示,避免误操作导致无法恢复的错误
3.Error Handler
错误处理器,例如UncautghtExceptionHandler
4.重启
重启进程,进程组或系统
5.回滚
返回进程、系统执行路径的前一个状态,当然,错误可能还会再次发生
6.放通
忽略掉错误
7.返回参考点
例如进程崩溃,进行了重启
8.有限次数重试
例如网络访问超时,再次发起请求
9.主备切换
10.检查点
周期保存进程或系统状态,对于单进程比较容易,但对于进程组或整机而言,需要选择一个时机进行状态保存。
当然,对于有依赖的进程,可以选择通过一系列依赖调用来进行保存。并且,保存的内容要恰好满足状态恢复的要求。
这就要求设计上把状态数据与其他数据区分开来。
11.数据重置
清除用户数据
以上恢复的方式是不是很眼熟,例如模式2,10在微软的Windows上都有对应的服务。
大部分编程语言都会提供Exception Handler的机制。
对于Android而言,模式2、4、7、11也有对应的机制或服务。

容错模式(参考书籍Patterns For Fault Tolerant Software第7章):
恢复模式会改变当前系统的状态,而容错模式保持当前系统状态而缓解因为故障带来的影响。
例如对于请求过载型可以采用以下模式
1.队列保持当前请求
2.负载均衡
3.丢弃部分请求
对于联网应用来说对于网络数据的校验也是一种容错模式。

Comments