简介
互联网行业业务特点决定了对相关依赖的基础系统要求极高,需要支撑动辄几十万到百万的QPS,同时需要相关依赖的基础系统具备弹性伸缩,无缝扩容,高可用,高性能等特性。这些要求在技术实现上是非常有挑战的,该课程主要介绍如何利用已有的开源工具搭建完善的缓存层,持久化层,如何搭建可持续扩展的高可用的分布式系统以及在此过程中的技术挑战。具体包括:分布式缓存/存储/数据库/Key-Value Store以及分布式一致性算法等。
目标
深入理解互联网行业基础系统调优与分布式系统架构设计,掌握大规模,高访问量业务系统架构设计的原则和相关依赖技术
课程时长
2天(12H)
受众人群
系统架构师,业务架构师,服务器端程序员,系统程序员,技术经理等
课程特点/亮点
一线互联网行业大规模定制优化Redis/MySQL经验
支撑PB级别海量数据的分布式存储系统及数据库系统架构设计
丰富的主流互联网公司相关业务系统架构
分布式数据库技术前瞻,详细剖析Spanner/F1等最新技术架构
分享提纲
主题 | 内容 |
Redis原理与调优 | 1.1 Redis基本数据类型 1.1.1 String 1.1.2 Hash 1.1.3 Set 1.1.4 Sorted Set 1.1.5 List 1.2 Redis Object与Encoding 1.2.1 Redis内部数据类型表示 1.2.2 Redis内部编码方式 1.3 Redis内部实现 1.3.1 Hash实现 1.3.2 List实现 1.3.3 Set实现 1.3.4 Sorted Set实现 1.4 Redis内存调优 1.4.1 通过编码压缩节省内存 1.4.2 修改Redis源代码 1.5 Redis持久化机制 1.5.1 Redis AOF机制 1.5.2 Redis Dump机制 1.6 Redis主从机制 1.6.1主从复制原理 1.6.2 主从复制缺陷与解决 1.7 Redis延迟剖析 1.7.1 CPU Bound延迟 1.7.2 网络延迟 1.7.3 复杂查询计算延迟 1.8 Redis网络事件模型 1.8.1 AEEvent详细剖析 1.8.2 Redis源代码分析 1.9 Redis缺陷与陷阱 1.9.1 HGetALL的陷阱 1.9.2 Buffer IO引发的Down机血案 1.9.3 内存使用的问题 1.9.4 持久化机制的缺陷 |
MySQL 原理与调优 | 2.1 MySQL架构剖析 2.2 MySQL主从复制缺陷剖析 2.2.1 异步复制的问题 2.2.2 半同步复制 2.2.3 主从切换分析 2.3 InnoDB设计原理 2.3.1 文件管理实现 2.3.2 表空间管理 2.3.3 Buffer Pool管理 2.3.4 Redo管理 2.3.5 事务管理 2.4 MySQL及InnoDB调优 2.5 综合架构设计案例 2.5.1 微博核心业务架构剖析 2.5.2 贴吧系统架构剖析 2.5.3 百万QPS的通知系统架构剖析 |
分布式缓存系统 | 3.1 RedisCluster架构剖析 3.2 Codis架构剖析 3.3 方案对比与选型 |
分布式数据库系统 | 4.1 分布式数据库需求分析 4.2 透明代理层设计与实现 4.3 中心路由管理设计 4.4 2PC一致性保障 4.5 在线无缝扩容迁移设计 |
分布式存储系统 | 5.1 主流开源分布式存储系统剖析 5.2 接入层架构设计 5.3 高效存储引擎设计 5.4 路由管理 5.5 断点续传等功能设计 5.6 大文件存储设计 |
分布式数据库技术前瞻 | 6.1 主流分布式系统演变与总结 6.2 两阶段提交协议详细剖析 6.3 Raft协议详细剖析 6.4 分布式事务实现 6.5 Spanner与F1 6.6 分布式系统测试方法 |