课程大纲
课程主题 | 课程内容 |
第一部分 架构总览 | 内容一、架构整体分析 1.高性能分析 2.高可用分析 3.高可扩展性分析 内容二、案例分析 1.竞拍案例分析 2.秒杀活动案例分析 3.12306案例分析 |
第二部分 架构理论篇 | 一、走正确的路 1. 如何走正确的路 2. 写代码要经历的阶段 3. 大牛的法宝 二、架构师概览 1.架构师需要懂得哪些知识 2.软件行业架构师两个定义 3. 软件行业互联网与常规企业的区别 4.架构师内部方向 5.架构师不是万能的 6.互联网团队特点 7.架构是要靠团队做出来的 8.架构师会做什么? 9.架构师团队内做的事情 10.互联网常见架构优化项 三、如何成为架构师 1.行业动态要了解,时刻关注技术更新 2.开发时先设计然后在做,做好后总结 3.关注公司业务动态,结合产品观察 4.关注系统运维及相关技术 5.关注业务划分技巧及目的 6.清晰化自己掌握的技术的用途 7.多沟通 四、互联网架构师必备技能 1.卓越的程序员:每个好架构师都是一位出色的程序员 2.抽象思维:驾驭概念的技能是最高潜力 3.技术前瞻性:站在技术的山顶向前眺望 4.透过问题看本质:解决问题和绕开问题 5.跨域知识:要成为百科全书式的智者 6.沟通能力:善于沟通的技术领袖 五、如何构建架构师知识体系 1.从为什么开始 2.知识的获取 3.知识的整理和保存 4.知识的分享 5.知识的利用 6.创新 7.回到原点 六、总结技能表 1.通用技能 2.专业技能 3.web安全 |
第三部分 高并发架构的设计 | 一、高性能复杂度和应对之道。 1.性能优化原则 2.性能的度量指标 3.高并发下的性能优化 4.案例分析1:如何优化JVM内存分配 5.案例分析2:一次双十一抢购系性能瓶颈调优 二、高可用复杂度和应对之道。 1.可用性的度量 2.高可用系统设计的思路 3.案例分析 三、可扩展复杂度和应对之道。 1.高可扩展性的设计思路 2.存储层的扩展性 3.业务层的扩展性 4.案例分析 |
第四部分 数据存储架构设计 | 一、数据库可扩展性设计之数据切分 1.何谓数据切分 2.数据的垂直切分 3.数据垂直切分带来的问题及解决方案 4.数据的读写分离 5.读写分离带来的问题及解决方案 6.数据的水平切分 7.数据水平切分带来的问题及解决方案 8.数据切分后的整合方案 二、非结构化数据的存储 1.思考:58同城帖子表设计、电商商品表设计 2.增加列的表结构应该如何设计 3.NOSQL介绍 4.NOSQL的分类及使用场景分析 5.案例分析:淘宝数据魔方技术架构 6.案例分析:图片存储案例分析 |
第五部分 合理的缓存架构 | 一、合理的缓存使用 1.页面缓存 2.页面片段缓存 3.浏览器缓存 4.反向代理服务器缓存 5.数据库前端缓存 6.其它应用缓存 二、分布式缓存简介 1.Memcached 2.Reids 三、Redis常见问题解析 1.如何应对Redis变慢 2.删除数据后,为什么内存占用率还是很高 3.缓冲区:一个可能引发惨案的地方 4.Redis缓存满了怎么办 5.常见的缓存异常:缓存雪崩、缓存穿透、缓存击穿 6.缓存被污染了怎么办? |
第六部分 负载均衡 | 一、常见的负载均衡方案及案例分析 1.Nginx/Haproxy 2.Nginx/Haproy+KeepAlived 3.LVS+KeepAlived+Nginx 4.DNS+LVS+keepAlived+Nginx 二、Nginx 1.Nginx重要配置项及配置优化 2.Nginx重要扩展模块 3. Tengine简介 三、LVS 1.网络协议 2.LVS的工作方式 3.LVS的调度方式 四、负载均衡的其它应用 |
第七部分 微服务架构 | 一、分布式服务 1.系统架构:每秒1万次请求的系统要做服务化拆分嘛。 2.微服务架构:微服务化后系统架构要如何改造 3.RPC框架:10万QPS下如何实现毫秒级服务调用 4.注册中心:分布式系统如何寻址 5.分布式Trace:横跨几十个分布式组件的慢请求如何排查 6.负载均衡:如何提升系统的横向扩展能力 7.API网管:系统的门面要如何做 8.多机房部署:跨地域的分布式系统如何做 9:Service Mesh:如何屏蔽服务化系统的服务治理细节? 二、微服务下的运维管理 1.应用性能管理:用户的使用体验应该如何监控 2.压力测试:怎样设计全链路压力测试平台 3.配置管理:成千上万的配置项要如何管理 4.降级熔断:如何屏蔽非核心系统故障的影响 5.流量控制:高并发系统中我们如何操纵流量 |
第八部分 实战案例 | 1.掌握千万级用户规模和亿级用户规模业务的常用架构。 2.掌握如何从百万级用户架构演进到千万级用户架构。 3.掌握如何从千万级用户架构演进到亿级用户架构。 |