- 1. 1淘宝稳定性实践
—— 淘宝-小邪1
- 2. 系统稳定性第一印象2监控
简化系统依赖
增强代码容错能力
增加弱依赖开关
增加强依赖的流控
- 3. 3用户流量固定机房213同城机房容灾
异地机房容灾A为前台应用,强依赖B
B和C为服务应用
ABC和DB都为集群
主DB提供两个机房读写45备库不对外服务提供只读服务
- 4. 机房2故障4切DNS流量
- 5. 机房1故障5切DNS流量切DB
- 6. 机房1恢复6
- 7. 机房3故障7切DNS流量
- 8. 主站整个城市故障8
- 9. 主站机房之间断网9?1、同城多路光纤保证
2、切流量
- 10. 主站机房1的B集群系统故障10A对B的调用自动切换到机房2
- 11. 11所有机房的B系统都发生故障
- 12. 所有机房的B系统故障12如果B系统是核心业务必经路径
等待修复吧
如果是发布引起的
则立即回滚上一个版本
- 13. 主站机房1的C集群系统故障13C的调用自动切换到机房2
- 14. 14所有机房的C系统故障
- 15. 所有机房的C系统故障15模块的线程保护自动启动
有效防止A模块因为调用C超时导致故障
- 16. 模块线程保护(stable switch)A的主线程为jboss的ajp线程共200个
假设给调用B的模块分配最大50个线程
假设给调用C的模块分配最大10个线程
那么C出现故障的时候,C的故障将控制在这堵塞的10个线程里,而不会扩散到其他线程,正常逻辑得以继续16
- 17. stable switch console17
- 18. 机房1的请求流量超过单系统负载181、TDOD (TMD)
2、Stable Switch
- 19. 机房1的请求流量超过单系统负载TDOD (TMD)
利用对机器的负载做出格挡
根据实时收集的信息分析对IP流量进行拦截
Stable Switch
利用线程保护机制,让少量线程用来返回超过的流量
19
- 20. 接下去
介绍系统的稳定性预防系统
CSP系统20
- 21. CSP系统的组成21依赖降级容量规划运行监控
- 22. CSP对系统的运行数据非常清楚22A调用C的响应时间10ms变成了500ms访问A的流量增加1.5倍
系统负载、CPU、内存如何了?
- 23. 运行时监控-实时得到系统运行的信息运行时信息的透明化:监控报警23 问题的自动排查
- 24. CSP对系统的运行数据非常清楚24B:CSP最了解我了
我每天忙着工作,保证没有小三,
那件事情可能是C干的
C: CSP最了解我了,如果是我干的,
我就不会让你知道
- 25. 容量规划-获取系统能力数据251、要搞活动了,流量可能要增加2倍以上,不知道A是否能撑住,B和C是否也能撑住?
2、A系统的QPS怎么今天突然下跌到原来的一半了?
- 26. 容量规划-定时得到系统的容量信息26知道系统现状能力预测未来业务需求何时增加服务器何时做性能优化
- 27. 27问题点
- 28. 容量规划28CSP对A,B,C的能力非常清楚
知道何时增加机器,何时进行系统优化
- 29. 实时知道系统的依赖关系依赖关系生成
强弱关系验证29
- 30. 依赖降级30CSP知道A一定会调用B和C
并且知道C挂了对A不影响
- 31. 总结容灾和稳定性
各种故障情况下的系统化处理
一个保障稳定性系统的组成
容量规划、依赖降级、运行时监控
能力数据、静态数据、动态数据31
- 32. 系统建设初期需要考虑的3点系统可被监控
线程,连接池,远程调用,系统信息,重要接口执行数据
重要的操作环节记录日志
系统可被调试
配置等信息可以被dump出来
远程服务的接口容易被调试
系统可被容错
所有远程接口的调用均有流量控制
所有远程接口的调用返回数据都是不可信任的
32
- 33. 接下去,大家讨论时间
稳定的系统架构
系统的容量规划
系统的运行时监控
系统的依赖和降级
33
- 34. 小凡 (速度性能优化)
小赌 (稳定性相关)
小邪 (稳定性和性能)
34
- 35. 讨论时间
35
- 36. 36