课程背景
由 Sharding-JDBC 升级的 ShardingSphere 作为业界首个 Apache 分布式数据库中间件项目,以其解决方案完备性、开发友好性、可插拔的系统扩展性,成为分库分表领域权威领先框架,已经被多家知名企业采用,包括京东、当当、哔哩哔哩等。
作为开发人员,只要你有数据处理的需求,掌握 ShardingSphere 等主流分布式开发框架,一定是你工作、求职中超越同行的硬实力。
专栏解读
本专栏共 6 大模块,34讲内容,为你介绍主流分库分表解决方案和工程实践,带你掌握 ShardingSphere 核心功能和实现原理,基于 ShardingSphere 开源框架源码剖析,提高通用底层原理的理解力,提升实际场景开发能力。
1.了解分库分表的应用方式和实现原理
帮你理解 ShardingSphere 的核心特性,来满足日常开发工作所需。基于源码给出基础设施、分片引擎、分布式事务和治理与集成等等这些功能的设计原理和实现机制。课程配套代码,你可以在专栏的内容中找到下载链接。
2.学习优秀的开源框架,提高技术理解与应用能力
技术原理是具有相通性的。通过对开源框架(如 ZooKeeper、Nacos、Seata )的解读,强化你对技术体系的系统化理解,还可以让你掌握这些技术体系的具体应用场景和实现方式,从而实现触类旁通。
3.学习从源码分析到日常开发的技巧
在理解 ShardingSphere 的同时,带你提炼出包括:设计模式的应用(如工厂模式、策略模式、模板方法等)、微内核架构等架构模式、组件设计和类层结构划分的思想和实现策略、常见缓存的应用以及自定义缓存机制的实现、Spring 家族框架的集成和整合等开发技巧,这些开发技巧都能够直接应用到日常开发过程。
课程讲师
萧然,资深架构师、创业公司CTO
曾在多家公司担任系统分析架构师、技术总监、CTO 等职位,拥有 10 余年软件行业从业经验。
他对分布式系统的构建、海量数据下的数据存储和访问,以及基于 ShardingSphere 进行数据分库分表和治理工作有着丰富经验,曾带领团队完成业界领先的物联网数据平台建设。目前,他在一家创新型科技公司担任 CTO,负责产品研发和百余人团队的技术管理工作。
课程大纲
模块一:引入 ShardingSphere
01 | 从理论到实践:如何让分库分表真正落地?
02 | 顶级项目:ShardingSphere 是一款什么样的 Apache 开源软件?
03 | 规范兼容:JDBC 规范与 ShardingSphere 是什么关系?
04 | 应用集成:在业务系统中使用 ShardingSphere 的方式有哪些?
05 | 配置驱动:ShardingSphere 中的配置体系是如何设计的?
模块二:ShardingSphere 核心功能
06 | 数据分片:如何实现分库、分表、分库+分表以及强制路由?(上)
07 | 数据分片:如何实现分库、分表、分库+分表以及强制路由?(下)
08 | 读写分离:如何集成分库分表+数据库主从架构?
09 | 分布式事务:如何使用强一致性事务与柔性事务?
10 | 数据脱敏:如何确保敏感数据的安全访问?
11 | 编排治理:如何实现分布式环境下的动态配置管理?
模块三:ShardingSphere 源码解析之基础设施
12 | 从应用到原理:如何高效阅读 ShardingSphere 源码?
13 | 微内核架构:ShardingSphere 如何实现系统的扩展性?
14 | 分布式主键:ShardingSphere 中有哪些分布式主键实现方式?
模块四:ShardingSphere 源码解析之分片引擎
15 | 解析引擎:SQL 解析流程应该包括哪些核心阶段?(上)
16 | 解析引擎:SQL 解析流程应该包括哪些核心阶段?(下)
17 | 路由引擎:如何理解分片路由核心类 ShardingRouter 的运作机制?
18 | 路由引擎:如何实现数据访问的分片路由和广播路由?
19 | 路由引擎:如何在路由过程中集成多种路由策略和路由算法?
20 | 改写引擎:如何理解装饰器模式下的 SQL 改写实现机制?
21 | 执行引擎:分片环境下 SQL 执行的整体流程应该如何进行抽象?
22 | 执行引擎:如何把握 ShardingSphere 中的 Executor 执行模型?(上)
23 | 执行引擎:如何把握 ShardingSphere 中的 Executor 执行模型?(下)
24 | 归并引擎:如何理解数据归并的类型以及简单归并策略的实现过程?
25 | 归并引擎:如何理解流式归并和内存归并在复杂归并场景下的应用方式?
26 | 读写分离:普通主从架构和分片主从架构分别是如何实现的?
模块五:ShardingSphere 源码解析之分布式事务
27 | 分布式事务:如何理解 ShardingSphere 中对分布式事务的抽象过程?
28 | 分布式事务:ShardingSphere 中如何集成强一致性事务和柔性事务支持?(上)
29 | 分布式事务:ShardingSphere 中如何集成强一致性事务和柔性事务支持?(下)
模块六:ShardingSphere 源码解析之治理与集成
30 | 数据脱敏:如何基于改写引擎实现低侵入性数据脱敏方案?
31 | 配置中心:如何基于配置中心实现配置信息的动态化管理?
32 | 注册中心:如何基于注册中心实现数据库访问熔断机制?
33 | 链路跟踪:如何基于 Hook 机制以及 OpenTracing 协议实现数据访问链路跟踪?
34 | 系统集成:如何完成 ShardingSphere 内核与 Spring+SpringBoot 的无缝整合?