Java高级架构师(一)第01节:整体课程概览
本课程专注于构建:高可扩展性、高性能、大数据量、高并发、分布式的系统架构。 从零开始、全面系统、成体系的软件架构课程,循序渐进的讲述构建上述系统架构所需要的各种技术知识和技能。
适应人群:
1:有一定工作经验,还未从事架构工作,但想要向架构方面发展的朋友
2:已经开始从事架构工作,但想要系统学习提升的朋友
3:了解一些架构的知识,但是一直停留在理论上,不会实际操作,也无法让这些理论知识落地的朋友
4:有一定开发经验,想要系统学习架构方面的知识,扩展知识面和提升开发能力的朋友
技术要点:
1:构建基本的业务功能块,基于Maven+Git+Spring mvc+spring+mybatis+ehcache+mysql+X-gen代码生成 
2:高扩展性的分布式体系架构(基于Nginx+Varnish+Memcache+ActiveMQ) 
3:NoSQL的合理使用和架构优化(基于MongoDB) 
4:分布式文件存储和架构优化(基于MogileFS)
课程共计148节课程,每天至少完成6节课程,共计需要25天。计划终点:2018年12月10号---2019年01月05号
【课程内容】
第01节课:整体课程内容概览
-------------Maven补充和Git-------------
第02节课:Maven补充:分模块、分工程管理 
第03节课:Maven补充:多模块,多Web应用,合并成一个War包 
第04节课:Git快速上手:Git简介、基本原理、安装、Git服务器配置、插件Egit 
第05节课:Git快速上手:TortoiseGit的本地使用 
第06节课:Git快速上手:Egit的本地使用 
第07节课:Git快速上手:TortoiseGit和Egit的远程使用,以及冲突解决,包括:内容冲突、树冲突、逻辑冲突
-------------基本业务功能块构建-------------
第08节课:要完成的基本业务功能介绍、基本的数据字典 
第09节课:搭建基础的开发环境:Eclipse+Maven+Git 
第10节课:使用Spring+Mybatis来实现Customer的DAO部分 
第11节课:Mybatis的分页实现,DAO的简单测试 
第12节课:Service部分的实现,以及基本的基础模块开发 
第13节课:基于Spring MVC实现Web层开发 
第14节课:基本的新增和列表页面,还有分页的tag开发和测试 
第15节课:带查询条件的分页、修改和删除页面的开发和测试 
第16节课:查询页面、Mybatis动态查询的实现,Json的自动拼装 
第17节课:提炼公共的Webmodel,开始X-gen生成的模板制作,做DAO部分的模板 
第18节课:制作X-gen生成需要的service、web层需要的模板 
第19节课:制作X-gen生成需要的数据,以及相应的Visitor 
第20节课:制作X-gen生成需要的Action,还有部分的Visitor 
第21节课:通过X-gen生成商品模块,并调整整个生成的模板和程序 
第22节课:通过X-gen生成购物车模块,并调整整个生成的模板和程序 
第23节课:通过X-gen来生成订单主模块、明细模块,还有库存管理模块 
第24节课:给客户管理模块加入ehcache,然后把现有的工程加入到Git中 
第25节课:实现前端的业务登录、首页等功能 
第26节课:测试并调整登录的业务功能,使用Cookie来保存用户信息 
第27节课:实现index功能的开发 
第28节课:Index和商品详细描述页面实现,购物车的实现 
第29节课:完成下订单和修改库存的功能 
第30节课:把基础的业务应用配置并部署到Linux服务器上去
-------------Nginx-------------
第31节课:Nginx简介、安装和基本运行 
第32节课:Nginx的进程结构、基本配置等 
第33节课:Nginx常用核心模块指令的功能和配置使用 
第34节课:Nginx的Http模块部分的功能和配置使用 
第35节课:Nginx的Location区段的功能和配置使用 
第36节课:Nginx的反向代理模块的功能和配置使用 
第37节课:Nginx结合实际应用,来实现反向代理和动静分离的功能 
第38节课:Nginx的负载均衡模块,以及结合实际应用的配置 
第39节课:Nginx的Rewrite模块的配置和使用 
第40节课:Nginx更多模块的基本功能和配置,常见功能的配置示例 
第41节课:Nginx的配置优化以及使用建议 
第42节课:应用上Nginx过后的体系结构,以及在更大访问量下,体系结构如何变化
-------------Varnish-------------
第43节课:Varnish简介、安装和基本使用 
第44节课:VCL简介、基本语法和基本配置使用,包括负载均衡的配置使用 
第45节课:VCL来配置实现健康检查、ACL访问控制等功能 
第46节课:Grace模式和Saint模式的理解和应用 
第47节课:VCL常用的函数和常用的Http头 
第48节课:VCL的子程序,Ation和理解Request流程 
第49节课:VCL的变量,常见的VCL应用片断 
第50节课:使用CLI来管理Varnish,掌握如何清除缓存,varnishadm命令 
第51节课:Varnishd命令和运行期参数,理解参数和选项的功能 
第52节课:Varnish的日志操作和Varnish的共享内存:Varnishlog、Varnishtop、Varnishhist、Varnishsizes、Varnishnsca、Varnishreplay 
第53节课:规划Varnish的缓存大小;Varnishstat统计信息;提高Varnish的命中率 
第54节课:Varnish的性能调优和基本的配置使用建议 
第55节课:把Varnish和基本应用,还有Nginx组合起来使用 
第56节课:基本的性能测试;Varnish的监控和初步优化 
第57节课:应用上Varnish后的体系结构,以及体系结构的演变
-------------Memcached-------------
第58节课:Memcached简介、缓存的含义、安装、基本配置、启动和基本使用 
第59节课:Memcached基本的工作原理、两阶段哈希;Memcached的操作命令:set、add、replace、append、prepend、cas、get 、 gets、delete、incr/decr等 
第60节课:stats命令、stats sizes命令、flush_all命令、version命令、stats settings、stats items、stats slabs区块统计等 
第61节课:理解Memcached的数据存储方式,理解Slab Allocator的方式、理解新建Item分配内存过程 
第62节课:内存分配的Chunk、Slab分配演示、Memcached的数据存储方式的缺点;理解Memcached的数据过期方式:延迟/惰性 过期,LRU,懒惰删除机制 
第63节课:Memcached的Java客户端开发、Memcached和Spring集成开发 
第64节课:理解Memcached的分布式方式、分布式中根据余数计算分散的方式、一致性Hash算法、虚拟节点 
第65节课:Memcached内存调优建议,调优目标、调优方法,常见问题的解决,使用Memcached-tool来辅助调优 
第66节课:Memcached的限制和使用建议,Memcached的典型适用场景,不适合使用Memcached的场景;Memcached的批量导入导出 
第67节课:分析到底把哪些内容放到Memcached里面进行缓存,Memcached结合业务功能进行开发 
第68节课:继续Memcached结合业务功能进行开发和测试 
第69节课:Nginx+Varnish+基本业务功能+Memcached结合开发使用,进行基本的性能测试,Memcached的监控和初步优化 
第70节课:现有的系统,应用上Memcached后的体系结构,思考体系结构如何演变
-------------ActiveMQ-------------
第71节课:ActiveMQ简介、功能和特点;消息中间件;ActiveMQ安装和基本使用;消息收发HelloWorld 
第72节课:JMS基本概念,PTP和Pub/Sub域、JMS的消息结构:消息头,属性和消息体 
第73节课:JMS的可靠性机制、消息的接收确认、持久化、过期、优先级、临时目的地、持久订阅本地事务等;PTP模型;Pub/Sub模型 
第74节课:JMS的API结构,一个JMS应用开发的基本步骤;代码示例非持久的Topic消息收发;代码示例持久的Topic消息收发 
第75节课:Broker的启动方式,内嵌到Java中启动Broker,利用Spring集成启动Broker 
第76节课:ActiveMQ结合Spring开发:环境设置、Spring配置、Queue消息收发;Topic消息收发;ActiveMQ结合Spring开发最佳实践和建议 
第77节课:连接到ActiveMQ,ActiveMQ支持的传输协议和配置:TCP、NIO、UDP、VM、SSL、HTTP/Https等协议 
第78节课:ActiveMQ的消息存储持久化;KahaDB的方式、AMQ的方式、JDMC的方式、Memory的方式 
第79节课:在一台服务器上启动多个Broker;ActiveMQ的静态网络链接;Static networkConnector的基本原理;networkConnector配置的可用属性 
第80节课:演示在static桥接下,多线程的consumer访问集群,消费消息的不均衡性; 
第81节课:理解丢失的消息这种场景,配置和演示static集群下的消息回流功能 
第82节课:容错的链接,Failover协议,可用的配置参数;ActiveMQ的动态网络链接:多播协议multicast,Discovery协议,Peer协议,Fanout协议 
第83节课:ActiveMQ的集群:Queue的消费者集群、Broker集群、Master Slave(基于共享储存的、JDBC实现的、复制LevelDB的方式) 
第84节课:Destination高级特性:通配符、组合队列、Configure Startup Destinations、删除不活动的Destinations、Destination Options 
第85节课:Destination高级特性:虚拟Destinations、虚拟主题、镜像队列、Per Destination Policies 
第86节课:Message Dispatch高级特性:消息游标(Store-based、VM、File-based)、异步发送 
第87节课:Message Dispatch高级特性:Dispatch Policies(严格顺序分发策略、轮询分发策略) 
第88节课:Message Dispatch高级特性:Optimized Acknowledgement、生产者流量控制 
第89节课:Message高级特性:Message Properties、Advisory Message、延迟和定时消息投递 
第90节课:Message高级特性:Blob Messages、Message Transformation 
第91节课:Consumer高级特性:独有消费者、消费者异步分发、优先级、管理持久订阅者、消息组 
第92节课:Consumer高级特性:消息选择器、重投递策略、慢消费者处理 
第93节课:监控和管理Broker、集成ActiveMQ和Tomcat 
第94节课:什么时候使用ActiveMQ、ActiveMQ优化和使用建议 
第95节课:应用ActiveMQ:分析到底把哪些功能用ActiveMQ来辅助实现,ActiveMQ结合业务功能的开发第一部分 
第96节课:ActiveMQ结合业务功能的开发第二部分,并测试相应的功能 
第97节课:ActiveMQ结合业务功能的开发第三部分,并测试相应的功能,然后上传到服务器上 
第98节课:Nginx+Varnish+基本业务功能+Memcached+ActiveMQ组合运行测试 
第99节课:基本的性能测试分成两种,一种是Nginx+Varnish+基本业务功能+Memcached,另外一种是Nginx+Varnish+基本业务功能+Memcached+ActiveMQ 
第100节课:应用上ActiveMQ后的体系结构,以及今后系统架构的演变
-------------MongoDB-------------
第101节课:本部分课程总体概览,MongoDB简介:是什么、NoSQL的优缺点、CAP定理和BASE原则、MongoDB的特点 
第102节课:MongoDB安装和基本使用,MongoDB启动参数说明 
第103节课:MongoDB基本概念:数据库、集合、文档、_id、基本数据类型等 
第104节课:MongoDB增删改操作第一部分 
第105节课:MongoDB增删改操作第二部分 
第106节课:MongoDB查询操作第一部分:指定需要返回的键、按条件查询,包括多种操作符、正则表达式 
第107节课:MongoDB查询操作第二部分:查询数组、查询内嵌文档、分页、排序、游标、存储过程等 
第108节课:聚合框架第一部分:概念、管道操作符($match、$project、$group、$sort、$limit) 
第109节课:聚合框架第二部分:$group、$unwind、$sort等的操作使用,MapReduce的开发使用 
第110节课:聚合框架第三部分:更多MapReduce可选的键、聚合命令group的使用 
第111节课:理解MongoDB的文档存储机制 
第112节课:MongoDB的索引第一部分:创建、修改、删除索引,以及分析使用索引对查询的影响 
第113节课:MongoDB的索引第二部分:hint、强制全表扫描、唯一索引、复合索引、索引的集合等 
第114节课:Capped集合:功能、基本原理、创建和使用的语法;用GridFS存储文件:功能介绍、基本操作、基本原理 
第115节课:MongoDB的副本集第一部分:副本集简介、创建副本集、副本集的使用、rs函数、rs.status的说明 
第116节课:MongoDB的副本集第二部分:修改副本集配置、副本集中主节点的确定、成员配置选项——选举仲裁者、优先级、隐藏成员、延迟备份节点、创建索引 
第117节课:MongoDB副本集的基本原理:操作日志oplog、初始化同步的步骤、处理陈旧数据、心跳、成员状态、回滚等 
第118节课:MongoDB副本集的管理和MongoDB主从复制:以单机模式启动成员、副本集的配置、创建比较大的副本集、强制重新配置、把主节点变为备份节点等等;MongoDB主从复制 
第119节课:MongoDB的分片第一部分:分片功能介绍、分片和复制、Mongos、配置服务器、启动mongos进程、将副本集转换成为分片 
第120节课:MongoDB的分片第二部分:数据分片、指定分片的集合、分片的详尽示例 
第121节课:MongoDB的分片第三部分:块、拆分块、均衡器、限制分片大小、集群对数据的影响、理解MongoDB分片数据的分配方式 —— 一分片多区间等 
第122节课:MongoDB分片的片键选择:片键选择的重要性、片键规则、片键的几种类型:小基数片键、升序片键、随机分发的片键、基于某个业务的片键,以及好片键的建议 
第123节课:MongoDB分片的管理:列出所有的Shard、查看分片信息、查看集群信息摘要、检查配置信息、删除分片等 
第124节课:监控应用状态:查看正在进行的操作、系统分析器system.profile;用户身份验证; 
第125节课:备份和恢复,以及 数据导入导出 
第126节课:Java操作MongoDB:获取驱动、连接MongoDB服务、连接池的配置、操作MongoDB 
第127节课:MongoDB和Spring集成开发:集成、使用MongoTemplate来进行数据的CRUD 
第128节课:MongoDB应用建议及最佳实践 
第129节课:分析应用MongoDB的功能,MongoDB结合到应用的开发实现一 
第130节课:MongoDB结合到应用的开发实现二,并上传服务器测试 
第131节课:应用上MongoDB后的体系结构变化、今后架构的继续变化
-------------ogileFS-------------
第132节课:MogileFS简介、是什么、有什么、能干什么,以及特点和适用性; 
第133节课:通过源码安装MogileFS、基本的配置等 
第134节课:理解MogileFS的基本概念、使用方式和各种命令 
第135节课:理解MogileFS,包括:高层流程、存储节点、表说明 
第136节课:MogileFS的Java客户端开发,包括:基本的Java客户端开发,和Spring集成开发 
第137节课:基于MogileFS的小应用示例第一部分:构建好整个工程的开发环境和准备 
第138节课:基于MogileFS的小应用示例第二部分:使用x-gen来生成新的模块,并调试通过CRUD的功能 
第139节课:基于MogileFS的小应用示例第三部分:使用Spring web MVC来实现文件的上传下载 
第140节课:基于MogileFS的小应用示例第四部分:把上传的文件保存到MogileFS里面,并能从里面获取到文件 
第141节课:MogileFS和Nginx的集成,MogileFS和Memcached的集成 
第142节课:应用上MogileFS之后,系统体系结构的变化,以及文件更多,访问更频繁的情况下,体系结构的变化
-------------小结及整体部署-------------
第143节课:阶段一小结,阶段一构建的基本架构,部署的环境介绍和部署计划 
第144节课:整理阶段一的代码和配置,把整个工程打成一个可以部署的war,并发布到服务器上 
第145节课:配置服务器端的nginx和varnish,配置MogileFS,并测试通过 
第146节课:配置Memcached和MongoDB,并测试运行通过 
第147节课:配置ActiveMQ,并通过web应用调用,测试运行通过 
第148节课:阶段一之后的发展方向,以及在更高的并发,更大的数据量的情况下,整个系统架构的演变思路
Java高级架构师(一)第01节:整体课程概览的更多相关文章
- 好好讲一讲,到底什么是Java高级架构师!
		
一. 什么是架构师 曾经有这么个段子: 甲:我已经应聘到一家中型软件公司了,今天上班的时候,全公司的人都来欢迎我. 乙:羡慕ing,都什么人来了? 甲:CEO.COO.CTO.All of 程序员,还 ...
 - JAVA高级架构师基础功:Spring中AOP的两种代理方式:动态代理和CGLIB详解
		
在spring框架中使用了两种代理方式: 1.JDK自带的动态代理. 2.Spring框架自己提供的CGLIB的方式. 这两种也是Spring框架核心AOP的基础. 在详细讲解上述提到的动态代理和CG ...
 - Java高级架构师(一)第28节:Index、商品详细页和购物车
		
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...
 - Java高级架构师(一)第16节:Mybatis动态查询和Json自动拼装
		
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...
 - Java高级架构师(一)第14节:新增和列表页面和分页tag
		
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...
 - Java高级架构师(一)第42节:应用上Nginx过后的体系结构
		
以后的架构思考方向: 体系结构的演变
 - Java高级架构师(一)第31节:Nginx简介、安装和基本运行
		
第一节:主要介绍Nginx和安装
 - Java高级架构师(一)第26节:测试并调整登录的业务功能
		
主Index的处理Java: package com.sishuok.architecture1; import org.springframework.beans.factory.annotatio ...
 - Java高级架构师(一)第25节:实现前端的业务登录等功能
		
package com.sishuok.architecture1; import javax.servlet.http.Cookie; import javax.servlet.http.HttpS ...
 
随机推荐
- AngularJs开发——控制器间的通信
			
AngularJs开发——控制器间的通信 指令与控制器之间通信,无非是以下几种方法: 基于scope继承的方式 基于event传播的方式 service的方式 基于scope继承的方式 最简单的让控制 ...
 - Every Programmer Should Know These Latency Numbers
			
Every Programmer Should Know These Latency Numbers 1秒=1000毫秒(ms) 1秒=1,000,000 微秒(μs) 1秒=1,000,000,00 ...
 - 关于JAVA正则匹配空白字符的问题(全角空格与半角空格)
			
今天遇到一个字符串,怎么匹配空格都不成功!!! 我把空格复制到test.properties文件 显示“\u3000” ,这是什么? 这是全角空格!!! 查了一下 \s 不支持全角 1.& ...
 - [01]url请求到渲染
			
http状态码有哪些?分别表示什么意思?状态码告知从服务器返回的请求结果.2XX表明请求被正常处理了.200OK.204No Content(服务器接收的请求已经处理成功,但在返回的响应报文中不包含实 ...
 - 组合数学--Polya 原理及典型应用
			
Redfield-Polya (Pólya enumeration theorem,简称PET)定理是组合数学理论中最重要的定理之一.自从 1927 年 Redfield 首次运用 group red ...
 - Go 实现 soundex 算法
			
[转]http://www.syyong.com/Go/Go-implements-the-soundex-algorithm.html SOUNDEX 返回由四个字符组成的代码 (SOUNDEX) ...
 - 【2016-09-27-DP小练】
			
得分250..我真是个250... 犯了一些很搞笑的错.. f[i][j][k]表示第i个苹果,现在在j这个位置,还能用k次转移. 用i去更新i+1. 时间复杂度1000*2*30: 转移方程有个地方 ...
 - 关于dlib人脸对比,人脸识别
			
人脸检测 人脸特征点提取 人脸对比,等于两张人脸对比,识别 封装的所有识别函数,直接看下面调用就好了. # coding:utf-8 ''' 本本次封装,我主要是做两张人脸对比. 就只人脸识别部分,简 ...
 - 正则表达式解析基本json
			
var str='{"state": "SUCCESS","original": "C:\Users\liuhao_a\Deskt ...
 - python 列表表达式、生成器表达式和协程函数
			
列表表达式.生成器表达式和协程函数 一.列表表达式: 常规方式示例: egg_list=[] for i in range(100): egg_list.append("egg%s" ...