线上问题处理相关思考
如何对待问题
1. 心态- 保持平常心, 不慌乱
2. 观现象、找本质、寻求帮助
3. 耐心-仔细分析, 不急躁
4. 积累-日常知识储备
预防问题:
流程方面: 1. 明确需求 2. 充分自测 3. code review 4. QA测试 5. 线上回归
研发规范: 1. 代码规范 2. 日志规范 3. 依赖规范 4.数据库规范 5. 分支规范
详细设计: 1. 业务、数据监控 2. 线程池、异步化 3. 缓存、索引 4. 分布式锁 5.熔断、降级、压测
上线流程: 1. 低峰期变更 2. 先线下检验 3. 做好回滚预案 4. 观察指标变化 5. 适当增加降级开关
发现问题:
1. 监控告警: 业务指标、技术指标
2. 自我意识: 注重细节,多思考为什么
3. 业务反馈: 用户投诉,内部反馈
响应问题:
1. 保留现场
2. 提供信息
3. 恢复服务: 禁用节点、重启、服务回归、扩容、数据回滚、功能降级
4. 双重确认: 业务正常。指标是否正常, 数据是否正常
5. 故障通告: 周知
定位问题
1. 是什么: 知识储备: java, cs基础,存储,中间件,基础设施,安全知识
2. 方法: 日志监控法、模拟法、检索法、求助法