T31训练营笔记(13)系统健壮性设计

本文探讨了代码评审的重要性和实施方法,强调了系统健壮性与鲁棒性的概念,并提供了实现健壮性的策略,包括负载均衡、容灾、数据备份等。此外,介绍了面向失败的架构思维,以及混沌工程在生产环境中的应用,以增强系统的稳定性和可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 代码评审
1.1 代码评审作用
熵减的过程、团队成长、提升代码规范度、提升代码质量
1.2 如何做CR
统一的编码与设计规范
完整的技术架构说明与示例
不定期的Review会议
小项目10天/次,大项目15天/次,前期可以密集一些,后续考虑1月/次

2. 健壮性与鲁棒性
2.1 含义
异常情况、特殊环境、超限情况,依然能够稳定运行
2.2 健壮性度量
(1)架构:负载均衡、容灾能力
(2)代码:参数校验、异常处理、分支覆盖
(3)环境:混沌工程、异地多活

3. 如何构建健壮性的系统
3.1 负载均衡
(1)作用:防止服务或数据热点问题的出现,使得集群内的所有服务器的负载水位在同一个水平线上
(2)算法:轮询、随机、IP哈希、最小连接数
3.2 容灾
限流、降级、熔断、灾备
3.3 数据健壮性
逻辑删除、主备准实时备份、定时本地冷备份、定时云端离线备份
3.4 代码健壮性
(1)POJO 属性使用保障类型、POJO 属性不设置默认值、DO 属性类型与数据库字段匹配、getter/setter 不增加业务逻辑、POJO 不同时存在 xxx 属性的 isXxx() 和 getXxx() 方法、构造方法无业务逻辑
(2)异常处理
(3)封装:是一种对象功能内聚的表现形式,主要是被封装的组件、类、方法的影响半径尽可能小

4. 面向失败的架构思维
4.1 场景
网络抖动、服务超时、弱点断电、洪峰流量
4.2 防范风险方法
(1)任何环境都不可信赖
(2)任何外部依赖接口都可能出错
(3)任何异常都要响应和处理
(4)任何行为都要记录日志
(5)任何系统上线都要严酷的测试
4.3 测试健壮性
功能测试、性能测试、稳定性测试、混沌工程
4.4 分支覆盖
代码覆盖率、条件判定覆盖、路径覆盖

5. 混沌工程
5.1 开发混沌工程实验原则
建立稳定状态的假设、多样化现实世界事件、在生产环境实验、持续自动化运行实验、最小化“爆炸半径”
5.2 流程
(1)准备:流量录制,环境搭建
(2)执行:开启流量,注入故障
(3)检查:执行 SOP,监控数据
(4)恢复:验证,恢复故障

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值