首先了解一下可用性战术的目标:可用性战术将会组织错误发展为故障,或者至少能够把错误的影响限制在一定范围内,从而是系统恢复成为可能。
上面是使用了一些官方的话来说明了可用性战术的目标,接下来说一下我对可用性战术的目标的理解。
我认为,可用性战术的目标就是尽一切可能让运行的程序不会出错,或者说如果出错也不要让使用者看出来,在这样的基础上,程序通过各种方式,让其自己回归正常运行的轨道。
说完可用性战术的目标,就该谈谈使用怎样的方法去达到这个目的了。
课程中讲到了三个方法,一是错误检测:用来检测故障的某种类型的健康监视;二是自动恢复:
检测到故障时某种类型的恢复;三错误预防:阻止错误演变为故障。然而我把他们这三点归结为一句话:有则改之,无则加勉。其实,事实也正是如此,有错就要改正,防止酿成大错,无则加勉,就是实时检查自己,是否有出错的地方。
说完理论上的东西,我来结合我的代码谈一下,可用性战术在我代码中的实现,再有就是我代码中目前应该完善的东西。
首先说一下错误检测,这一点不论我们多不专业,我相信多多少少的会在代码中有所涉及,就像我们连接数据库是,常常用到的try和catch就是一种异常捕获,更是一种错误检测机制,通过它我们可以知道数据库是否成功连接,如果没有能成功连接,会给我们抛出异常信息,让我们可以更快的去解决问题,然而课程中讲到的信号/响应还有心跳什么的,由于本人理解尚浅,在本程序中尚未实现。
接下来说一下自动恢复,这一点由于热词分析就是一个数据可视化展示,所以目前本人能考虑到的自动恢复,就是在遇到问题时刷新页面,进行恢复,虽然本Web应用是使用的本地服务器进行的数据加载,但应该考虑到部署到远端服务器时遇到的访问量超载时,应该进行友好化的错误提示信息,并在条件允许时进行自动修复或者重新引入,自动恢复这一部分,应该是本Web程序欠缺的,再有就是数据库如果连接失败或者前端展示与后端处理连接失败,进行一定程度的修复或者重新连接,这也是应该考虑到的部分。
关于自动恢复这一部分,有检测和修复再有就是重新引入,关于重新引入还是比较好理解的,就是状态的同步和回滚,而检测和修复在这一部分,本人还是不太能理解其实现的手段和相应的实战方法。
最后就是可用性战术的错误预防,其实这一点理论方面还是比较好理解的,就好比如果要进行可视化展示,但在展示之前部分数据没有成功传递过来,这时候如果依然进行数据展示,那么带来的一定会是数据展示效果不佳,甚至会造成展示界面瘫痪,而在此之前,如果对传递到前端的数据进行一个检测数据是否完整,就会将这个错误扼杀在萌芽状态,进而也就不会出现后来的错误,或者说是故障,上边这些就是我理解的错误预防。
整体来讲,可用性战略在我的代码体现的并不是很多,也就是在错误检测和错误预防上稍有体现,由于本人对自动恢复这一部分理解和掌握的并不是很到位,所以这也造成了我代码上的缺陷吧。
来源:https://www.cnblogs.com/hwh000/p/12389989.html