课程简介
通过4天深度研习,系统解析高并发(秒杀系统库存优化)、分布式事务(TCC/Saga混合方案)、高可用(Paxos/Raft工程实践)及跨城容灾(国标GB/T 20988落地)四大核心模块,涵盖微信红包、招行支付等20+金融级实战案例。课程独创“技术-业务-组织”三角模型,揭示康威定律在架构演进中的关键作用,传授从标准化建设到混沌工程的全链路稳定性保障体系。学员将掌握分库分表深度调优、全链路压测实施、故障根因定位等硬核技能,获得余老师亲著的《亿级系统架构演进路线图》及企业级容灾方案模板,助力快速突破技术瓶颈,打造符合金融信创要求的高可用架构。
目标收益
1、学会分布式领域- 高可用的方法论与实践经验
2、学会分布式领域 - 分布式事务的方法论与实践经验
3、学会常用架构模式
4、学会跨城容灾与异地多活的典型思路与策略
培训对象
适合3年以上后端开发/架构师,技术负责人参训。
课程大纲
0、序言:课程脉络、 技术理念与价值观 |
1. 大型互联网架构演进史 2. 架构的3角关系: 技术架构、业务架构、组织架构 3. 技术架构 - 互联网的4高的区别与联系:高并发、高可用、高性能、高可靠 4. 业务架构 - 业务建模、DDD与微服务拆分 5. 组织架构 - 技术委员会/架构委员会的作用、康威定律 6.架构的术与道:什么是“术”?什么是“道”?道与术的关系? 7. 架构与公司规模/公司发展阶段的匹配度 小公司(几十/百)、中型公司(千)、 大公司(万) 8. 技术的标准化:从“游击队”到“正规军”,从“小作坊”到“现代化工厂” 9. 技术深度与广度的平衡问题 10. T字型发展 |
第1天 - 高并发 、分布式事务、 高可用 第1单元 高并发 |
1. 高并发 和 高性能的本质区别? 2. 高并发问题本质:全链路水平扩展 3. 高并发“读”的典型场景与对应解决方案:缓存、并发读、读写分离(重写轻读) 4. 重点问题: 中央缓存与本地缓存的方案对比 (典型案例:大型电商平台-库存系统) 5. 高并发“写”的典型场景与对应解决方案:数据分片,任务分片,异步,批量,串行化 (典型案例:秒杀系统、广告计费系统) 6. 专题:DB分库分表的各种衍生问题解决, 非主键查询、 跨库Join、 排序分页、分布式事务 |
第2单元 分布式事务 |
1.日常工作中所有分布式事务场景: (1)DB与DB的分布式事务 (2)DB与MQ的分布式事务 (3)DB与 缓存的分布式事务 (4)DB与服务的分布式事务 (4)服务与服务的分布式事务 2. 分布式事务解决方案对比与分析: (1)最终一致性的2种实现方案 (2)2PC与XA 2PC算法的详细工程实现(XA协议) (3)TCC (4)1PC - 事务补偿与对账 (5)Saga (典型案例:订单系统、微信红包系统) 3. 融会贯通:TCC/Saga/1PC的融合案例 4. 专题-分布式事务典型案例剖析:电商平台库存系统 |
第3单元 高可用 |
0. 高可靠 与 高可用有什么区别? 1. 高可用问题的引入 2. 高可用问题的思维框架-经典5问 (1)如何实现故障探测? (2)如何避免脑裂? (3)如何对客户端透明? (4)如何保证数据一致性? (5)如何破解单点依赖的连环套? 3. 常用的几个系统是如何解决高可用问题:Mysql/Kafka都分别是如何解决高可用的? 4. 高可用的副产品:Paxos/Raft (1) 多副本一致性问题剖析 Kafka/Mysql中数据不一致问题剖析 (2) Paxos/Raft算法引入 (3)常用的Paxos/Raft的工程实现 Paxos/Raft算法的工程应用 |
第2天 – 高可靠(稳定性) 与 高性能 1. 从分布式锁到CAP理论 |
1. 为什么需要分布式锁? Mysql/Redis中的数据并发更新问题: 悲观锁/乐观锁 2. 实现一个分布式锁有哪些坑? 3. RedLock剖析:实现一个“完美”的分布式锁到底有多难? 4. CAP理论的引入 5. 分布式锁的替代方案 – 串行化 6. 串行化的典型案例 |
第2单元 高可靠 (稳定性) |
1.故障隔离 2. 容量规划与全链路压测 (1)容量规划的基本思路 (2)压测的实现思路:单机压测、全链路压测 3. 依赖下游/组件的可靠性评估 4. 异常处理机制 5. 完善的监控、告警与日志体系 6. 限流与防刷:各种手段分析 RateLimiter、微服务框架内置、基于队列的限流 7. 熔断与降级:各种手段分析 Sentinel、Hystrix 各种降级的场景举例 8. 超时与重试 9. 灰度发布与回滚 10. 数据备份与兜底 |
第3单元 高性能 |
1. 性能优化的目标设置:过早优化是万恶之源 2. 性能测试工具与方法: 应用测试、DB测试、网络测试、磁盘测试、全链路测试 3. 监控系统构建与指标采集: 微服务、JVM、DB、Redis、操作系统等各种指标采集 4. 应用系统常见的各项指标理解: QPS,响应时间,并发数,在线用户数,绝对并发数,相对并发数 5. 操作系统常见的各项指标理解: CPU平均负载、使用率、磁盘IOPS、磁盘吞吐量... 6. 性能探索,找出性能瓶颈与根源 (1)工程常识:常用的性能数字 (2)黑盒分析法 (3)白盒分析法 7. 实施性能优化技术: CPU优化 磁盘优化 网络优化 内存优化 |
第3天 - 高可靠(稳定性) - 进阶 1. 稳定性保障体系: 整体方法论 |
1.从软件的整个生命周期来看,为什么会出问题? 2.稳定性保障原则之一:事前预防 > 事后补救 3.稳定性保障原则之二:及时止损 4.稳定性保障:问题分析方法 5.BCP梳理方法论:稳定性的3个问题源,上游、自身、下游 |
2.专题 – 可观测性 |
1.监控的整体方法论 2.微服务可观测性:Trace 3.微服务可观测性:Log 4.微服务可观测性:Metrics |
3.专题 – 业务监控与数据监控 |
1.业务监控案例1 – 混淆业务监控与系统监控 2.业务监控案例2 – 混淆业务监控与业务报表 3.业务监控案例3 – 全链路业务追踪 4.业务监控案例4 – 数据监控 5.数据监控的分析方法 – 7种不同的异常模式 |
4.如何从“测试”上避免出问题 |
1.功能测试 2.压力测试/性能测试 3.混沌工程 |
5.如何从“发布与变更管理”上避免出问题 |
1.变更的三板斧 2.代码的灰度发布 3.配置的灰度发布 4.数据的灰度发布 5.线上环境的模拟仿真 |
6. 应急处理 |
1. 应急的值班制度 2. 发现问题的手段 3. 应急的各种手段 4. 应急预案 |
7.问题排查与根因定位 |
1. 问题排查的前提条件 2. 问题排查的分类 3. 问题排查的基本思维 |
8. 业务逻辑问题排查 |
1. 自身的业务逻辑问题 2. 上游的业务逻辑问题 3. 下游的业务逻辑问题 |
9.技术问题排查 |
1. CPU飙高 – 排查技巧与解决 2. 内存泄漏 – 排查技巧与解决 3. GC频繁 – 排查技巧与解决 4. 其它种类问题 5. 问题排查的其他建议 6. 事故复盘机制 |
第4天 - 高阶内容 - 跨城容灾与异地多活 第一单元 容灾标准与原则 |
1.1信息系统容灾国标 GB/T 20988-2007 1.2金融行业信息系统容灾标准 1.3 常用业务场景的容灾要求 (1)信息提供类:比如搜索/推荐,电商商品查询系统 (2)消息通信类:比如IM (3)信息更新类:比如商品库存系统 (4)资金类:金融、支付 1.4 原则 (1)不要追求完美 (2)方案的循序渐进 – 演进路线图 (3)覆盖业务的循序渐进 – 业务分级、数据分级 (4) 技术约束:物理约束、基础架构约束(DB复制技术、KV复制技术、跨城消息中间件) (5) 根据业务场景选择合适的数据复制模式:复制模式、分片模式、自治模式的选型 (6) 成本、业务价值、团队能力、风险的权衡 |
第二单元 跨城容灾对基础架构的要求 |
(1) 广义网负载均衡: DNS与GSLB (2) 局域网负载均衡: F5, TGW/MGW/VGW (3) API网关(Nginx/Apache/自研等) (4) 微服务框架支持 (5) Mysql/KV/MQ跨城能力 |
第三单元 跨城容灾的方法论 |
第三单元 跨城容灾的方法论 3.1 数据一致性保证 3.2 可靠切换 3.3 切换演习 & 容灾演习 1. FMEA风险分析方法 2.方案设计 3.实施、记录 4.复盘 5.常态化 3.4全链路统筹协调能力:开发、运维、测试、业务的4方协同问题 3.5 成本权衡 |
第四单元 典型案例剖析 | 案例介绍 |
0、序言:课程脉络、 技术理念与价值观 1. 大型互联网架构演进史 2. 架构的3角关系: 技术架构、业务架构、组织架构 3. 技术架构 - 互联网的4高的区别与联系:高并发、高可用、高性能、高可靠 4. 业务架构 - 业务建模、DDD与微服务拆分 5. 组织架构 - 技术委员会/架构委员会的作用、康威定律 6.架构的术与道:什么是“术”?什么是“道”?道与术的关系? 7. 架构与公司规模/公司发展阶段的匹配度 小公司(几十/百)、中型公司(千)、 大公司(万) 8. 技术的标准化:从“游击队”到“正规军”,从“小作坊”到“现代化工厂” 9. 技术深度与广度的平衡问题 10. T字型发展 |
第1天 - 高并发 、分布式事务、 高可用 第1单元 高并发 1. 高并发 和 高性能的本质区别? 2. 高并发问题本质:全链路水平扩展 3. 高并发“读”的典型场景与对应解决方案:缓存、并发读、读写分离(重写轻读) 4. 重点问题: 中央缓存与本地缓存的方案对比 (典型案例:大型电商平台-库存系统) 5. 高并发“写”的典型场景与对应解决方案:数据分片,任务分片,异步,批量,串行化 (典型案例:秒杀系统、广告计费系统) 6. 专题:DB分库分表的各种衍生问题解决, 非主键查询、 跨库Join、 排序分页、分布式事务 |
第2单元 分布式事务 1.日常工作中所有分布式事务场景: (1)DB与DB的分布式事务 (2)DB与MQ的分布式事务 (3)DB与 缓存的分布式事务 (4)DB与服务的分布式事务 (4)服务与服务的分布式事务 2. 分布式事务解决方案对比与分析: (1)最终一致性的2种实现方案 (2)2PC与XA 2PC算法的详细工程实现(XA协议) (3)TCC (4)1PC - 事务补偿与对账 (5)Saga (典型案例:订单系统、微信红包系统) 3. 融会贯通:TCC/Saga/1PC的融合案例 4. 专题-分布式事务典型案例剖析:电商平台库存系统 |
第3单元 高可用 0. 高可靠 与 高可用有什么区别? 1. 高可用问题的引入 2. 高可用问题的思维框架-经典5问 (1)如何实现故障探测? (2)如何避免脑裂? (3)如何对客户端透明? (4)如何保证数据一致性? (5)如何破解单点依赖的连环套? 3. 常用的几个系统是如何解决高可用问题:Mysql/Kafka都分别是如何解决高可用的? 4. 高可用的副产品:Paxos/Raft (1) 多副本一致性问题剖析 Kafka/Mysql中数据不一致问题剖析 (2) Paxos/Raft算法引入 (3)常用的Paxos/Raft的工程实现 Paxos/Raft算法的工程应用 |
第2天 – 高可靠(稳定性) 与 高性能 1. 从分布式锁到CAP理论 1. 为什么需要分布式锁? Mysql/Redis中的数据并发更新问题: 悲观锁/乐观锁 2. 实现一个分布式锁有哪些坑? 3. RedLock剖析:实现一个“完美”的分布式锁到底有多难? 4. CAP理论的引入 5. 分布式锁的替代方案 – 串行化 6. 串行化的典型案例 |
第2单元 高可靠 (稳定性) 1.故障隔离 2. 容量规划与全链路压测 (1)容量规划的基本思路 (2)压测的实现思路:单机压测、全链路压测 3. 依赖下游/组件的可靠性评估 4. 异常处理机制 5. 完善的监控、告警与日志体系 6. 限流与防刷:各种手段分析 RateLimiter、微服务框架内置、基于队列的限流 7. 熔断与降级:各种手段分析 Sentinel、Hystrix 各种降级的场景举例 8. 超时与重试 9. 灰度发布与回滚 10. 数据备份与兜底 |
第3单元 高性能 1. 性能优化的目标设置:过早优化是万恶之源 2. 性能测试工具与方法: 应用测试、DB测试、网络测试、磁盘测试、全链路测试 3. 监控系统构建与指标采集: 微服务、JVM、DB、Redis、操作系统等各种指标采集 4. 应用系统常见的各项指标理解: QPS,响应时间,并发数,在线用户数,绝对并发数,相对并发数 5. 操作系统常见的各项指标理解: CPU平均负载、使用率、磁盘IOPS、磁盘吞吐量... 6. 性能探索,找出性能瓶颈与根源 (1)工程常识:常用的性能数字 (2)黑盒分析法 (3)白盒分析法 7. 实施性能优化技术: CPU优化 磁盘优化 网络优化 内存优化 |
第3天 - 高可靠(稳定性) - 进阶 1. 稳定性保障体系: 整体方法论 1.从软件的整个生命周期来看,为什么会出问题? 2.稳定性保障原则之一:事前预防 > 事后补救 3.稳定性保障原则之二:及时止损 4.稳定性保障:问题分析方法 5.BCP梳理方法论:稳定性的3个问题源,上游、自身、下游 |
2.专题 – 可观测性 1.监控的整体方法论 2.微服务可观测性:Trace 3.微服务可观测性:Log 4.微服务可观测性:Metrics |
3.专题 – 业务监控与数据监控 1.业务监控案例1 – 混淆业务监控与系统监控 2.业务监控案例2 – 混淆业务监控与业务报表 3.业务监控案例3 – 全链路业务追踪 4.业务监控案例4 – 数据监控 5.数据监控的分析方法 – 7种不同的异常模式 |
4.如何从“测试”上避免出问题 1.功能测试 2.压力测试/性能测试 3.混沌工程 |
5.如何从“发布与变更管理”上避免出问题 1.变更的三板斧 2.代码的灰度发布 3.配置的灰度发布 4.数据的灰度发布 5.线上环境的模拟仿真 |
6. 应急处理 1. 应急的值班制度 2. 发现问题的手段 3. 应急的各种手段 4. 应急预案 |
7.问题排查与根因定位 1. 问题排查的前提条件 2. 问题排查的分类 3. 问题排查的基本思维 |
8. 业务逻辑问题排查 1. 自身的业务逻辑问题 2. 上游的业务逻辑问题 3. 下游的业务逻辑问题 |
9.技术问题排查 1. CPU飙高 – 排查技巧与解决 2. 内存泄漏 – 排查技巧与解决 3. GC频繁 – 排查技巧与解决 4. 其它种类问题 5. 问题排查的其他建议 6. 事故复盘机制 |
第4天 - 高阶内容 - 跨城容灾与异地多活 第一单元 容灾标准与原则 1.1信息系统容灾国标 GB/T 20988-2007 1.2金融行业信息系统容灾标准 1.3 常用业务场景的容灾要求 (1)信息提供类:比如搜索/推荐,电商商品查询系统 (2)消息通信类:比如IM (3)信息更新类:比如商品库存系统 (4)资金类:金融、支付 1.4 原则 (1)不要追求完美 (2)方案的循序渐进 – 演进路线图 (3)覆盖业务的循序渐进 – 业务分级、数据分级 (4) 技术约束:物理约束、基础架构约束(DB复制技术、KV复制技术、跨城消息中间件) (5) 根据业务场景选择合适的数据复制模式:复制模式、分片模式、自治模式的选型 (6) 成本、业务价值、团队能力、风险的权衡 |
第二单元 跨城容灾对基础架构的要求 (1) 广义网负载均衡: DNS与GSLB (2) 局域网负载均衡: F5, TGW/MGW/VGW (3) API网关(Nginx/Apache/自研等) (4) 微服务框架支持 (5) Mysql/KV/MQ跨城能力 |
第三单元 跨城容灾的方法论 第三单元 跨城容灾的方法论 3.1 数据一致性保证 3.2 可靠切换 3.3 切换演习 & 容灾演习 1. FMEA风险分析方法 2.方案设计 3.实施、记录 4.复盘 5.常态化 3.4全链路统筹协调能力:开发、运维、测试、业务的4方协同问题 3.5 成本权衡 |
第四单元 典型案例剖析 案例介绍 |