乐字节教育是集线上教育与线下培训于一体的全栈式教育机构,致力于研发高端IT技术,培养高端IT人才,让更多的人接受更好的教育是乐字节的教学理念。
今年夏天,乐字节推出Java架构师课程。课程使用国内唯一《业务驱动式项目实操》教学方案:
8个项目实操
2个源码级别实战
一个终极电商项目
项目流程:
本课程共含有以下篇章:
第一章:架构基础篇
第二章:高性能实战
第三章:分布式架构
第四章:微服务
第五章:电商订单实战
第六章:电商基础中台
第七章:电商大数据分析
第八章:电商原生云实战
第一章:架构基础
该篇章课程主要提升学生的基础知识包含工具的使用、设计模式以及常见的算法和数据结构,提升学生的技术硬件。课程主要包含设计工具篇(Maven、Git、IDEA)、计算机基础篇(Linux、常见数据结构、常见算法)以及源码提高篇(设计模式、源码品读)三个篇章。
一、课程核心技术点
工具篇提升工作开发效率,提高团队协作能力
计算机基础篇提升学生技术硬件,能够解决90%以上的算法面试问题
提高篇提升自学能力,能够快速定位到源码中核心脉络以及思想
二、课程适合哪些人群?
主要针对有一定工作经验,希望能够快速和系统的提升编程基础知识以及掌握快速高效的阅读源码的技巧,并且通过高效的工具提升自我的开发效率和团队协作能力。
三、课程类型
项目\专题\理论+项目\基础 专题\理论\实践
课程内容
4.1 工具
工欲善其事必先利其器,通过系统的学习IDEA、Maven、Git来提高自身的编码效率,提升团队协作能力,能够独立搭建Maven私服,并且使用Git能够搭建自己的GitLab,工具不光要会用,更加要用的更好,更加深入。
IDEA
Maven
Git
4.2 设计模式
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
创建型模式
结构型模式
行为型模式
4.3 源码品读
在互联网行业里,Spring MVC、Spring环境和MyBatis是实现线上服务必不可少的三个项目,通常简写为SSM,对SSM的架构原理和设计思想进行了全面剖析,从源代码分析入手,让学生更深入和更彻底地认识SSM,领略SSM等框架的架构之美和设计之美,从而使得我们在使用SSM进行开发时,不仅能知其然,还能知其所以然,让每个开发人员都能够通过对框架源码解析来了解优美而有效的设计之禅,从本质上提升对SSM底层原理的研究能力,并提高设计高并发线上服务的技能和技巧,另外,在互联网高并发服务的研发过程中,经常会遇到技术难题,需要进行技术攻关,这时我们需要阅读框架源码,找到问题的所在,如果我们提前对SSM框架的设计有所了解和研究,那么线上应急和技术攻关将可轻而易举的得到解决。
Spring
Spring5新特性
Spring MVC
Mybatis
4.4 计算机理论基础
在全球超级计算机TOP500强操作系统排行榜中,Linux的占比最近十几年长期保持在85%以上,且一直呈现快速上升趋势。随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政府、金融、农业、交通、电信等国家关键领域。本次主题将由浅到深一次讲解Linux的核心内容。
- Linux
4.5 数据结构和算法
数据结构和算法解决的是如何更省、更快地存储和处理数据的问题,因此,我们就需要一个考量效率和资源消耗的方法,这就是复杂度分析方法。在学习数据结构和算法的过程中,要学习它的「来历」、「自身的特点」、「适合解决的问题」以及「实际的应用场景」。学习数据结构和算法的过程,是非常好的思维训练的过程。本主题将庖丁解牛的解决企业以及面试中遇到的99%以上的数据结构和算法。
线性表
散列表
树
算法基本思想
排序算法
搜索
查找
4.6 项目实战
第二章:高性能实战
本章主要提升学生解决高并发的能力,提升项目的性能,“把所用户的访问请求都尽量往前推”。本章节主要包含设计JUC高并发篇(unsafe、Atomic、线程池、锁、AQS、关键字、集合类、控制相关、并发实战)、网络编程(网络编程基础、Netty、Websocket)二个部分。
课程核心技术点
1:JUC高并发篇能够针对于底层的理解根本上来解决并发问题;
2:网络编程篇能够通过网络的底层喝Netty来从根本上解决并发;
3:通过本章可以攻克性能调优,给自己的程序人生一次“弯道超车”的机会,让自己未来拥有更多的选择权掌控权!
课前技术储备
必备知识:有一定项目经验,真实的项目场景中遇到过并发的情况,有一定自主学习的能力,有基本的英语能力,有阅读底层源码的功底。
课程类型
专题\理论\实践
课程内容
4.1 JUC高并发篇
学习如何处理大型网站高并发问题,并反向更深入的学习了 Linux 。同时站在更高的角度去触探架构。
unsafe基础
Atomic原子类
线程池
AQS
锁
关键字
集合类
控制相关
并发实战
4.2 网络编程
网络编程基础
Netty
Websocket
实战篇 Springboot + Netty实现高性能的分布式服务架构
4.3 项目:手写高性能的分布式服务架构
第三章:分布式架构
整体系的分布式专题来应对高并发下的项目架构演变。出于高并发,高可用的考虑,项目的演变方向。本章节主要包含分布式网络(Nginx、Lvs)、分布式一致性(一致性基础理论BASE/CAP、Zookeeper、Consul、Etcd)、分布式消息(RabbitMQ、Kafka、RockeMQ)、分布式缓存(EhCache、Redis、Memcached)、分布式存储(MongoDB、Fastdfs、OSS云存储、实现一个分布式文件存储系统)五个部分。
课程核心技术点
1:分布式架构篇可以提升项目中的遇到的一些架构方面的问题
2:分布式架构篇提升学生技术硬件,能够解决90%以上的分布式面试问题
3:分布式架构篇能够将学生像架构师方向进行培养,形成架构师雏形
课前技术储备
必备知识:对于课程中一些内容实践使用过,有实际的项目经验,对于一些典型的框架与中间件有一定了解,比如Zookeeper、RabbitMQ等,有一定阅读源码的能力。
课程类型
项目\专题\理论+项目\基础
课程内容
4.1 分布式网络
Nginx
Lvs
4.2 分布式一致性
一致性基础理论BASE/CAP
Zookeeper
Consul
Etcd
4.3 分布式消息
RabbitMQ
Kafka
RocketMQ
4.4 分布式缓存
Redis一款内存高速缓存数据库。是完全开源免费的,用C语言编写的,遵守BSD协议,高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库。
EhCache
Redis
Memcached
4.5 分布式存储
MongoDB
Fastdfs
OSS云存储
4.6 实现一个分布式文件存储系统
第四章:微服务
SpringCloud是一个服务治理平台,是目前比较热门的一项技术。Dubbo在分布式架构中对于服务之间的通讯。主要针对微服务的学习,来加强日常工作的编码能力与解决问题的能力。
本章节主要包含Spring Cloud 篇(微服务架构介绍、Eureka注册中心、Ribbon负载均衡、Consul注册中心、OpenFeign服务调用、Hystrix服务熔断、Sentinel服务哨兵、Zuul服务网关、Gateway服务网关、Sleuth链路追踪、Config配置中心、Apollo配置中心、Consul配置中心、Bus消息总线)、Dubbo两个篇章。
课程核心技术点
1:学完本章之后会让微服务的开发变的非常的便捷。
2:学完本章之后可以学会一整套的微服务开发技术解决方案
3:学完本章之后可以解决分布式中的远程调用
课前技术储备
必备知识:对于课程中一些内容实践使用过,从事过团队协作开发,项目中最好涉及到微服务,有一定的独立解决问题能力。
课程类型
项目\专题\理论+项目\基础
课程内容
4.1 Spring Cloud
SpringCloud是一个服务治理平台,是目前比较热门的一项技术。它提供了整套的微服务开发技术解决方案,如在微服务开发时所需的配置管理、服务注册于发现、断路器、智能路由、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。最重要的是,跟Spring Boot框架一起使用,会让微服务的开发变的非常的便捷。
微服务架构介绍
Eureka注册中心
Ribbon负载均衡
Consul注册中心
OpenFeign服务调用
Hystrix服务熔断
Sentinel服务哨兵
Zuul服务网关
Gateway服务网关
Sleuth链路追踪
Stream消息处理
Config配置中心
Apollo配置中心
Nacos注册中心
Consul配置中
Bus消息总线
4.2 Dubbo
在未来的项目中,大多数的应用架构都会采用分布式架构方式,在分布式架构中对于服务之间的通讯以及分布式文件存储都是非常重要的环节。
本阶段课程以分布式操作为主,包含了分布式中的远程调用解决方案讲解。能够让大家更好的应对在分布式架构中对于服务的调用问题。
Dubbo
Dubbo对传统工程进行服务化改造
基于ZooKeeper的服务注册中心
SSM项目整合
服务发布
服务调用
监控中心
基于dubbo的分布式系统架构
服务集群
分布式子系统的划分
服务接口设计
服务启动依赖检查
服务负载均衡策
开发测试
直连提供者
服务只订阅
服务只注册
当当网dubboX架构体系
dubboX开发实战
微博motan架构体系
motan开发实战
课程回顾和总结
4.3 实现自己的RPC服务框架
第五章:电商订单实战
本课程主要通过在项目中的业务逻辑和框架/中间件的使用来提升学生的业务逻辑,以及框架和中间件的使用技术,提升学生的技术硬件。主要针对分布式,中间件等技术结合来设计一个大型的电商项目。
本章节主要包含项目介绍、用户认证、商品展示、购物车、订单中心、支付中心、评价、高并发、数据分析、后台管理、项目部署等11个模块。
课程核心技术点
1:能够全方面的刨析项目的设计方案
2:能够掌握到分布式、微服务、高并发集于一体的项目架构过程
3:提高自己编写代码的业务逻辑,针对于复杂场景下面BUG的解决能力
4:能够自己部署分布式项目,拥有自己的电商项目
课前技术储备
必备知识:针对于项目中的框架使用过,良好的java功底,良好的业务逻辑,有一定的英文功底,独立解决Bug的能力。
课程类型
专题\理论\实践
课程内容
首先带大家分析电商首页需求,然后实现首页轮播图功能,分类功能,商品推荐功能,搜索功能,商品评价功能,然后带大家开发电商核心功能模块-购物车、完成收获地址的开发,接着开发电商核心业务功能-订单,支付(微信支付,支付宝支付),最后带大家设计一个定时任务,实现定时关闭超期未支付订单功能。一起完成订单管理,评价管理功能,完善中心首页,通过学习,我们已经完全有能力架构与开发任何一个单体的项目了。打包与发布前端项目,后端项目到云服务器上,最后让大家拥有一个上线电商项目。
项目介绍
用户认证
商品展示
购物车
订单中心
支付中心
评价
高并发/缓存
数据分析
后台管理
项目部署
第六章:电商基础中台
本课程主要提取各个业务的数据,统一标准和口径,通过数据计算和加工为用户提供数据服务。针对业务高峰、应对大规模数据的线性可扩展问题、应对复杂业务系统的解耦问题,而在技术、组织架构等方面采取的变革方式。
本章节主要包含设计自动化运维( Ansible、Zabbix、ELK、Jumpserver、Jenkins)、分布式链路跟踪(OpenTracing、Skywalking)、日志采集服务(Filebeat、Elasticsearch、ELK)、TICK技术栈(Telegraf、InfluxDB、Chronograf、Kapacitor )、监控告警平台(Prometheus、Grafana数据可视化)、数据同步平台(canal、Datax)六个部分。
课程核心技术点
1:能够正确把控数据中台承担的企业角色
2:能够独立搭建集数据采集、融合、治理、组织管理、智能分析为一体追踪、监控中台服务
3:构建完整的平台搭建思维模式,提升决策水平
课前技术储备
必备知识:企业项目实操经验,拥有一定平台架构经验。
课程类型
项目\专题\理论+项目\基础
课程内容
4.1 自动化运维
服务器批量管理 Ansible
监控报警 Zabbix
数据仓库 ELK
跳板机 Jumpserver
持续集成 Jenkins
4.2 分布式链路跟踪
OpenTracing 理论概念详解
Skywalking
编写自己的分布式链路跟踪服务
4.3 日志采集服务
Filebeat
Elasticsearch
ELK
4.4 TICK技术栈
Telegraf
InfluxDB
Chronograf
Kapacitor
4.5 监控告警平台
Prometheus
Grafana数据可视化
4.6 数据同步平台
canal实时数据同步
Datax离线数据同步
4.7分库分表后进行数据查询实战:mysql 同步到elasticsearch
第七章:电商大数据分析
本课程从Hadoop核心技术入手,以电商项目为依托,最终完成电商行为日志分析项目。真实的电商数据+专业的数据处理 让理论与实战完美衔接。课程包含完整的大数据生态圈,系统从Hadoop到Flink,从Storm到Spark,从实战案例到电商项目实战一站式解决大数据所有问题。
课程核心技术点
1:最全面的大数据所有核心体系,最合理的课程设置
2:真实企业级落地项目,学习的更加扎实。
3: 6大核心知识体系,80个技术点,配套项目以及企业落地项目助力
课前技术储备
必备知识:真正意义上的零基础大数据课程,让你轻松入坑大数据。
课程类型
项目\专题\理论+项目\基础 专题\理论\实践
课程内容
4.1 Hadoop生态体系
HDFS概念
MapReduce
Hive架构
Hive DDL
Hive DML
Hive查询访问
Hive安全管理与压缩
Hbase 架构与操作
Hbase 压缩与存储
Flume
Sqoop
Zookeeper
Elasticsearch
CDH
Hue
Impala
oozie
4.2 Strom流式计算
在大数据处理场景中,假设系统每天产生的数据量为100M我们可以使用关系型数据库存储解决,假设每天产生的数据量为100G 我们可以采用分布式存储解决,当然这些数据都是固定死的数据,叫做批数据,例如:100G 就是 100G。在大数据处理场景中,除了这种 批数据处理的场景,还有流式数据处理的场景,所谓流式数据场景就是数据是源源不断的产生,同时需要源源不断的处理。
对于流式数据处理我们需要使用到Kafka 消息缓存系统来承接数据,需要使用 Strom实时计算框架来处理就是数据,需要使用 Redis 存储处理完成的结果。本阶段我们将会系统的学习关于流式计算相关的各个计算。
◆ 可解决的现实问题及价值所在
通过本阶段的学习我们可以了解针对流式数据处理的场景我们的技术如何选型,如何使用Storm针对不同的实时场景处理数据,同时如何对结果进行快速存储与快速查询。
- Kafka
- Redis
- Storm
4.3 Flink
Flink 基础
Flink 安装部署
Flink Api
Flink 高级功能
Flink 窗口与 Time
Flink 与 Kafka 整合
4.4 大数据平台架构师
◆ 学习目的
本阶段主要针对企业中集群、各类技术框架优化、源码分析等更深层次的技能而设置,同时本阶段还包含目前企业使用中的最热门技术,并不断更新,使各位同学在针对企业面试、企业集群优化、数据处理方案优化、数据处理架构选择等方面凸显优势,占领技术制高点。
◆ 可解决的现实问题及价值所在
目前企业工作竞争压力大,需要优秀的数据开发、分析人员,同时企业技术也在更新换代,通过本阶段的学习可以使同学们在面对企业工作竞争更显优势,同时也可以解决公司中集群优化、技术选型等问题。
Kylin 架构与使用
Hive优化
Hbase 优化
Spark 核心源码分析
Spark 优化
Flink 源码分析
4.5实际应用
用户行为分析
报表统计分析
4.6 项目实战
第八章:电商原生云实战
微服务架构改造后应用组件繁多,给服务部署带来了很大的挑战。解决服务部署难题。微服务的世界里,业务千变万化,管理纷繁复杂,不是我们凡夫俗子可以掌控,需要有一个“肚里能撑船”的大佛来统一管理,他就是“容器”。主要讲解Docker、Cloud Foundry、K8S等让你学会服务治理、服务编排等当前火热且加薪的技术。
课程能学到什么?
1:如何快速部署
2:每秒数万交易的促销、秒杀、抢购系统如何做弹性扩缩容
3:将系统后台的应用部署、业务高可用、资源弹性伸缩、发布自动化、运维自动化都统一管理起来
课前技术储备
有微服务开发经验,对于容器化有一定了解以及掌握者
三、课程类型
专题\理论\实践
四、课程内容
4.1 Docker
容器技术和Docker的简单介绍,课程源码的获取和实验环境搭建的说明,Docker技术里最为基础的两大概念:镜像和容器。镜像的 获取方式:从registry拉取,从Dockerfile构建;容器的基本操作:创建,启动,停止删除。从Linux的network namespace开始,通过详细讲解Docker的内置网络host和bridge是怎么使用的,来给大家展示不同容器之间网络的隔离和互访是如何实现的。
Docker简介
Docker架构实现方案
Docker的下载安装
Docker的常见命令
Docker的镜像
Dockerfile
Docker Registry
Maven构建Docker镜像
Docker Compose编排微服务
Compose安装和入门
Docker Compose工程、服务、容器
Compose常用命令
Docker部署以及数据共享
Docker日志分析
4.2 Cloud Foundry
作为新一代云应用,Cloud Foundry专为私有云计算环境、级数据中心和公有云服务提供商所打造。Cloud Foundry云可以简化现代应用程序的开发、交付和运行过程,在面对多种公有云和私有云选择、符合业界标准的高效开发框架以及应用基础设施服务时,可以显著提高开发者在云环境中部署和运行应用程序的能力。
Cloud Foundry整体架构
Cloud Foundry网络管理
基于Cloud Foundry网络特性实现业务蓝绿发布
Cloud Foundry数据服务管理
数据持久层的高可用和业务连续性
容器应用和PaaS平台双重管理
Cloud Foundry混合容器云架构和实践
4.3 Mesos+Marathon
容器编排技术选型
Mesos资源管理原理剖析与实战
通过Mesos实现DCOS多类型负载综合管理
Marathon调度器原理剖析与实战
Marathon应用隔离和依赖管理
如何实现无单点大集群容器编排管理
Mesos+Marathon落地实战,部署微服务
4.4 K8S
k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈,例如一个服务器损坏,可以自动将这个服务器上的服务调度到另外一个主机上进行运行,无需进行人工干涉。k8s可以更快的更新新版本,打包应用,更新的时候可以做到不用中断服务,服务器故障不用停机,从开发环境到测试环境到生产环境的迁移极其方便,一个配置文件搞定,一次生成image,到处运行。
K8S调度原理剖析与Pod生命周期管理
K8S控制器管理原理剖析与实战
K8S Yaml配置实战血泪教训总结分享
K8S网络模型原理剖析与实战
K8S系统分层架构回顾和故障排除思路
如何实现大规模集群?100节点->1000节点
全链路高可用架构升级
4.5 容器弹性扩缩容
使用弹性伸缩(Auto Scaling),您可以根据业务需求和策略设置伸缩规则,在业务需求增长时自动为您增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本。弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。
Mesos资源管理属性和配额管理
有状态应用如何实现弹性伸缩和失效重置
容器弹性扩缩容:资源触发、简单决策
CloudFoundryautoscale技术落地
容器弹性扩缩容:负载触发、动态扩缩容
容器弹性扩缩容:更换轮子、自由扩缩容
K8S Adds-on技术落地
4.6 服务编排
相对于传统架构,微服务架构下更需要通过各微服务之间的协作来实现一个完整的业务流程,可以说服务编排是微服务架构下的必备技能。但是,编排涉及到RPC、分布式事务等等,编排的质量不能仅仅取决于老师傅的手艺,需要有完善的编排框架来支撑。
微服务编排的必要性
常见的微服务编排方式-Orchestration(编制)
常见的微服务编排方式-Choreography(编排)
常见的微服务编排方式-API网关
微服务编排的框架
微服务编排的事务一致性
微服务编排的监控工具支撑
课程回顾与总结