《架构即未来》阅读笔记
今天读了架构即漫谈这本书,总结出以下几点架构原则:
1.N+1设计
要确保任何你所开发的系统在发生故障时,至少有一个冗余的实例。
我们经常能在访问某网站时显示暂停维护,主要原因就是没有实现n+1设计原则,一个实例确实很危险,当这个实例出现不明原因的问题不能对外服务,需要debug的时候,如果优先debug,那当前实例就要暂停服务直到你找到问题为止。如果你直接重启实例恢复服务,就没有事故现场进行debug了。而这时如果有一个冗余的实例,就可以先让冗余的实例对外服务,事故现场的环境也得以保留。
多个实例来做负载均衡也是一种不错的选择。
2.回滚设计
确保系统可以回滚到以前发布过的任何版本。
以前做游戏的时候经常遇到回滚,有时候是数据库回滚,有时候是服务器端回滚,一般都是回滚到上个版本,包括我做过的微信小程序发布后依然可以回滚到上一个版本,这就能保证当前版本发生故障实现回滚版本。
3.禁用设计
能够关闭任何发布的功能。
当一个功能出现严重问题不得不关闭时,如果关闭整个系统代价就有点大了,所有要有单个功能的开关。像商城系统的支付功能就一定要有开关,如果出现比较严重的bug,可以关闭支付而不影响下单。
参考资料:https://www.cnblogs.com/andyidea/p/6294493.html