渗透测试、漏洞挖掘、APT攻击与检测、JAVA/PHP代码审计、二进制安全、逆向分析、Kubernetes安全、等级保护、应急响应

Java微服务技术实战

各种资源百宝箱 2023-11-10 浏览(589) 评论(0)
- N +

文章目录[+]


前置阶段:常用开发框架解读专题(选学)


目标

明确源码阅读的意义以及掌握从源码中找寻解决问题的方法。

掌握面向对象常用的七大设计原则和常见设计模式。

掌握 Spring 框架中 IOC/DI/AOP 等核心流程的执行原理。


面试和工作中遇到的痛点


会写基本的业务代码,但是对于业务核心通用组件代码一知半解。

使用 Spring 全家桶面对业务开发时遇到的难题无从下手。

不懂 Spring 框架的底层原理,网上答案标准不一,面试时答非所问。


通过学习掌握的核心能力


掌握阅读 Spring 框架底层源码的能力。

具备手写 Spring 框架底层源码的能力。

从面向过程进化到面向对象的分析设计能力。

具备面向对象编程的能力,可以从 0 到 1 仿写一个框架。


详细内容:


01 Spring 源码


Spring 源码阅读前沿

Spring 创建对象代码演变及 IoC 容器初始化

手写一个 Spring 框架案例

Spring 面向对象 OOAD 和七大设计原则

Spring-IoC 模块的面向对象设计

Spring 面向对象方式手写 IoC 流程

Spring-IoC 源码阅读

Spring-AOP 核心概念以及动态代理原理

Spring-AOP 三大核心流程图解

Spring-AOP 源码阅读

Spring 中的设计模式:责任链模式与反射调用


02 Spring MVC 源码


手写一个 Spring MVC Web 应用框架

Spring MVC 应用框架架构解析

手写一个 Spring 框架案例

图解 Spring MVC 执行流程

Spring MVC 源码阅读

解析 RequestMappingAdapter 流程


03 Spring Boot 应用


Spring Boot 与 Spring 的区别与联系

Spring Boot 启动流程源码解析

yml 配置文件加载流程解析

图解 Spring Boot 自动配置流程

Spring Boot&Redis&MyBatis 整合源码解析

使用自定义 starter 完成案例


04 MyBatis 源码


采用面向的对象方式手写一个 MyBatis 框架

解析 MyBatis 版本配置文件及对应存储类分析

MyBatis-SqlSession 执行流程解析

MyBatis-Mapper 代理底层原理解析


05 Tomcat 源码


Tomcat 底层原理解析

搭建 Tomcat 源码环境

手写 Tomcat 源码

阅读解析 Tomcat 启动流程

Tomcat 加载、创建 Servlet 流程源码解读

解析 Tomcat 请求处理流程


06 Nginx 应用


Nginx 使用原理解析

Web Server 技术选型

详解 Nginx 配置文件

Nginx 请求定位之 server 定位

Nginx 请求定位之 location 定位

Nginx 应用之 rewrite 重定向

Nginx 应用实战之静态资源服务器

Nginx 应用实战之反向代理应用

Nginx 应用实战之负载均衡

Nginx 应用实战之动静分离

Nginx 应用实战之虚拟主机应用

Nginx 应用实战之缓存配置

Nginx 应用实战之日志管理



第一阶段:消息队列专题


目标


熟悉 RocketMQ 的基本用法和应用场景

掌握 RocketMQ 的消息重试、延迟、幂等、事务和优先级

基于案例讲解消息中间件的核心工作原理

结合真实案例、场景讲述主流中间件的企业级应用技巧


工作中的痛点


没有机会接触高并发高性能场景

没有真正在实际工作中使用过消息中间件

对消息中间件的原理无法形成体系化的理解,学习停留在理论层面,缺乏实战指引


实践练习


消息过滤实战

消息消费积压问题排查实战

订阅关系不一致实战

批量消费实战


详细内容


01 消息中间件介绍


消息中间件使用场景

消息中间件需要解决的问题

消息中间件选型

领域模型介绍

RocketMQ 环境搭建、Debug 调试


02 RocketMQ 实战


消息发送 API 详解与版本变迁说明

消息发送核心参数与工作原理

消息发送常见错误与解决方案

事务消息以及定时消息发送实战

消息消费 API 详解与版本变迁说明

DefaultMQPushConsumer 核心参数与工作原理

DefaultMQPushConsumer 使用示例与注意事项

结合应用场景学习 DefaultMQPushConsumer

消息过滤实战

消息消费积压问题排查实战

订阅关系不一致实战

批量消费实战


03 RocketMQ 原理应用


Broker 启动流程分析

NameServer 路由注册机制

生产者的发送消息流程

消费者的接收消息流程

消息的可靠性应该如何保证

不同消息的有序性如何解决

Broker 接收消息的处理流程

 

04 RocketMQ 高级特性


消息在 Broker 端的文件布局

消息存储的高效与刷盘策略

Broker 快速读取消息机制

文件恢复与 CheckPoint 机制

消息大量堆积了该怎么办

部署架构与高可用机制

NameServer 的设计理念


05 Kafka 实战


Kafka 基础架构运行流程

生产者选择分区发送数据流程

生产者发送数据的可靠性保证

服务端的消息处理架构模型

服务端消息存储的文件布局

如何保证服务端数据的一致性

消费方如何消费数据/消费分区

Kafka 该如何实现顺序消费

消费者组重平衡流程解析

Kafka 有哪些高性能的设计

Kafka 与 RocketMQ 的主流功能对比



第二阶段:微服务前沿技术栈专题


目标:


学习 Spring Cloud、Spring Cloud Alibaba 工程搭建的最佳实践。

掌握 SCA 体系常用组件的使用与案例实战。

掌握 SCA 体系常用功能的本质原理与源码分析思路。

深入理解框架底层架构的代码设计哲学。


工作痛点:


不清楚搭建一个微服务工程的具体流程。

面对陌生框架时不了解相关的工程最佳实践。

只了解微服务组件名称,不清楚微服务框架的源码实现。

深入学习框架的底层原理时,面对底层复杂的源代码无从下手。

无法精确定位架构师的方案和思路,实现起来却举步维艰。


实践练习:

Spring Cloud 服务注册与发现的伪集群搭建。

Spring Cloud Alibaba 使用 Nacos、OpenFeign、Gateway、Sentinel、Dubbo 等组件进行工程搭建。


详细内容:


01 体系介绍


Nacos Registry

Nacos Config

OpenFeign

Gateway

Dubbo

Sentinel

Seata


02 Spring Cloud 最佳实践


Provider + Consumer + Eureka 服务搭建

Provider + Consumer + Nacos 服务搭建

Consumer + Provider + Nginx 集群搭建


03 Nacos 注册与发现


Nacos 服务注册案例搭建

Nacos 服务订阅案例搭建

Nacos Client 发起注册流程

Nacos Server 处理注册流程

Nacos Client 发起订阅流程

Nacos 心跳与剔除机制


04 Nacos 配置中心


Nacos Config 动态更新端口案例搭建

Nacos Config 动态更新配置案例搭建

Nacos 配置中心源码分析

Nacos 动态更新机制

Nacos UDP 通知更新机制

Nacos 集群同步源码分析之 CP + AP 模式

Nacos 集群同步 Distro 一致性协议

Nacos 集群同步 Raft 一致性协议


05 OpenFeign 负载均衡


Ribbon 工程案例搭建

OpenFeign 负载均衡与降级案例搭建

OpenFeign 源码分析之 @FeignClient 注解扫描机制

OpenFeign 源码分析之 Feign 的上下文隔离机制


06 Gateway 网关路由


Gateway 路由案例搭建

自定义拦截过滤

转发重定向机制


07 Sentinel 限流降级


Sentinel 手动设置限流/降级案例搭建

Sentinel 接入 Nacos 案例搭建

探索 Sentinel 规则持久化机制

联动 Sentinel 与 Nacos 的持久化实现

核心 SphU.entry 源码分析

ProcessorSlotChain 过滤器链流程

StatisticSlot 核心处理逻辑分水岭


08 Dubbo 服务调用框架


Dubbo 工程案例环境搭建

Provider & Consumer 案例搭建

依赖检查 & 负载均衡案例搭建

广播调用 & 缓存操作案例搭建

点对点调用案例搭建

泛化调用案例搭建

Dubbo 源码分析

JDK SPI 与 Dubbo SPI 机制

Dubbo 服务发布流程

Dubbo 服务订阅流程

Dubbo Wrapper 机制

Dubbo 协议编解码



第三阶段:持续集成与容器化专题


目标


掌握 CI/CD、DevOps、Docker 和 Kubernetes 的理念和实践。

学会使用 Jenkins 进行持续集成与持续部署。

熟练使用 Docker 和 Kubernetes 进行容器化部署和管理,提高软件交付的效率和质量。


工作中的痛点


缺乏系统的 CI/CD 知识和实践经验,导致部署过程繁琐、低效,难以满足敏捷开发需求。

对容器化技术和编排工具的应用不熟练,无法充分利用其优势实现快速部署、高可用性和资源优化。

缺乏实际操作经验,导致在应对复杂场景时应变能力不足,无法有效解决问题。

团队之间协作不畅,难以形成跨部门的 DevOps 文化,拉低了整体效率。


实战案例


整合 Jenkins、Docker、Maven 等技术,实现自动化构建、测试、部署和监控。

通过 Docker Compose 和 Docker Swarm 实现多容器应用的部署与管理。

使用 Kubernetes 实现对容器应用的编排和管理。

Jenkins 与 Ansible 集成实战:使用 Jenkins 与 Ansible 实现自动化服务更新。


详细内容:


01 CI/CD、DevOps


软件生命周期概念

CI/CD 概念

DevOps 概念

搭建实验环境

初识 Jenkins

Jekins 集成 Maven 构建 Java 应用程序

Jekins 集成 Git 搭建 GitLab 服务器

Jenkins 集成 GitLab 管理 Java 应用程序

Jenkins Security 用户角色管理

Jenkins 自动化任务

Jenkins 流水线 Pipeline

Jenkins 实战之集成 Ansible

Jenkins 实战之搭建 CI/CD 流水线


02 Docker


Jenkins 基础&安装流程

虚拟化技术 vs 容器化原理

Docker client 命令详解

Docker 交互指令

Docker 镜像概念

Docker 实战部署 Web 服务

Docker-compose 部署多容器应用

Docker 进阶:container 概念详解

Docker 进阶:network 概念详解

Docker 进阶:image 概念详解

Docker 进阶:volume 概念详解

Docker Swarm:微服务项目容器化部署

Docker compose vs Docker Swarm

Docker 私服搭建


03 Kubernetes


K8s 集群搭建

Harbor 仓库搭建

K8s 基本指令入门

K8s 核心组件原理

K8s 网络原理

K8s 负载均衡

POD 调度详解、重启策略

容器探针

POD 核心原理剖析

Ingress 七层负载君合实战方案

ReplicaSet 剖析

configmap 资源对象剖析

K8s 存储解析

PVC 和 PV 深度剖析

headless Service 原理解析

statefulSet 原理解析

有状态服务部署



第四阶段:互联网项目实战


目标:

掌握互联网企业级项目开发全流程

掌握需求分析和技术选型的核心原则

掌握微服务架构的设计、拆分原则

能够解决电商业务常见问题:三高问题、安全交易问题等

实现单点登录、用户中心、商品中心、订单中心、广告中心、文件服务、商品秒杀等常见功能

掌握电商业务场景下常用的技术组件,如 Redis、Elasticsearch 及其他常用微服务技术组件

掌握高性能秒杀业务场景的实现方法


学习和工作中的痛点

缺少大型项目的实战落地经验

无法将 Java 进阶技术栈应用到项目实战中


详细内容:


01-需求分析


电商业务分析

电商模式分类

电商系统特性

电商模型分析

系统需求模型

功能需求分析

平台需求:单点登录、用户中心、商品中心、订单中心、广告中心、文件服务、商品秒杀

卖家需求:商品管理、订单管理

买家需求:商品浏览和搜索、购物车管理、商品下单、订单支付

非功能需求分析

稳定性:系统可用性分析、系统可靠性分析

高吞吐:并发性分析、性能损耗分析

扩展性:集群扩展性分析、功能扩展性分析


02-架构设计


架构选型分析:单体架构、分布式架构、微服务架构

系统架构设计:前端页面、反向代理、API 网关、业务服务、数据访问、数据存储

架构治理:远程调用、服务发现、消息队列、请求限流、服务熔断、服务降级


03-技术选型


编程语言:Java

基础框架:Spring Boot

安全框架:Spring Security

反向代理:Nginx

网关:Spring Cloud Gateway

RPC调用:Dubbo

注册中心:ZooKeeper

配置中心:Spring Cloud Config

数据访问:MyBatis

消息中间件:RocketMQ

熔断限流:Sentinel

搜索引擎:Elasticsearch

文件存储:FastDFS

数据库:MySQL

缓存:Redis

前端框架:Vue


04-代码落地


服务拆分:鉴权服务、用户服务、商品服务、订单服务、支付服务、广告服务、搜索服务、文件服务

前端工程:门户、页面布局

反向代理:限流、跨域

后端工程:登录模块、用户模块、商品模块、订单模块、支付模块、广告模块、秒杀模块、搜索模块、文件模块


05-关键问题


系统三高问题

安全交易问题

中台建设问题



项目案例


案例一:RocketMQ 使用场景


消息过滤实战

消息消费积压问题排查实战

订阅关系不一致实战

批量消费实战

image.png




案例二:Spring Cloud 服务注册与发现的伪集群搭建


Provider + Consumer + Eureka 服务搭建

Provider + Consumer + Nacos 服务搭建

Consumer + Provider + Nginx 集群搭建

image.png



案例三:从 0 到 1 搭建一套完整的微服务项目


Spring Cloud 服务注册与发现的伪集群搭建

搭建服务治理与配置 Nacos

搭建服务网关 Gateway

使用 OpenFeign 远程调用

基于 Sentinel 完成熔断、限流、降级

Dubbo 工程案例环境搭建



作者:wwl

网络攻防研究员

上一篇:
下一篇:
评论列表 (0)条评论

发表评论