性能
cloud.tencent.com/developer/a…
读写分离,负载均衡,缓存,异步,并行处理(多线程),批量合并(批量请求等),
扩容:系统扩容包括垂直扩容和水平扩容,增加设备和机器配置
其他: 预先和延后处理(预先:比如网站页面资源的提前加载;延后:比如 Copy On Write),更先进算法和数据结构
性能问题怎么定位
- 机器的cpu 、 内存监控
- pprof
- skywalking
可用性 (高可用)
- 冗余,多副本容灾
- 故障隔离 (服务隔离,数据隔离,接口故障隔离(熔断))
- 降级 限流 熔断
- 监控报警
- 系统解耦 (降低系统中不同部分之间的依赖性,使系统的各个组件能够相对独立地进行开发、维护和演化)
稳定性
-
降发生 (风险预防)
- 开发制度、测试制度、预发和上线流程、线上变更制度
- 架构优化/解耦, 上下游多层防御
- 容量压测
- 监控报警
-
控影响 (止损第一,核心为主)
- 应急预案
- 应急处理流程
可扩展性
- 服务的可扩展性
- Vertical scaling (scale up)
- Horizontal scaling (scale out)
- 代码的可扩展性
- 基类、泛型、设计模式
- 数据库维度
- xx_type 枚举值字段
- 扩展字段
- 二进制字段
- 接口维度
- 设计接口版本号
- 纵横做设计
容灾
- 制定详细的容灾计划: 包括确定业务关键数据和系统,分析潜在的风险和灾难类型,以及确定容灾目标和恢复时间目标(RTO)和恢复点目标(RPO)。
- 定期进行数据备份: 确保关键数据的完整性和可恢复性,可以使用云服务提供商提供的备份服务,也可以选择第三方备份工具或自主开发备份系统来实现。
- 多区域和多可用区部署: 利用云提供商的多区域和多可用区特性,在不同的地理位置和可用区分布关键数据和应用程序的副本,提高数据的冗余性和容灾能力,在一个区域或可用区发生故障时,仍然能够继续提供服务。
- 弹性和自动化: 在云容灾方案中,考虑采用弹性和自动化的部署方式。例如,使用自动化工具进行资源的自动扩展和缩减,实现即使在受损的区域或服务器上也能自动恢复服务。
- 监控和测试: 建立监控系统,定期检查备份和容灾的状态,并及时发现潜在问题。此外,定期进行容灾演练和恢复测试,以验证容灾计划和备份的有效性。
- 第三方服务提供商: 考虑使用专业的第三方容灾和备份服务提供商,他们可以提供更加完善和专业的容灾解决方案,并确保数据的安全性和可用性。