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

课程说明:

     1:阶段三的课程新关注应用中的搜索、日志分析、分布式、JVM调优等实用功能,示例更深入、更具体,更加接近实际应用。
     2:阶段三的课程内容延续前面课程的内容,继续关注分布式架构和性能优化,在已经构建好的架构体系上,通过解决很多实际应用中的问题,来不断深化和完善,从而系统的学习和掌握大型分布式应用的架构和应用开发
     技术要点:
     1:新关注应用中的搜索、日志分析、分布式、JVM调优等实用功能,示例更深入、更具体,更加接近实际应用
     2:延续前面课程的内容,继续关注分布式架构和性能优化,在已经构建好的架构体系上,通过解决很多实际应用中的问题,来不断深化和完善,从而系统的学习和掌握大型分布式应用的架构和应用开发

课程内容:

     一:分布式搜索引擎ElasticSearch快速上手,大致包括:
         1:ES提供的各类接口的功能、基于Java的开发等
         2:深化ES各部分的功能应用;理解ES各个部分的实现机制等
         3:ES在电商中的典型应用,比如:通用搜索、按商品属性搜索等
     二:ELK日志数据查询、挖掘和分析快速上手,大致包括:
         1:Logstash日志处理快速上手
         2:Kibana数据分析可视化快速上手
         3:ELK在电商中的典型应用
     三:Dubbo+Zookeeper分布式架构,大致包括:
         1:Zookeeper开发快速上手群
         2:Dubbo开发快速上手
         3:基于Dubbo的分布式应用架构设计
     四:JVM和性能调优,大致包括:
         1:JVM机制和原理
         2:JVM性能监控和调优
         3:JVM调优实战

主讲老师:CC老师

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

课程大纲:

第01节课:整体课程介绍
-----以下为分布式搜索引擎ElasticSearch部分----
第02节课:Elasticsearch是什么、能干什么、特性;ES的安装
第03节课:安装常用插件:Head、ik、mavel
第04节课:基本概念的学习
第05节课:基本使用-1,包括:请求格式、返回、创建索引、查看索引、插入数据
第06节课:基本使用-2,包括:查询数据、修改数据、删除数据、删除索引
第07节课:简单查询:ES搜索的方式、关于timeout、多索引和多类别、分页、在集群系统中深度分页、关于routing、关于加减符号
第08节课:学习ES的基本流程,包括:准备索引阶段、构建索引数据、查询阶段
第09节课:ES的API约定,包括:多索引参数、通用参数等
第10节课:索引操作,包括:创建、获取、打开关闭、Mapping操作、设置、分析器等等
第11节课:索引管理和索引配置,包括:索引管理的API,索引的配置,比如内存控制器、数据缓存等
第12节课:详细学习Mapping第一部分,包括:概念、数据类型、属性设置、重点讲了analyzed和store
第13节课:详细学习Mapping第二部分,包括:继续讲述各种数据类型的属性设置,Token Count类型、多值字段、内部对象映射、内部对象数组等
第14节课:详细学习Mapping第三部分,包括:元数据类型,_source、_all、_id、Mapping Parameters、路由映射、fielddata等
第15节课:详细学习Mapping第四部分,包括:动态映射、_default_ 映射、动态字段映射、动态模板、自定义动态索引、自定义字段映射
第16节课:理解Lucene如何处理文档、倒排索引以及Lucene中的倒排索引
第17节课:理解索引,包括:ES的倒排索引、动态索引、删除和更新、合并段、Refresh和Flush等
第18节课:学习分析器,包括:分析器的基本构成、配置样例、缺省的Analyzer、内建的分析器、使用分析器等
第19节课:重新索引数据、索引别名(包括别名的各种操作)、零停机时间,并演示如何使用索引别名在零停机时间内从旧的索引切换到新的索引
第20节课:学习DSL,包括:基本语法、参数、条件、分页、排序、字段过滤、Field Data Fields、设置权重、最低评分等
第21节课:学习结构化搜索,包括:term、terms、range、exists、missing、prefix、wildcard、regexp、fuzzy、type、ids等查询,还有复合查询、Bool查询等等
第22节课:学习结构化过滤,包括:和结构化查询的异同、常用的过滤语句、查找准确值、范围查询(包括日期范围)等
第23节课:全文搜索第一部分,包括:全文搜索的概念、分类,match查询(细讲各种细节情况,比如:查询多个词、提高精度、控制精度等)
第24节课:全文搜索第二部分,包括:短语搜索、短语前缀搜索、组合查询、multi_match、Query String Query、Simple Query String Query等
第25节课:与搜索相关的杂项知识,包括:一次查询多个文档、批量操作、确定分析器、查询重写、理解分布式搜索等
第26节课:学习ES的Script,包括:开启脚本功能、设置要使用的脚本语言、使用脚本的方式,并具体演示了各种使用脚步的方式
第27节课:评分和重新评分,包括:理解相关性、TF/IDF(即检索词频率/反向文档频率)、评分说明等;重新评分的方式,并具体演示
第28节课:函数评分,包括:语法形式、类型、具体的使用示例,比如:script_score、weight 、random_score、Field Value factor等
第29节课:相关性排序失效;高亮显示,包括三种高亮的设置方式,以及设置高亮显示的Html的Tags;日期筛选,包括基本的日期表达式
第30节课:与搜索相关的杂项知识,包括:Post Filter、搜索偏好、字段统计API、Update By Query
第31节课:重建索引的方法、索引词频率、滚屏搜索
第32节课:Span查询,包括:span_term查询、span_multi、span_first、span_near、span_or、span_not、span_containingspan_within等
第33节课:嵌套查询第一部分,包括:嵌套的概念、和Object类型的区别、解决的问题,嵌套对象映射、查询嵌套对象等
第34节课:嵌套查询第二部分,包括:以嵌套栏位排序、查询嵌套隐藏的内容、嵌套聚合;Parent-Child查询
第35节课:Geo查询第一部分,包括:地理坐标点、geo_bounding_box、geo_distance、geo_distance_range、减少坐标点的内存使用、排序、Geohash概述、映射和Geohash Cell过滤器等
第36节课:Geo查询第二部分,包括:地理位置聚合、geo_distance按距离聚合、geohash_grid聚合器、geo_bounds范围边界聚合器、地理形状映射、查询地理形状等
第37节课:聚合第一部分,包括:聚合的类型、基本语法、Metrics聚合 之(Avg、sum、max、min、stats、cardinalityExtended Stats、Top hits)
第38节课:聚合第二部分,包括:Metrics聚合 之 Value Count;Bucket聚合 之 Histogram、Date Histogram、Range、Date Range、Terms、Filter、Filters、Missing等
第39节课:聚合第三部分,包括:Pipeline、bucket_path语法、Pipeline 之 Avg、max、min、sum、stats、extended_stats Bucket、Derivative Bucket、Cumulative Sum、Bucket Script、Bucket Selector等
第40节课:ES配置,包括:环境变量、系统配置、ES自身的配置、索引配置、日志配置等
第41节课:ES集群第一部分,包括:查看集群健康、ES节点类型、主节点、数据节点、客户端节点、部落节点等
第42节课:ES集群第二部分,包括:理解索引和分片、理解分片-复制、理解分片-consistency(一致性)、timeout、执行的顺序步骤、多文档模式、理解路由等
第43节课:ES集群第三部分,包括:集群API、Cat API
第44节课:ES集群第四部分,包括:节点发现、主节点选举、故障检测、集群状态维护、集群分片配置 等
第45节课:ES的Java开发第一部分,包括:ES Java API,代码示例常用的功能第一部分
第46节课:ES的Java开发第二部分,代码示例常用的功能第二部分
第47节课:ES和Spring集成开发第一部分,包括:ES与Spring的集成,代码示例常用的功能第一部分
第48节课:ES和Spring集成开发第二部分,代码示例常用的功能第二部分
第49节课:优化建议第一部分,包括:机器配置、ES部署和配置、优化建议-集群等
第50节课:优化建议第二部分,包括:优化建议-索引、优化建议-查询、其它配置优化等
第51节课:应用ES第一部分,包括:分析到底哪些功能适合使用ES来实现,并讲述部分功能实现的思路
第52节课:应用ES第二部分,包括:讲述部分功能实现的思路

-----以下为ELK日志数据查询、挖掘和分析部分------
第53节课:ELK简介:是什么、ELK最基本的组合方式、ELK的特性和常见应用常境;Logstash简介、安装运行等
第54节课:Logstash的HelloWorld,实现从日志文件读取日志,并存放到ES中;插件管理
第55节课:配置语法第一部分,包括:基本结构、数据类型、字段引用、条件判断等
第56节课:配置语法第二部分,包括:在配置里面使用环境变量、自动重载配置文件、命令行参数、把命令行参数配置到文件等
第57节课:Input插件第一部分,包括:stdin插件、file插件、syslog插件、tcp插件等
第58节课:Input插件第二部分,包括:log4j插件、redis插件、beat插件等
第59节课:Beats平台概述、Filebeat上手、Filebeat输出到Logstash、Filebeat输出到redis等
第60节课:Filter插件第一部分,包括:grok插件,包括语法形式等
第61节课:Filter插件第二部分,包括:date插件、mutate插件、json插件、kv插件、ruby插件等
第62节课:Output插件,包括:elasticsearch插件、其它插件介绍等
第63节课:Codec插件,包括:json插件、multiline插件等
第64节课:常见的基本应用第一部分,包括:处理Nginx访问日志、处理Nginx错误日志
第65节课:常见的基本应用第二部分,包括:处理Tomcat访问日志、处理MySql慢查询日志
第66节课:Kibana简介、安装运行、HelloWorld的准备数据部分
第67节课:HelloWorld,演示几种Kibana图的基本使用方式
第68节课:Discover页面的功能操作;ES Query String查询语法
第69节课:Visualize页面的功能操作;Visualize之区块图
第70节课:Visualize之数据表格、折线图、MarkDown Widget、Metric、饼图、瓦片地图、竖条图
第71节课:Dashboard页面的功能操作;Setting页面;常见的基本应用示例

-----以下为Dubbo+Zookeeper分布式架构部分-----
第72节课:Zookeeper简介、安装运行和基本概念(数据模型、Znode数据模型、命名、计时、分类)
第73节课:zkCli基于命令行的操作、四字命令、Zookeeper的Java客户端操作HelloWorld:构建开发环境、创建和获取node
第74节课:理解数据访问和Session、Watcher开始和理解Watcher,代码示例Watcher在数据改变时候的使用
第75节课:代码示例Watcher在子节点改变时候的使用,理解一致性保证:顺序一致性、原子性、最终一致性、可靠性、时效性
第76节课:Zookeeper的集群:集群配置、单机配置集群、集群中Zookeeper的角色;理解读、写(更新)模式,了解Zab协议
第77节课:常见应用的代码示例-1:命名服务、数据发布与订阅(配置中心)
第78节课:常见应用的代码示例-2:负载均衡
第79节课:常见应用的代码示例-3:分布式通知/协调
第80节课:常见应用的代码示例-4:集群机器监控、集群Master选举
第81节课:常见应用的代码示例-5:分布式锁
第82节课:常见应用的代码示例-6:分布式队列、屏障(Barrier) 和双屏障
第83节课:Dubbo简介、特点,Dubbo服务治理、Dubbo的架构
第84节课:Dubbo的HelloWorld:准备开发环境、服务端开发和配置、客户端开发和配置
第85节课:Dubbo支持的协议、注册中心的配置:多注册中心、多组注册中心;配置基础:xml配置、查找顺序、properties配置、多种配置的查找顺序、注解配置
第86节课:Dubbo特性之启动时检查,功能、配置、代码示例应用
第87节课:Dubbo特性之集群容错,功能、集群容错模式、内部机制、配置、代码示例应用
第88节课:Dubbo特性之负载均衡,功能、负载均衡策略、配置、代码示例应用;Dubbo特性之线程模型,功能、Dispatcher和ThreadPool的选项、配置、代码示例应用
第89节课:Dubbo特性之直连提供者、只订阅和只注册,功能、配置、代码示例应用
第90节课:Dubbo特性之静态服务、多协议、多注册中心、服务分组和多版本,功能、配置、代码示例应用
第91节课:Dubbo特性之分组聚合,功能、配置、代码示例应用
第92节课:Dubbo特性之泛化引用和泛化实现,功能、配置、代码示例应用,以及他们的异同
第93节课:Dubbo特性之回声测试、上下文信息、隐式传参和异步调用,功能、配置、代码示例应用
第94节课:Dubbo特性之本地调用和参数回调,功能、配置、代码示例应用
第95节课:Dubbo特性之事件通知,功能、配置、代码示例应用
第96节课:Dubbo特性之本地存根,功能、配置、代码示例应用
第97节课:Dubbo特性之本地伪装、延迟暴露和并发控制,功能、配置、代码示例应用
第98节课:Dubbo特性之连接控制、延迟连接、粘滞连接、令牌验证、优雅停机、主机绑定、日志适配和访问日志,功能、配置、代码示例应用
第99节课:Dubbo的管理控制台:功能、安装配置、基本使用:降权、倍权、降级、禁用/启用、访问控制、负载均衡、容错等
第100节课:Dubbo的监控中心:功能、安装配置、基本使用
第101节课: Dubbo特性之路由规则、配置规则、服务降级和Telnet命令,功能、语法规则、配置、代码示例应用
第102节课: Dubbo特性之服务容器,Dubbo服务的运行方式、各个容器的配置示例、代码演示用Maven来构建微服务应用
第103节课: 服务化最佳实践和Dubbo的推荐用法:分层、分包、粒度、版本、兼容性、枚举值、序列化、异常、调用等
第104节课: Dubbox简介,Dubbo RESTful Remoting应用蓝图,Dubbox配置使用:引入Dubbox工程源码,编译打包等
第105节课: RESTful Remoting简介;以及Dubbox的HelloWorld
第106节课: Dubbox的RESTful服务端开发:讲述服务端的各种功能、配置以及代码示例实现
第107节课: Dubbox的RESTful客户端开发;Dubbox的RESTful和SpringMVC的选择
第108节课: 微服务架构初步:什么是微服务架构、微服务架构和SOA、微服务的优点和缺点、当前常见的微服务框架;构建演示应用的开发环境
第109节课: 在实际应用中应用Dubbo,分析到底哪些功能适合使用Dubbo来实现、Dubbo结合具体的业务功能
第110节课: 代码示例Dubbo结合具体的业务功能:部署到Tomcat里面、以jar的形式独立运行服务

-----以下为JVM和性能调优部分------------
第111节课:整体课程概览、认识JVM、JVM规范:字节码指令集、数据类型和值、栈帧、特殊方法、类库等
第112节课:Class文件格式-1,通过阅读示例类的字节码、JVM规范来同步学习和理解。
第113节课:Class文件格式-2,继续阅读示例类的字节码 和 JVM规范
第114节课:Class文件格式-3;学习ASM的基本开发、编程模型
第115节课:代码示例使用ASM和ASMifer工具,来开发一个类似AOP功能的时间统计工具
第116节课:类加载、连接和初始化的基本知识;代码示例查看运行期的ClassLoader;类加载器和双庆委派模型
第117节课:代码示例双亲模型、破坏双亲模型的情况
第118节课:类的连接,主要要验证的内容、解析;类的初始化;代码示例各种主动使用类的初始化时机;类的卸载
第119节课:内存分配-1:JVM的简化架构、运行时数据区、PC寄存器、Java栈、Java堆、方法区、元空间、运行时常量池、本地方法栈;具体学习堆的结构:Eden区、存活区、老年代;对象在内存中存储的布局
第120节课:内存分配-2:Java堆的参数,代码示例参数配置的影响、各种情况的内存溢出;MAT的基本使用;GC日志格式等
第121节课:内存分配-3:代码示例新生代、老年代、Eden区、存活区各自内存分配大小的设置;代码示例栈溢出、元空间的溢出
第122节课:字节码执行引擎-1:深入理解栈帧、理解运行期操作数和局部变量表之间的交互关系
第123节课:字节码执行引擎-2:理解方法调用、代码示例来理解静态分派和动态分派、理解如何执行方法中的字节码指令
第124节课:垃圾回收-1:什么是垃圾、引用计数法、根搜索算法、代码示例引用分类(强引用、软引用、弱引用、虚引用)第一部分
第125节课:垃圾回收-2:代码示例引用分类(强引用、软引用、弱引用、虚引用)第二部分、判断是否垃圾的步骤、代码示例finalize方法挽救对象;GC类型、Stop-The-World等
第126节课:垃圾收集算法:标记清除法、复制算法、分配担保、标记整理算法;垃圾收集器-1:Serial(串行)收集器/Serial Old收集器,代码示例使用;ParNew(并行)收集器、新生代Parallel Scavenge收集器/Parallel Old收集器
第127节课:垃圾收集器-2:CMS(并发标记清除)收集器、G1(Garbage-First)收集器,代码示例他们的使用;GC性能、JVM内存配置原则等
第128节课:高效并发-1:Java内存模型、内存间交互操作、内存间交互操作的规则;代码示例volatile在多线程环境下仍然是不安全的
第129节课:高效并发-2:指令重排、指令重排的基本原则,代码示例指令重排;多线程中的有序性、Java线程安全的处理方法
第130节课:高效并发-3:锁的优化,并代码示例:自旋锁与自适应自旋、锁消除、锁粗化、偏向锁;JVM中获取锁的步骤
第131节课:性能监控与故障处理工具-1:jps、jinfo、jstack、jmap、jhat、jstat的基本功能和基本用法
第132节课:性能监控与故障处理工具-2:jstatd、jsadebugd、jcmd、图形化工具JMC的基本功能和基本用法
第133节课:性能监控与故障处理工具-3:图形化工具jconsole、jvisualvm的基本功能和基本用法
第134节课:性能监控与故障处理工具-4:远程连接(jmx 和 jstatd 两种方式)、代码示例 线程占用、内存分配溢出、线程死锁等,通过监控工具去监测和辅助解决
第135节课:调优实战-1:调什么、如何调、JVM调优的目标、JVM调优冷思考、常见调优策略、调优经验、内存泄漏等
第136节课:调优实战-2:通过一个示例来系统的演示调优的步骤和方法

适应人群

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

特别说明

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

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

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