Appearance
web系统稳定性建设
单服务维度
- 强弱依赖治理, 针对下游调用做熔断、降级
- 针对上游调用做限流、降级
- 配置合理的超时时间 和 线程池容量
- 异步,提高系统稳定性和响应时间
- 设计阶段
- 冗余设计,确保系统关键组件有冗余,避免单点故障。可以通过负载均衡、集群和多数据中心部署来实现。
- 可扩展性 将系统划分为多个独立的服务,各自负责特定功能,可以独立部署和扩展,减少单个服务故障对整体系统的影响。
- 兼容性设计,包括向前兼容和向后兼容的设计,确保新旧版本之间的平滑过渡。
- 关键服务做巡检。关键数据做对账
- 容灾部署,比如多区部署
- 隔离部署,不同系统隔离,在线系统、离线系统、近实时系统隔离
数据存储
- 读写分离:将数据库的读写操作分开,通过主从复制来分担负载,提高性能和可靠性。
- 分片(Sharding):将数据分散到多个数据库实例中,减少单个实例的压力,提高扩展性。
- 数据定期备份:定期对数据进行备份,确保数据的安全性和可恢复性。
开发阶段
- 代码质量
- CR 形成团队代码规范
- 借助代码扫描工具, 比如 SonarQube 进行代码质量检查
- 持续集成
- 版本管理
- 测试阶段、
- 自动化测试
- 性能测试
- 安全测试
部署阶段
- 持续部署
- 可灰度
- 可回滚
运维阶段
- 实时监控
- 自动报警
- 日志管理
- 容错和恢复
- 自动化故障恢复:配置自动化的故障检测和恢复机制,如服务自动重启、自动切换到备用系统等。
- 灾备方案:制定并定期测试灾难恢复计划,确保在灾难发生时能够快速恢复系统运行。