系统稳定,如何监控和保护进程安全
在开始本讲之前,我们先了解一个特点,在前端因为某些用户的特殊性,导致的逻辑 Bug 会造成这个用户服务异常,但是在服务端如果没有做好异常保护,因为某个用户的特殊操作可能会导致整个进程退出,从而无法提供服务,因此如何做好监控和进程安全保护就显得尤为重要。
本讲我将介绍在 Node.js 代码层面应该如何降低异常出现的概率,其次会介绍当出现现网问题时,如何及时发现并通知相应的开发去处理。
Node.js 进程安全
这里我们主要讲解为什么 Node.js 的进程安全和健康状况很重要。
进程安全很重要
这里举一个例子,想象一下我们家庭电网的安全保护策略,一般情况下家庭都会有短路跳闸设施,其次插座或者电器也设有短路保护功能。
如果电器没有安全保护措施,就会直接导致家庭电网跳闸整体不可用,但是由于有了跳闸保护,至少我们可以重启,从而服务正常,但是这期间一家人由于一个人的原因,导致了比如说弟弟无法继续看书了、爸爸无法继续洗热水澡了、妈妈无法继续做饭了。
再说 Node.js,由于一个用户的异常访问或者数据异常,加上没有做好异常处理和安全保护,直接导致了整个 Node.js 服务重启了,从而中断了所有人的请求,用户体验非常差。
接下来我们再往上升级,如果家庭电网没有跳闸短路保护措施,将直接导致上一层电网异常重启,从而影响到其他居民,这样影响面又更大了,从而导致的问题也更严重了。
这就是和 Node.js 一样的原理,因此我们要尽可能地在最小处进行安全保护,也就是我们所说的在每个插电设备上尽量装有短路保护设备一样,这样就最小地影响用户,比如这个用户的异常数据只影响了该用户,而不会因为这个用户影响到整个服务的用户。