《高级软件架构师实战培训阶段二》--架构师经典课程

课程说明:

     本课程专注于高性能、高并发、大数据量的分布式体系架构和性能优化
     1:阶段二的课程专注于高性能、高并发、大数据量的分布式体系架构和性能优化,更加实战化,提出和解决很多实战中的实际问题,更加接近实际应用。
     2:阶段二的课程内容延续阶段一的内容,在已经构建好的架构体系上,通过解决很多实际应用中的问题,来不断深化和完善,从而系统的学习和掌握大型分布式应用的架构和应用开发
     3:阶段二的课程更加关注性能优化,将会逐层讲述优化的方法和手段,然后结合着实际应用进行实际操作,从而系统的学习和掌握大型分布式应用的性能优化
     技术要点:
     1:在阶段一的基础上,更加实战化,提出和解决很多实战中的实际问题,更加接近实际应用
     2:更加关注性能优化,将会逐层讲述优化的方法和手段,然后结合着实际应用进行实际操作,从而系统的学习和掌握大型分布式应用的性能优化

课程内容:

     《高级软件架构师实战培训阶段一》注重一步一步搭建出一个分布式架构来
     《高级软件架构师实战培训阶段二》在此基础上,深入解决更多应用中实际的问题,并关注系统各个层次的性能优化
     一:分布式架构和部署,大致包括:
         1:如何进行分布式部署
         2:系统拆分后,模块之间如何相互调用
         3:如何进行统一的会话(Session)管理
         4:如何实现单点登录
         5:如何保证一致性更新
         6:如何规划和处理分布式事务
         7:如何对重要服务实现HA
     二:高并发和Web层的性能优化,大致包括:
         1:高并发的处理
         2:Nginx的优化,Varnish的配置和优化,比如:反向代理、负载均衡、读写分离、业务拆分访问
         3:Web层的缓存和静态化
         4:Web层的性能优化,基本原理、各种优化的手段
         5:如何处理动态、实时内容,比如价格
     三:逻辑层处理和性能优化,大致包括:
         1:缓存规划和集群
         2:Memcashed和Redis
         3:异步规划和集群,以及优化
         4:纯内存操作,应对复杂业务逻辑,比如:库存的查询和修改
         5:如何处理高并发的业务,比如:秒杀活动
     四:数据层处理和性能优化,大致包括:
         1:大数据量的处理
         2:如何分库
         3:如何分表
         4:NoSQL的应用
     五:数据库优化(这个内容太多了,会专门开设另外的课程来讲),本课程里会安排部分跟开发相关的内容,大致包括:
         1:常见的优化配置
         2:Sql语句级的优化
         3:MySQL的分区
         4:MySQL的主从集群和读写分离
     六:硬件和服务器(这个主要是运维的事情,这里简单了解一下),大致包括:
         1:包括OS、网络、I/O等的调整和优化配置
     七:集群和其它,大致包括:
         1:集群:应用集群、Web服务器、缓存服务器、文件系统、消息处理系统、数据库、NoSQL等
         2:了解其他的相关技术和手段,比如CDN等

主讲老师:CC老师

     20年Java开发和使用经验,多年的首席架构师和CTO,拥有Sun的多项Java和J2EE方面的技能认证,拥有丰富的开发经验和深厚的技术沉淀,精通Java/JavaEE相关技术和多种开源框架,尤其擅长系统分析和架构设计。
     拥有多年项目经理、技术部经理的管理经验,参与和领导了上百个大中型项目的设计和开发,在互联网应用系统架构、系统设计、应用级框架和中间件开发等方面具有很多经验和领悟。
     原创著作《研磨设计模式》和《研磨Struts2》广受好评,尤其是《研磨设计模式》,一直稳居原创设计模式类图书第一的位置,并输出版权到台湾。
     更为难得的是,入行20年,仍然奋战在技术一线,深知一线架构师需要掌握哪些技术、掌握到什么程度、一线架构设计会遇到哪些坑、如何才能做出最合适的架构设计,经验最难得!老师把这些经验和感悟都融合到课程中,能帮你节省很多走弯路的时间。

课程大纲:

第01节课:整体课程介绍
-----以下为分布式架构和部署部分-----
第02节课:分布式部署基础知识;系统分布式部署演变第一部分
第03节课:系统分布式部署演变第二部分;分布式部署带来的问题
第04节课:模块间相互调用:问题、方案,自行实现方案的开发第一部分
第05节课:自行实现方案的开发第二部分
第06节课:自行实现方案的开发第三部分;更多需要考虑的问题
第07节课:统一会话管理:问题、方案、思路,代码示例第一部分
第08节课:代码示例第二部分;更多的问题
第09节课:单点登录:问题、方案、思路,代码示例第一部分
第10节课:代码示例第二部分
第11节课:一致性更新:问题、方案、思路
第12节课:代码示例第一部分
第13节课:代码示例第二部分
第14节课:分布式事务:问题、方案、思路,尤其是自行实现逻辑事务处理的思路
第15节课:代码示例分布式事务的处理
第16节课:高可用性:问题、方案,HA的基础知识
第17节课:Keepalived介绍、实现思路;VRRP协议
第18节课:Keepalived安装和体系结构
第19节课:Keepalived配置
第20节课:Keepalived+Nginx的HA的第一部分
第21节课:Keepalived+Nginx的HA的第二部分
第22节课:Keepalived的HA,比如和:Varnish、Tomcat、Redis、MySql等
第23节课:LVS基础;Keepalived+LVS实现高可用的负载均衡
-----以下为高并发和Web层的性能优化部分-------->
第24节课:高并发基础、高并发处理的基本思路-1:从客户端角度
第25节课:高并发处理的基本思路-2,高并发处理的基本手段-1
第26节课:高并发处理的基本手段-2:Web服务器层面、Web应用层面、数据库层面
第27节课:Nginx优化补充:配置优化补充,Nginx中配置使用二级域名
第28节课:Varnish优化补充-1:后端发生变化,如何主动通知varnish更新缓存
第29节课:Varnish优化补充-2:页面片断缓存ESI
第30节课:Varnish优化补充-3:输出Varnish的日志到文件,以及日志格式自定义
第31节课:Web缓存基础、类型;浏览器缓存基础
第32节课:浏览器缓存工作机制和控制
第33节课:反向代理服务器缓存
第34节课:Varnish+ESI的应用示例;Web应用对页面的缓存
第35节课:静态化基础和实现思路;静态化示例第一部分
第36节课:静态化示例第二部分
第37节课:静态化示例第三部分;测试静态化功能,体会其对性能的提升
第38节课:Web表现层调用过程分析
第39节课:理解延迟、浏览器的渲染处理过程、Web层基本的优化思路
第40节课:Web表现层性能优化概述;连接网络并发送请求部分的优化思路
第41节课:连接网络并发送请求部分的优化手段
第42节课:网络来回传输内容部分的优化思路和手段
第43节课:服务器处理请求部分的优化手段——Tomcat的基本优化
第44节课:Tomcat的BIO/NIO/APR三种模式,安装并配置测试APR
第45节课:服务器处理请求部分的优化手段——JavaScript的常见优化
第46节课:浏览器渲染绘制部分的优化思路和手段
第47节课:综合应用前面学习到的优化手段,对示例应用进行优化,测试并体会性能的提升
第48节课:Tomcat集群,MSM进行Session统一管理的非黏性方案
第49节课:MSM进行Session统一管理的黏性方案、Tomcat故障转移、Memcached故障转移
第50节课:处理静态化页面中的动态内容:ESI、AJAX
-----以下为逻辑层处理和性能优化部分--------
第51节课:Redis简介、和其它数据库或缓存服务器的对比、安装
第52节课:Redis基础知识、数据类型、对Keys的操作命令
第53节课:对String类型的操作命令、对List类型的操作命令
第54节课:对Set类型的操作命令、对Hash类型的操作命令
第55节课:对ZSet类型的操作命令
第56节课:排序命令详解、处理过期keys的机制和命令
第57节课:Redis的配置详解-1:Config命令、通用部分、限制部分
第58节课:Redis持久化概述、RDB原理、RDB的问题、操作命令
第59节课:AOF原理、AOF日志恢复、AOF重写、AOF重写的触发机制、AOF重写的基本原理
第60节课:Redis的事务概述、基本过程、错误处理、基本命令;Redis的发布订阅模式概述、操作命令
第61节课:Redis的复制:好处、配置、基本操作命令、基本原理
第62节课:复制部分的配置详解、乐观复制策略、无硬盘复制、哨兵功能
第63节课:Redis的集群:复制的问题、分片、常见的分片实现、Redis分片的缺点、集群架构、集群操作基本命令
第64节课:手工通过命令,一步一步创建Redis集群
第65节课:插槽、键与插槽的关系、移动已分配的插槽、插槽操作的命令、故障判定和恢复
第66节课:使用redis-trib.rb来创建和操作集群;Redis预分区
第67节课:Lua脚本开发-1:介绍、数据类型、变量、操作符、If语句
第68节课:Lua脚本开发-2:循环语句、表类型、函数、Lua的标准库
第69节课:Lua脚本开发-3:在Redis中常用的标准库函数、其它库函数
第70节课:Redis和Lua结合、脚本中操作Redis、操作Lua脚本的命令等;沙箱、Redis对随机数和随机结果的处理
第71节课:Lua脚本的面向对象:MetaTable、面向对象的写法;模块化
第72节课:Redis的安全、Redis的管理、了解Redis的虚拟内存;适合使用Redis的场景
第73节课:Redis的优化:优化建议、最佳实践等
第74节课:Redis的Java客户端-1:构建开发环境、基本的开发
第75节课:Redis的Java客户端-2:连接池、连接集群(新的集群写法)
第76节课:Redis的Java客户端-3:连接集群(老的SharedJedis的写法);Redis和Spring集成开发
第77节课:在示例项目中使用Redis-1:实现基本的增、删、改、和按ID查询的方法
第78节课:在示例项目中使用Redis-2:构建使用Lua脚本的功能,通过使用Lua脚本来实现按条件查询
第79节课:在示例项目中使用Redis-3:实现按条件查询;开始实现分页的功能
第80节课:在示例项目中使用Redis-4:实现分页的功能、跟现有项目的结合使用,在项目中运转起来
第81节课:缓存规划,包括:数据规划、技术规划、部署环境规划、可伸缩性,扩容的预定方案等
第82节课:Memcached集群,演示直接使用客户端实现
第83节课:演示使用magent来实现Memcached集群
第84节课:异步规划,包括:异步消息的规划、技术规划、部署环境规划等
第85节课:基于ActiveMQ的应用的性能优化:测试确定问题所在、讲述优化的思路
第86节课:演示异步性能优化的具体优化方案的实现-1
第87节课:演示异步性能优化的具体优化方案的实现-2
第88节课:演示异步性能优化的具体优化方案的实现-3
第89节课:演示异步性能优化的具体优化方案的实现-4
第90节课:测试并初步展示异步性能优化后的效果
第91节课:纯内存操作——应对复杂业务逻辑,讲述思路和基本业务描述
第92节课:讲述具体的解决方案,应对从相对简单到复杂的应用
第93节课:演示纯内存操作的具体解决方案的实现-1
第94节课:演示纯内存操作的具体解决方案的实现-2
第95节课:演示纯内存操作的具体解决方案的实现-3
第96节课:演示纯内存操作的具体解决方案的实现-4
第97节课:高并发业务的处理第一部分:问题、解决思路、准备阶段的处理、前端页面的处理
第98节课:高并发业务的处理第二部分:逻辑层的处理、以及其它相关部分的处理
-----以下为数据层处理和性能优化部分-------
第99节课:大数据量处理:问题、解决思路、具体的解决手段和方案
第100节课:MySQL的分区-1:分区基础、分区类型、RANGE分区
第101节课:MySQL的分区-2:List分区、Hash分区、线性Hash分区、Key分区
第102节课:MySQL的分区-3:子分区、分区管理、分区使用的一些基本规则
第103节课:分库分表-1:为什么要分库分表、什么是分库、什么是分表,以及它们的优缺点
第104节课:分库分表-2:如何分库、如何分表、分库分表后的问题
第105节课:水平分表的实现-1:部分相关开源产品、以及它们实现的大致思路、现状是需要自己去实现
第106节课:水平分表的实现-2:基本的实现思路、可实现的层面分析
第107节课:代码演示水平分表的实现-1:设计思路、导航表设计等
第108节课:代码演示水平分表的实现-2:代码实现导航、分别调用,以及合并处理等
第109节课:MySQL Fabric-1:概述、基本概念、基本的安装配置
第110节课:MySQL Fabric-2:HA配置使用、Sharding配置使用
-----以下为数据库性能优化部分------------
第111节课:MySQL的主从复制:基本实现的原理、常用拓扑结构、以及具体的配置使用;MySQL的读写分离
第112节课:Galera for MySQL的集群-1:概述、特点、基本概念、基本的复制过程、使用注意
第113节课:Galera for MySQL的集群-2:安装配置、复制功能的演示、常用的监控管理命令
第114节课:MySQL的HA和负载均衡:为何需要、常见的架构、实现方案的演示
第115节课:SQL优化方法:截取SQL语句、识别有问题的SQL语句、确认语句执行、语句分析、语句优化、优化验证
第116节课:常见的MySQL服务器配置优化;NoSQL的应用;其它内容的说明

适应人群

     1:有一定工作经验,还未从事架构工作,但想要向架构方面发展的朋友
     2:已经开始从事架构工作,但想要系统学习提升的朋友
     3:已经掌握阶段一课程的内容,想要继续深化、更加实战化的朋友
     4:有一定开发经验,想要系统学习架构方面的知识,扩展知识面和提升开发能力的朋友

特别说明

     1:本课程是关注于架构设计,不关注业务设计,所以想要学习业务建模、软件的概要或详细设计的朋友,不适合选择本课程,对于软件设计方面的内容,我们会开设专门的软件设计类课程进行讲述,比如:框架设计、API设计、系统建模、设计模式综合应用、软件系统重构等等。
     2:毕竟软件架构和软件设计关注的是不同层面的东西,当然,在国内目前的情况是,很多公司的软件架构和软件设计是同一批人员。不过由于内容实在太多,因此我们把软件架构和软件设计分开成不同的课程体系。

下载说明(免费下载 免费学习)

     登录后才能获取具体下载信息,请点击前往登录 您的账号信息不全,需完善信息才能获取具体下载信息,请点击前往完善信息 点击查看下载信息