项目概述
年纪轻轻,为什么要搞中间件开发?说到底,为什么要扒开CRUD的表面,深入到核心源码实践学一些中间件开发技能,还不是希望自己对技术栈学习有一定的深度,免得面试时被人忽悠压薪资。
全小册19个章节,包括16个中间件的设计和开发,包括测试案例共30个代码库提供给读者学习使用。小册实现的中间件场景涵盖:技术框架、数据服务、数据组件、分布式技术、服务治理、字节码、IDEA插件七个方面,贯穿整个互联网系统架构中常用的核心内容。
核心技术问题
- 类的代理、反射调用是在什么场景用到的?
- 自定义注解是怎么和切面一起获取到信息使用的?
- 你需要的yml配置信息是如何被SpringBoot加载并初始化的?
- Bean 是如何被注入到 Spring 容器,提供服务的?
- ORM 框架是怎么解决不需要写接口的实现类就能执行CRUD操作的?
- 扰动函数和数据库路由实现中的数据散列有什么关系?
- 分布式任务调度与zookeeper配置中心是怎么联动的?
- 字节码插桩对方法增强怎么拦截程序方法运行时信息?
核心技术栈
技术框架
Spring、SpringBoot配置加载、自定义注解、扫描注册Bean等,以及ORM框架设计原理和实现
数据服务
Mysql、Redis、Elasticsearch数据服务的使用和封装,包括JDBC、Jedis、x-pack等组件
数据组件
简化数据服务使用的组件开发,如ORM框架、查询映射等面向对象开发包装
分布式技术
RPC框架、注册中心、分布式任务调度等分布式架构核心技术的设计和实现
服务治理
熔断、降级、限流、切量、黑白名单以及非入侵式扩展增强等服务治理组件
字节码&插件
字节码插桩、JVMTI、IDEA插件开发等技术,实现非入侵式监控和开发工具
中间件实现展示
服务治理,统一白名单控制
解决上线验证风险,白名单特定用户开量验证
服务治理,超时熔断
包装超时调用熔断,降低业务系统接入成本
服务治理,调用限流
包装接口调用限流,降低业务系统接入成本
服务治理,自定义拦截方法
不破坏现有方法,增强方法服务能力
ORM 框架实现
学习 ORM 框架核心设计,实现简单版 MyBatis
ORM 框架与 Spring 集合
熟悉 Bean 扫描、代理、注册、管理等,以及对 ORM 的包装
结合 SpringBoot 开发 ORM Starter
ORM、Spring 与 SpringBoot 结合,自动化记载初始配置,开发 Starter
ES-JDBC 查询引擎
了解 Elasticsearch JDBC 组件的源码实现,x-pack-jdbc
ES SpringBoot Starter 服务框架
运用 ORM 技术迁移,开发 ES 类的 ORM 框架,解决查询映射复杂性
RPC 框架实现
学习 RPC 框架的设计和开发,了解通信原理和实现
数据库路由组件
把散列算法、切面处理、数据源切换、自定义配置结合在一起实践
Redis 简化使用封装
处理 Redis 的二次包装,简化为接口代理方式使用
分布式任务调度
在注册中、任务、控制台,多方内容组合下开发分布式任务调度
非入侵监控设计,ASM 字节码插桩
了解字节码插桩技术,学习 Javaagent 处理的非入侵监控方式
非入侵监控设计,JVMTI 定位代码
了解 JVMTI 的技术能力,开发 C++ dll 组件,增强监控能力
IDEA插件与字节码插桩结合
结合 IDEA 插件开发与字节码增强技术,采集代码研发运行过程中的执行信息
你会学到什么?
1
Spring 核心技术
深入学习 Spring 对配置文件的加载、Bean 扫描、定义、注册等核心机制,掌握 Spring Boot 关于 Starter 开发的常用技术手段和技巧。
配置文件加载机制
Bean 扫描与注册
Starter 开发技巧
2
中间件设计实战
掌握 ORM、RPC、数据库路由、服务治理、系统监控、IDEA插件等各类场景下的中间件设计,从理论到实践全面提升。
ORM 框架设计
RPC 框架实现
服务治理组件
3
核心技术运用
学习类的代理、反射调用、切面处理、字节码插桩、扰动函数增强散列以及JVMTI等核心技术的实际运用。
代理与反射
字节码插桩
JVMTI 技术
适宜人群
Java 开发者
具备 Java 编程基础的研发人员,略懂部分框架源码,经常使用各类技术组件
技能提升者
需要提升个人的核心技术能力,突破技术瓶颈的开发人员
中间件爱好者
对中间件开发感兴趣,但不知道从哪入手的技术人员
Starter 开发者
有在 SpringBoot 开发 Starter 的技术需求的开发者
加入小傅哥技术社群
加入小傅哥技术社群,学习全部实战项目。包括 SpringBoot 中间件开发在内的多个企业级项目,全程手把手教学,提供完整的学习路径和技术支持,助你快速提升技术能力!