〖课程介绍〗:
- 总体目标
- 低门槛学习大型互联网企业项目开发和管理。
- 掌握互联网业务和系统架构演进过程。
- 围绕互联网项目实战,兼顾广度和深度,系统探讨技术和架构。
- 打造全栈工程师必备素养,增强核心研发力和跨界竞争力。
- 扎实的 Java 基础,精通多线程编程、NIO 模型及设计模式
- 熟练掌握 Spring 等主流的开发框架,并理解运行原理
- 精通分布式架构,熟悉主流微服务框架,如 Dubbo、ZooKeeper 等
- 精通主流中间件 Redis/ElasticSearch/MySQL/MQ 的使用
- 在分库分表、高并发、高可用等方面有丰富的实践经验
- 掌握云原生相关技术,熟练掌握 Kubernetes、Docker 等技术
- 具备系统架构设计、技术选型、开发任务分解、工作量评估等能力
- 在大厂摸爬滚打十余年,小马哥带你挺进一线名企
- Apache Dubbo PMC、Spring Cloud Alibaba 架构师、前阿里云原生架构师
- 在阿里工作期间,小马哥主要负责中间件开源项目、微服务架构衍进,以及 Cloud Native 基础设施建设,他所参与的项目现已运行在数以百万级的集群服务器上。除了日常编码工作,小马哥还时常发表一些技术前瞻性文章,比如 InfoQ《2019 中国 Java 发展趋势报告》、《Reactive programming:一种技术,各自表述》以及《Dubbo Cloud Native 实践与思考》等。他也获得过 SUN Java(SCJP、SCWCD、SCBCD)以及 Oracle OCA 等的职业认证。
- 此外,小马哥还在极客时间推出了《小马哥的 Spring 编程思想》与《小马哥讲 Spring AOP 编程思想》视频课程,销量火爆,广受好评。
〖课程目录〗:
- Java EE 项目迭代 – 项目开发和框架实现
- 教学目标
- 1.使用 Java 标准化技术栈开发项目
- 2.掌握 Java 生态系统、企业级架构和技术规范
- 3.基于 Java 标准技术栈自研开发框架,为主流框架的设计和实现做铺垫
- 架构工作中的痛点
- 1.缺少 Java 生态全局视野,对潜在需求,尤其是非功能性需求意识较弱
- 2.日常工作对 Java 标准技术、规范和 API 知之甚少,阅读框架源码举步维艰
- 通过学习掌握的核心能力
- 1.技术规范:了解项目中所使用的 Java 规范和 API 接口
- 2.实战运用:使用标准 Java 技术栈和自研框架迭代实现项目需求
- 详细内容
- 1.项目模块:项目主要围绕“用户注册”、“用户登录”以及“用户管理”等模块构建
- 2.Web 框架:基于 Servlet 实现 Web MVC Framework,使用 JSP、EL 以及 JSTL 作为服务端视图模板引擎
- 3.IoC 框架:基于 JNDI 和 Java Common Annotations 实现 IoC(CDI)框架
- 4.同步服务:基于 JAX-RS 和 MicroProfile Rest Client 实现服务调用框架
- 5.异步服务:基于 JMS 和 MicroProfile Reactive Messaging 作为异步服务通讯
- 6.数据存储:应用 IoC 框架整合 JDBC 和 JPA 实现项目数据持久化
- Java EE 项目迭代 – 运维管理
- 教学目标
- 1.提升项目运维管理能力,实现可配置和可监控
- 2.使用 CI/CD 工具实现项目持续交付,构建自动化平台
- 3.理解标准 Java 技术栈在运维管理中扮演的角色
- 架构工作中的痛点
- 1.项目代码变更之后,缺乏自动化测试和试运行机制,产品质量得不到有效的保障
- 2.作为一名开发人员,对于运维体系和手段相对陌生,无法运用 Java EE 容器内建特性达到运维目的
- 通过学习掌握的核心能力
- DevOps:打造项目的运维体系,包括 codebase 管理、项目构建工具运用、CI/CD 平台搭建、以及基于 Java 实现服务监控、日志管理以及配置管理等
- 详细内容
- 1.日志管理:基于 Java Logging 作为系统日志框架,理解其整体设计和架构
- 2.监控管理:使用 Java JMX(Java 管理扩展)对关键服务进行监管,理解 JMX 架构和不同类型的 MBean 使用场景
- 3.配置管理:基于 MicroProfile Config 实现配置框架,理解 ServletContext Config、ServletConfig、JVM 启动参数、Java 系统属性以及环境变量等外部化配置差异
- 4.质量保证:运用 codebase 平台工具实现代码变更通知、代码分析以及 Code Review 流程,并使用 GitHub/GitLab CI 工具集成 Maven 生态构建自动化测试平台
- Java EE 项目迭代 – 分布式架构设计
- 教学目标
- 1.熟练运用 Java EE 容器实现平台高可用、高性能以及高并发的需要
- 2.使用 Java Security 实现平台访问控制和安全防护
- 架构工作中的痛点
- 1.由于企业系统规模的局限,缺少实践高可用、高性能和高并发 Java 分布式架构的机会
- 2.作为一名业务开发,日常项目中缺乏访问控制和 Web 安全防控的意识
- 通过学习掌握的核心能力
- 安全防控:理解服务认证和授权架构,并结合 Java EE 容器实现访问控制;了解常见 Web 攻击手段,构建安全 Web 服务
- 详细详细内容:
- 1.负载均衡:使用多 Java EE 容器对等部署的方式,达到均衡服务器压力的目的
- 2.API 网关:基于 Servlet 异步技术实现高性能 API 网关
- 3.单点登录:通过 Java EE 容器 Session 复制等手段提供项目 Web 应用的单点登录能力
- 4.性能压测:通过 JDK 动态代理和 Servlet Filter 方式,对项目关键服务进行性能埋点,评估 API 性能指标
- 5.性能提升:结合压力测试结果,运用 Java Caching 整合 Redis 以及异步技术,提升系统性能
- 6.访问控制:使用 Java EE 容器认证和授权架构实现访问控制
- 7.Web 安全:了解 SQL 注入、CSRF、XSS、HSTS 等攻击手段,结合 Java Security 提升加密解密和安全防护能力
- Java 开源整合项目迭代 – 实现重构
- 教学目标
- 使用 Spring 技术栈和其他开源框架重构当前项目
- 架构工作中的痛点
- 公司项目的技术单一,对 Java 技术生态缺少技术选型的判断力和决策力
- 通过学习掌握的核心能力
- 使用标准 Java 技术、Spring 以及其他开源框架迭代重构当前项目
- 详细内容
- 1.数据存储:使用 MyBatis 和 Spring Data JPA 重构项目 JDBC 封装实现
- 2.视图渲染:基于 Spring Web MVC 重构业务实现,并复用 JSP、EL 以及 JSTL 页面
- 3.服务通讯:基于 Spring Web MVC 适配 JAX-RS 注解,实现业务代码复用,使用 Spring JMS 重构项目遗留 JMS 实现
- Java 开源整合项目迭代 – 运维重构
- 教学目标
- 使用 Spring 技术栈替换 Java EE 架构的运维体系
- 架构工作中的痛点
- 日常开发能够熟练使用 Spring 技术栈,然而对其生态缺乏整体认识,对框架细节相对陌生
- 通过学习掌握的核心能力
- 从实现成本和学习曲线等多维度对比标准 Java 技术生态、Spring 技术生态以及其他开源框架
- 详细内容
- 1.测试用例:基于 Spring Testing 重构项目单元测试和集成测试
- 2.服务监控:基于 Spring JMX 重构项目中 MBean 的管理,理解 Spring JMX @ManagedResource 注解,简化 JMX 开发的实现细节。
- 3.日志管理:使用 Spring Logging API 替换现有的 Java Logging 实现,并理解它与 Apache Commons Logging 以及 SLF4J 的区别。
- 4.配置管理:基于 Spring 外部化配置重构当前项目基于 Apache Commons Configuration 的配置抽象实现。
- Java 开源整合项目迭代 – 架构升级
- 教学目标
- 利用非 Java 基础设施提升平台应用的整体性能
- 架构工作中的痛点
- 长期从事 Java 服务端研发,对于非 Java 技术栈如何提升平台性能缺少实战经验
- 通过学习掌握的核心能力
- 1.掌握 Nginx、Varnish 等非 Java Web 服务基础设施
- 2.了解 Spring Security 特性和架构,并运用其特性重构项目的访问控制和 Web 安全实现
- 详细内容
- 1.负载均衡:利用 Nginx 作为反向代理服务器,更替 Java-Based Web Server 实现
- 2.单点登录:使用 Spring Session 升级项目遗留的单点登录实现
- 3.API 网关:基于 Nginx 构建系统 API 网关,利用 Spring WebFlux 实现业务 API 网关
- 4.性能压测:使用 Spring AOP 替换项目性能埋点实现,并重新评估重构后的 API 性能指标
- 5.性能提升:使用 Spring Caching 抽象重构 Java Caching 标准实现,运用 Nginx 实现动态内容和静态内容分离,使用 Varnish 提升 Web 整体性能
- Java SOA 项目迭代 – 需求分析和开发
- 教学目标
- 构建 SOA 理论体系,了解 SOA 解决方案,为项目选型提供参考
- 架构工作中的痛点
- 在日常开发中更多的关注是功能实现和框架运用,对于 SOA 架构并未建立清晰的理论体系
- 通过学习掌握的核心能力
- 1.理解 SOA 的概念、原则、模式、实现以及延伸架构,如:事件驱动架构、WebServices、REST 等
- 2.服务注册与发现:理解服务注册与发现理论,掌握不同注册中心技术选型的使用场景
- 详细内容
- 1.服务通讯:使用 Apache Dubbo 替换项目部分 REST API 同步服务,使用 Spring Kafka 重构异步服务通讯
- 2.数据存储:使用 Apache ShardingSphere 增加数据库分库分表能力
- 3.服务注册与发现:理解 Dubbo Registry SPI 以及不同的基础设施实现,如:ZooKeeper、Consul 和 Nacos 等
- Java SOA 项目迭代 – 平台运维
- 教学目标
- 引入 Apache Dubbo Admin 技术,提升项目运维能力
- 架构工作中的痛点
- 没有接触过服务治理、负载均衡、服务路由、服务熔断、三方登录等分布式高阶场景
- 通过学习掌握的核心能力
- 1.负载均衡:理解常见负载均衡算法,把握它们的适用场景
- 2.服务路由:了解服务路由的使用场景,掌握动态服务路由的实现原理
- 详细内容
- 1.负载均衡:理解 Dubbo LoadBalance SPI 设计以及各种不同的实现,结合项目实际情况,合理选型
- 2.服务路由:理解 Dubbo Route SPI 设计与实现,并模拟实现多区域用户路由到不同的 Dubbo 服务机房
- 3.配置管理:使用 Nacos Spring 提升分布式动态配置
- 4.服务监控:使用 Apache Dubbo Admin 提升项目 DevOps 能力,如:治理 Dubbo 服务、实现延迟暴露、优雅上下线、动态路由等
- Java SOA 项目迭代 – 架构升级
- 教学目标
- 1.使用 SOA 的模式和实现升级当前项目的架构,使其符合 SOA 的原则
- 2.运用全链路压测,对重构后的 SOA 应用进行性能评估
- 3.实现灰度发布策略,确保应用更迭安全稳定
- 架构工作中的痛点
- 1.目前应用规模无法触及高并发场景,缺少自动化和精细化测量业务完整链路的性能指标
- 2.尽管回归测试相对完善,然而项目发布时仍提心吊胆,无法在生产环境执行小规模测试
- 通过学习掌握的核心能力
- 1.服务高可用:了解服务熔断、降级以及限流的原理和差异
- 2.安全控制:理解 OAuth2 架构和原理,帮助项目提升认证和授权的能力
- 3.全链路压测:掌握全链路压测系统的设计模式,寻找服务性能短板
- 4.灰度发布:掌握灰度发布的实现策略,理解不同基础设施实现的利弊
- 详细内容
- 1.服务高可用:基于 Netflix Hystrix 和 Alibaba Sentinel 实现 Web 服务和 Dubbo 服务熔断、降级和限流
- 2.安全和控制: 基于 Spring Security 提升 Dubbo 服务认证和授权能力
- 3.全链路压测:基于JMeter 技术,再结合库表设计,实现平台业务全链路压测
- 4.灰度发布:基于 Nginx 插件提供平台灰度发布的能力
- Java 微服务架构项目迭代 – 技术提升
- 教学目标
- 1.理解微服务架构的概念、与 SOA 架构的区别,以及常见的实现模式
- 2.使用前后端分离技术实现服务端视图渲染
- 架构工作中的痛点
- 1.时常听到微服务架构的理论和实践案例,但不清楚它与 SOA 到底存在哪些区别
- 2.长期从事服务端研发,对前端技术的发展不了解,缺少前后端分离技术的实践经验
- 通过学习掌握的核心能力
- 1.理论知识:掌握微服务架构理论体系,了解微服务最佳实践
- 2.技术提升:理解 Spring Boot/Spring Cloud 核心特性和架构设计
- 详细内容
- 1.数据存储:使用第三方 Spring Boot Starter 重构 MyBatis 和 Apache ShardingSphere 实现,并使用 Spring Boot 官方 Starter 针对 JPA 和 Caching 等进行升级
- 2.视图渲染:使用 Vue.js 替换 Java Web Server 服务端视图渲染
- 3.服务通讯:使用 Dubbo Spring Cloud 重构同步服务,基于 Spring Cloud Stream 重新实现异步服务
- Java 微服务架构项目迭代 – 平台运维
- 教学目标
- 运用微服务架构理论和基础设施升级平台架构
- 架构工作中的痛点
- 应用架构升级到微服务过程中,伴随着基础设施的升级,又需要学习新的技术,感觉力不从心
- 通过学习掌握的核心能力
- 掌握 Spring Boot 和 Spring Cloud 中的运维方式
- 详细内容
- 1.测试用例:学习并使用 Spring Boot Testing 重构集成测试
- 2.负载均衡:使用 Spring Cloud LoadBalancer 抽象重构 REST 负载均衡
- 3.服务监控:理解 Spring Boot Actuator 体系,使用 Spring Boot Admin 提升 Spring Boot 应用运维能力
- 4.配置管理:基于 Spring Cloud Config 实现动态分布式配置
- 5.日志管理:基于 Spring Cloud Config 实现分布式动态日志管理
- Java 微服务架构项目迭代 – 架构升级与过渡
- 教学目标
- 运用微服务架构理论和基础设施升级平台架构
- 架构工作中的痛点
- 公司为顺应潮流,要求将所有应用架构升级到微服务架构,然而缺少应用合理拆分的理论指导,也不清楚如何应对拆分后的潜在风险
- 通过学习掌握的核心能力
- 1.架构升级:使用 Spring Boot 和 Spring Cloud 升级 Java 基础设施
- 2.架构过渡:掌握不同发布策略的实质和区别,合理选择架构过渡方案
- 详细内容
- 1.访问控制:使用 Spring Security OAuth 提升认证和授权架构,实现访问控制
- 2.Web 安全:使用 Spring Security Starter 配置化实现 CSRF、XSS、HSTS
- 3.API 网关:使用 Spring Cloud Gateway 重构 Spring WebFlux 实现的业务 API 网关,使用 Dubbo Spring Cloud 实现 Dubbo 服务网关
- 4.服务高可用:基于 Spring Cloud Circuit Breaker 重构服务熔断实现,并结合 Spring Cloud Alibaba Sentinel 实现服务限流和熔断
- 5.分布式跟踪:理解 Dapper 分布式跟踪理论,使用 Spring Cloud Sleuth 实现分布式应用服务跟踪
- 6.性能压测:使用 Spring AOP 替换项目性能埋点实现,并重新评估重构后的 API 性能指标
- 7.性能提升:使用 Spring Caching 抽象重构 Java Caching 标准实现,运用 Nginx 实现动态内容和静态内容分离,使用 Varnish 提升 Web 整体性能
- Java 云原生项目迭代 – 开发提升
- 教学目标
- 理解云原生云的基本概念、实质以及主流技术
- 架构工作中的痛点
- 云原生的势头迅猛,感觉工作和云原生的实践缺少交集,心里不踏实,也缺少一条弯道超车的办法
- 通过学习掌握的核心能力
- 1.理论知识:了解云原生的理论,掌握主流云原生基础设施
- 2.技术提升:掌握 GraalVM、Docker、Kubernetes、Service Mesh(Istio)以及 Spring 云原生等技术
- 详细内容
- 1.容器化技术:掌握以 Docker 为代表的容器化技术,并介绍不同的容器引擎
- 2.Kubernetes:理解 Kubernetes 架构、Pod 和容器设计模式、应用编排与管理等
- 3.服务注册与发现:使用 Spring Cloud Kubernetes 替换现有 Spring Cloud 传统实现,理解 Kubernetes API Server 架构
- 4.服务通讯:使用 gRPC 升级 Dubbo 中的传输协议,利用 RSocket 实现 Dubbo 异步服务通讯(Reactive)
- Java 云原生项目迭代 – 运维平台
- 教学目标
- 使用云原生主流技术升级项目的基础设施,并将其变成云原生应用
- 架构工作中的痛点
- 云原生生态体系庞大,而且对它缺乏整体认知,面对诸多技术选型无从抉择
- 通过学习掌握的核心能力
- 运维体系:熟悉私有云和公共云的运维体系,逐渐磨平两种体系的运维差异
- 详细内容
- 1.运维建设:构建企业 Docker 镜像仓库,打造以 Docker 为基础的 CI/CD 环境
- 2.负载均衡:理解 Kubernetes Ingress 及负载均衡解决方法
- 3.服务监控:(可观测性)理解 livenessProbes、readinessProbes、容器日志收集,使用 Prometheus 和 Grafana 的监控系统实践
- 4.配置管理:基于 Spring Cloud Kubernetes Config 更替已有配置实现,理解 Kubernetes ConfigMaps
- 5.日志管理:使用 Kubernetes 平台日志管理方法
- Java 云原生项目迭代 – 架构改造
- 教学目标
- 项目将从自建私有云部署到公有云平台(阿里云),并掌握阿里云主流云产品的使用
- 架构工作中的痛点
- 公司业务发展蓬勃,只有云平台支撑业务快速发展,需要具备公有云、私有云以及混合云的配套技能
- 通过学习掌握的核心能力
- 使用云原生流行技术等升级系统架构、基础设施和 DevOps 体系
- 详细内容
- 1.访问控制:了解 Kubernetes 中 API 访问安全机制、认证和授权,逐步替代现有实现
- 2.API 网关:使用 Istio Ingress 升级 API 网关实现
- 3.服务高可用:使用 Istio 替换 Spring Cloud Circuit Breaker 实现
- 4.分布式跟踪:使用 Jaeger 替换 Spring Cloud Sleuth 实现
- 5.性能提升:使用 GraalVM 提升 Java 微服务性能
〖视频截图〗:
免责声明:所有资源仅供参考学习,不提供售后服务,如有需求,建议购买正版!如果本站资源侵犯了您的利益请留言告知(邮箱:554250521@qq.com)!如有链接无法下载、失效,请联系客服,尽快为您处理!
优课资源站 » JK-小马哥的 Java 项目实战营【完结】
优课资源站 » JK-小马哥的 Java 项目实战营【完结】
常见问题FAQ
- 怎么区分课程是否完结?
- 课程名称最后都有备注,完结课程会备注【完结】
- 怎么发货?
- 有些资源没更新完结怎么办?
- 298终身会员和999终身会员的区别