一个网站要有好的稳定性,必须在架构设计阶段就做长远考虑,就像建房子要先打好基础一样,否则楼建得越高越危险。
建设高稳定性的架构必须注意以下几点
避免单点: 高可用架构设计的第一条就是要避免单点,从概率出发来 ,无论是机器还是人,没有什么东西是不会犯错的, 避免某个完整的环节成为单点是架构设计的原则但是,在某些场景中,有些功能必须放在同一个应用中,例如统一登录、 网关 、安全过滤等 ,此时要保证尽 按照人群来划分,不要在逻辑上出现单点;或者尽 把服务拆成组件迁到不同的端上执行,例如,可以把安全服务作为 个模块集成 Nginx 或者应用机器中,而不是把它做成一个远程服务接口。
分组隔离: 把应用拆得更细一点,不同的功能模块做成单独的分组,每个分组占用一部分机器集群,这样可以做到服务分组隔离,避免不太重要的分组对重要分组的 现在非常流行的微服务就是一种非常好的分组隔离的实践。
异步化: 在系统设计中要让尽可能多的远程调用异步化,这 是一项重要原则很多时候会因为一个不太重要的功能的强依赖拖垮了整个应用,所以要尽量把不太重要的依赖改成异步调用,避免影响主调用链路的稳定性。
异地容灾 :考虑到很多不可抗力因素 影响,我 需要设计网站的 地容灾甚至全球部署策略,这些不可抗力的事件往往会影响网站的整个架构,必须做长远打算。