1. 页面静态化,用户无关的-缓存,用户相关的-异步回填。
适用场景:页面稳定,不会有大变动
2. 分清强弱依赖,
弱依赖:做好降级策略,做好限流
强依赖思考能否通过缓存顶一阵。
3. 开关
多做开关(系统后门),对是否打印日志,是否限流,降级等都做好。通过配置推送实时更改服务状态。
需要对开关有丰富的测试保证不出问题。未测试过的开关禁止在线上使用。
4. 服务docker化
方便水平复制,动态部署
5. 限流
对某些流量在入口限制住(应对流量波峰)
6. 故障演练
6.1 注入异常即可,不必让下游真的异常/故障
6.2 可以的话,在中间件区分流量,只对目标流量模拟故障场景
6.3 故障分类
将故障按几个维度分类:硬件/软件,进程内/进程外,单机/分布式。按照不同的分类设计故障,模拟故障。
7. 压测准确性
压测如果想逼近真实情况,可以将线上流量引到有限的几台机器上,记录响应速度和负载增加的关系。
参考文献: