你将学到

扎实的 Java 基础,精通多线程编程、NIO 模型及设计模式
熟练掌握 Spring 等主流的开发框架,并理解运行原理
精通分布式架构,熟悉主流微服务框架,如 Dubbo、ZooKeeper 等
精通主流中间件 Redis/ElasticSearch/MySQL/MQ 的使用
在分库分表、高并发、高可用等方面有丰富的实践经验
掌握云原生相关技术,熟练掌握 Kubernetes、Docker 等技术
具备系统架构设计、技术选型、开发任务分解、工作量评估等能力
五个不同架构模式下,小马哥带你掌握最核心的开发技术
详细内容
week1

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 实现项目数据持久化

week2

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 生态构建自动化测试平台

week3

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 提升加密解密和安全防护能力

week4

1.数据存储:使用 MyBatis 和 Spring Data JPA 重构项目 JDBC 封装实现

2.视图渲染:基于 Spring Web MVC 重构业务实现,并复用 JSP、EL 以及 JSTL 页面

3.服务通讯:基于 Spring Web MVC 适配 JAX-RS 注解,实现业务代码复用,使用 Spring JMS 重构项目遗留 JMS 实现

week5

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 的配置抽象实现。

week6

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 整体性能

week7

1.服务通讯:使用 Apache Dubbo 替换项目部分 REST API 同步服务,使用 Spring Kafka 重构异步服务通讯

2.数据存储:使用 Apache ShardingSphere 增加数据库分库分表能力

3.服务注册与发现:理解 Dubbo Registry SPI 以及不同的基础设施实现,如:ZooKeeper、Consul 和 Nacos 等

week8

1.负载均衡:理解 Dubbo LoadBalance SPI 设计以及各种不同的实现,结合项目实际情况,合理选型

2.服务路由:理解 Dubbo Route SPI 设计与实现,并模拟实现多区域用户路由到不同的 Dubbo 服务机房

3.配置管理:使用 Nacos Spring 提升分布式动态配置

4.服务监控:使用 Apache Dubbo Admin 提升项目 DevOps 能力,如:治理 Dubbo 服务、实现延迟暴露、优雅上下线、动态路由等

week9

1.服务高可用:基于 Netflix Hystrix 和 Alibaba Sentinel 实现 Web 服务和 Dubbo 服务熔断、降级和限流

2.安全和控制: 基于 Spring Security 提升 Dubbo 服务认证和授权能力

3.全链路压测:基于JMeter 技术,再结合库表设计,实现平台业务全链路压测

4.灰度发布:基于 Nginx 插件提供平台灰度发布的能力

week10

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 重新实现异步服务

week 11

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 实现分布式动态日志管理

week 12

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 实现分布式应用服务跟踪

week 13

1.容器化技术:掌握以 Docker 为代表的容器化技术,并介绍不同的容器引擎

2.Kubernetes:理解 Kubernetes 架构、Pod 和容器设计模式、应用编排与管理等

3.服务注册与发现:使用 Spring Cloud Kubernetes 替换现有 Spring Cloud 传统实现,理解 Kubernetes API Server 架构

4.服务通讯:使用 gRPC 升级 Dubbo 中的传输协议,利用 RSocket 实现 Dubbo 异步服务通讯(Reactive)

week 14

1.运维建设:构建企业 Docker 镜像仓库,打造以 Docker 为基础的 CI/CD 环境

2.负载均衡:理解 Kubernetes Ingress 及负载均衡解决方法

3.服务监控:(可观测性)理解 livenessProbes、readinessProbes、容器日志收集,使用 Prometheus 和 Grafana 的监控系统实践

4.配置管理:基于 Spring Cloud Kubernetes Config 更替已有配置实现,理解 Kubernetes ConfigMaps

5.日志管理:使用 Kubernetes 平台日志管理方法

week 15

1.访问控制:了解 Kubernetes 中 API 访问安全机制、认证和授权,逐步替代现有实现

2.API 网关:使用 Istio Ingress 升级 API 网关实现

3.服务高可用:使用 Istio 替换 Spring Cloud Circuit Breaker 实现

4.分布式跟踪:使用 Jaeger 替换 Spring Cloud Sleuth 实现

5.性能提升:使用 GraalVM 提升 Java 微服务性能

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。