README.md

    《SpringBoot 中间件设计和开发》 专栏介绍文档

    作者介绍

    小傅哥,一线互联网 java 工程师、架构师,开发过交易&营销、写过运营&活动、设计过中间件也倒腾过中继器、IO板卡。不只是写Java语言,也搞过C#、PHP,是一个技术活跃的折腾者。

    小册内容

    全小册19个章节,包括16个中间件的设计和开发,包括测试案例共30个代码库提供给读者学习使用。小册实现的中间件场景涵盖:技术框架、数据服务、数据组件、分布式技术、服务治理、字节码、IDEA插件七个方面,贯穿整个互联网系统架构中常用的核心内容。非常值得了解、学习、实践到掌握。

    图 2-1

    • 技术框架:包括 Spring、SpringBoot 配置加载、自定义注解、扫描注册Bean等,以及 ORM 框架设计原理和实现。这部分技术主要是把开发的中间件与框架结合,开发相应的组件或者包装为各类 SpringBoot Starter 的能力学习。
    • 数据服务:Mysql、Redis、Elasticsearch,都是数据服务,通常需要开发各类组件对数据服务的使用进行封装,Mysql 我们知道有 JDBC,Redis 我们知道有 Jedis,但 Elasticsearch 有 x-pack 你是否了解。
    • 数据组件:这类组件的开发就是为了简化对数据服务的使用,Mysql+JDBC+ORM,可以非常方便的使用数据库服务,那么 Elasticsearch 是否也可以做相应的组件研发,让它的查询也能像使用 MyBatis 一样呢?二折页的技术能力就需要对 MyBatis 等 ORM 框架的实现原理熟悉,同时需要了解 JDBC 的概念。
    • 分布式技术:RPC 框架、注册中心、分布式任务,都是现有互联网分布式架构中非常重要的技术,而对于如何实现一个 RPC 框架,也技术是研发人员要掌握的重点,同时如何使用注册中心、怎么下发分布式调度任务,等等,这些技术的学习能让对现有的框架使用有更深入的认识。
    • 服务治理:熔断、降级、限流、切量、黑白名单以及对现有方法的非入侵式扩展增强等,都可以成为是服务治理类组件,原本这类技术在早期是与业务逻辑代码融合的,后来逐步被拆解出来,开发成对应的组件。所以我们可以学习到,关于这类组件的包装、集成是如何做的。
    • 字节码&插件:在互联网的系统应用运维过程中,你一定会接触到各类的监控系统,而很多监控系统是非入侵的全链路监控,那么这些是如何实现的呢?其实它们是基于字节码插桩,对系统方法的增强,采集相应的运行时信息,进行监控的。再到扩展 JVMTI、IDEA 插件开发,都是为了整个研发过程的可持续交付和上线提高交付质量和降低人效的。

    综上,这些贯穿整个互联网系统架构中的各类典型中间件,都会在后续章节中陆续讲解出来,它们是如何设计和实现的,一点点带你解开中间件的神秘面纱,让你的技术栈知识也增加一些有深度的并且是可以亲自操作的内容。

    中间件设计和实现列表

    序号 图标 名称 描述
    1 服务治理,统一白名单控制 解决上线验证风险,白名单特定用户开量验证
    2 服务治理,超时熔断 包装超时调用熔断,降低业务系统接入成本
    3 服务治理,调用限流 包装接口调用限流,降低业务系统接入成本
    4 服务治理,自定义拦截方法 不破坏现有方法,增强方法服务能力
    5 ORM 框架实现 学习 ORM 框架核心设计,实现简单版 MyBatis
    6 ORM 框架与 Spring 集合 熟悉 Bean 扫描、代理、注册、管理等,以及对 ORM 的包装
    7 结合 SpringBoot 开发 ORM Starter ORM、Spring 与 SpringBoot 结合,自动化记载初始配置,开发 Starter
    8 ES-JDBC 查询引擎 了解 Elasticsearch JDBC 组件的源码实现,x-pack-jdbc
    9 ES SpringBoot Starter 服务框架 运用 ORM 技术迁移,开发 ES 类的 ORM 框架,解决查询映射复杂性,做面向对象开发包装
    10 RPC 框架实现 学习 RPC 框架的设计和开发,了解通信原理和实现
    11 数据库路由组件 把散列算法、切面处理、数据源切换、自定义配置结合在一起实践,开发路由组件
    12 Redis 简化使用封装 处理 Redis 的二次包装,简化为接口代理方式使用,降低应用成本,以及增加升级容易度
    13 分布式任务调度 在注册中、任务、控制台,多方内容组合下开发分布式任务调度
    14 非入侵监控设计,ASM 字节码插桩 了解字节码插桩技术,学习 Javaagent 处理的非入侵监控方式
    15 非入侵监控设计,JVMTI 定位代码 了解 JVMTI 的技术能力,开发 C++ dll 组件,增强监控能力
    16 IDEA插件与字节码插桩结合 结合 IDEA 插件开发与字节码增强技术,采集代码研发运行过程中的执行信息,分析和提升交付质量

    小册16个中间件实现,包括测试工程等共计30个代码库,每一章节都会对应有一个中间件的设计和实现,为了便于读者快速有效的学习小册中的技术内容,这里介绍下小册中章节的内容结构,涵盖以下5方面内容:

    1. 开篇引导,在技术、经验、成长等各方面汇总的内容,帮助大家扩宽知识面和增加成长经验。
    2. 需求背景,讲述此中间件会因为什么场景、什么需求下用于解决什么痛点而提出的。
    3. 方案设计,针对需求背景的痛点问题,做中间件架构方案设计,包括设计图稿和实现描述。
    4. 技术实现,主要是对方案设计的具体实现落地,这个过程会包括完整的实现源码以及所有核心代码的讲解。保证大家在学习的过程中也能完成中间件的设计和开发。
    5. 测试验证,每一个中间件的实现都有一个对应的测试工程,例如:whitelist-spring-boot-starterwhitelist-spring-boot-starter-test。通过测试工程对中间件实现预期的验证,可以让大家更加容易的理解一个需求的背景、设计、实现到交付验证的过程。
    6. 文末总结,是对每一篇文章的概要汇总,也是给读者在文末针对此篇文章的学习的一个帮助提醒,也希望你学到的信息要远比站在作者视角总结的内容还要完善。

    你会学到什么?

    • Spring 对配置文件的加载、Bean 扫描、定义、注册等
    • Spring Boot 关于 Starter 开发的常用技术手段和技巧
    • ORM、RPC、数据库路由、服务治理、系统监控、IDEA插件等各类场景下的中间件设计
    • 类的代理、反射调用、切面处理、字节码插桩、扰动函数增强散列以及JVMTI等核心技术的实际运用
    • 30个代码库让你对中间件的设计、实现、验证,有清晰的认识

    适宜人群

    • 具备 Java 编程基础的研发人员,略懂部分框架源码,经常使用各类技术组件
    • 需要提升个人的核心技术能力
    • 对中间件开发感兴趣,但不知道从哪入手
    • 有在 SpringBoot 开发 Starter 的技术需求

    📚小册购买优惠

    《SpringBoot 中间件设计和开发》掘金专栏小册首发8折,涵盖19章和一套章节内容对应的完整代码库,购买后可以按照小册第二节说明进行使用。

    1. 可获得内容包括

    1. 《SpringBoot 中间件设计和开发》 专栏小册完整阅读权限
    2. 30组对应的代码库一套,可以随时交流讨论提交 issues
    3. 可以加入专栏小册交流群,添加我的微信:fustack 备注:中间件加群

    2. 购买方式

    1. 点击或复制链接:https://juejin.cn/book/6940996508632219689
    2. 公众号读者,阅读原文直接进入购买链接
    3. 添加专栏作者小傅哥微信:fustack,备注购买小册

    🎉收尾感谢

    谢谢掘金平台和运营优弧对小册校对审核到上架的帮助,谢谢粉丝伙伴对小傅哥技术内容的认可和期待,也谢谢家人在过年和周末期间给我提供的时间只干饭不洗完😄哈哈哈哈,专心码文章

    好嘛,就是在大家的帮助、支持、认可、鼓励中,你希望看到的中间件设计和开发小册和大家见面了!这是一个程序员成长阶段突破技术瓶颈和提升技术认知,都应该了解和学习的内容,加油!记住在专栏学习过程中遇到任何问题,请联系这个优秀的男人:小傅哥,微信:fustack

    项目简介

    《SpringBoot 中间件设计和开发》 专栏内容描述,内容概要介绍、源码使用说明、学习疑问反馈、技术交流等。

    发行版本

    当前项目没有发行版本

    贡献者 1

    小傅哥 @Yao__Shun__Yu

    开发语言