Java主流分布式解决方案多场景设计与实战
四种分布式锁+七种分布式事务+两种分库分表+四种分布式Session+两种分布式调度+六种分布式ID
随着互联网数据井喷式的发展,分布式技术应运而生。分布式因其高性能、高可用、高扩展的特点,成为微服务项目的基石。本课程针对分布式六大主流问题进行多方案对比解析,多场景实战讲解,让你深度掌握分布式原理和实战。课程分别从源码、手撸框架、实战演练等多个方面进行多维度深入讲解,让你轻松掌握分布式各种解决方案,掌握分布式解决方案的设计和架构能力,跻身分布式高手行列。
目录大纲:
第1章 课程介绍 试看1 节 | 6分钟
本章和大家聊一聊为什么要学习分布式专题,并对课程内容做概览介绍。
收起列表
视频:
1-1 课程导学 (05:42)
试看
第2章 分布式锁前置内容-JVM锁和MySql锁解决库存超卖问题7 节 | 102分钟
本章会先引入一个库存扣减的案例,并围绕着该案例来分析一下在高并发场景下遇到的库存超卖问题。并尝试使用JVM锁、Mysql锁来解决该问题。
收起列表
视频:
2-1 从四个方面深度剖析分布式锁的原理、源码及应用 (08:02)
视频:
2-2 【实战】从扣减库存案例深入剖析共享资源的数据 (18:33)
视频:
2-3 使用JMeter压力测试工具产生大量并发数据 (10:34)
视频:
2-4 如何解决高并发引起的超卖问题?-带你使用JVM锁解决此问题 (08:59)
视频:
2-5 JVM锁失效场景有哪些? (15:26)
视频:
2-6 Mysql悲观锁特性如何解决并发问题? (25:31)
视频:
2-7 Mysql乐观锁方案如何解决超卖问题? (14:35)
第3章 分布式锁篇--基于Redis手撸分布式锁15 节 | 169分钟
本章将基于分布式系统的特点,引出分布式锁的重要性和应用场景。通过对分布式系统中遇到的问题进行分析和思考,我们将以Redis为基础,逐步手动实现一个高效可靠的分布式锁。
收起列表
视频:
3-1 谈谈分布式锁与它的那些应用场景 (10:51)
视频:
3-2 Redis实现分布式锁思路剖析 (06:31)
视频:
3-3 带你手撸Redis-setnx简化版分布式锁 (14:45)
试看
视频:
3-4 简化版分布式锁存在哪些问题? (05:52)
视频:
3-5 通过增加锁过期时间来解决死锁问题 (12:39)
视频:
3-6 【手撸】通过增加UUID来解决锁误删问题 (06:50)
视频:
3-7 初探Lua脚本 (21:45)
视频:
3-8 Lua脚本在Redis中的使用 (05:13)
视频:
3-9 利用Lua脚本解决锁原子性问题 (14:21)
视频:
3-10 如何实现同一个线程多次加锁的重入问题? (04:44)
视频:
3-11 利用Lua脚本实现锁可重入性 (15:21)
视频:
3-12 使用异步线程解决Redis锁续期问题 (10:36)
视频:
3-13 增加锁获取超时时间解决锁阻塞问题 (12:00)
视频:
3-14 Redlock分布式锁算法原理深入剖析 (16:32)
视频:
3-15 本章总结 (10:53)
第4章 分布式锁篇--基于Redisson框架实现分布式锁及实战&源码深入剖析23 节 | 225分钟
本章将对Redission源码进行深入分析,重点探讨其可重入、Watchdog、公平锁、读写锁等关键源码实现。同时,将与我们自己基于redis实现的分布式锁进行比较,以便更好地理解和应用这些概念。
收起列表
视频:
4-1 如何使用Redisson实现分布式锁? (08:35)
视频:
4-2 【实战】Redisson分布式锁如何解决库存扣减并发问题? (07:04)
视频:
4-3 【集成】如何将Redisson开源源码导入本地Idea (09:20)
视频:
4-4 【源码剖析】Redisson可重入锁加锁流程分析 (10:31)
试看
视频:
4-5 【源码剖析】Redisson可重入锁之加锁Lua脚本分析 (05:47)
视频:
4-6 【源码剖析】Redisson利用Watchdog机制异步维持客户端锁 (05:50)
视频:
4-7 【源码剖析】Redisson可重入锁之释放锁Lua脚本深入剖析 (03:01)
视频:
4-8 【源码剖析】Redisson可重入锁之阻塞和非阻塞获取锁 (06:47)
视频:
4-9 -1 【源码剖析】Redisson实现公平锁之加锁Lua脚本 (19:26)
视频:
4-10 -2 【源码剖析】Redisson实现公平锁之加锁Lua脚本 (14:18)
视频:
4-11 【源码剖析】Redisson实现公平锁之释放锁Lua脚本 (04:46)
视频:
4-12 【源码剖析】Redisson实现MultiLock思路剖析 (05:44)
视频:
4-13 【源码剖析】Redisson实现MultiLock加锁与释放锁流程剖析 (15:16)
视频:
4-14 【源码剖析】Redisson是如何实现RedLock算法? (08:59)
视频:
4-15 【源码剖析】Redisson实现读写锁之加读锁Lua脚本 (13:38)
视频:
4-16 【源码剖析】Redisson实现读写锁之加写锁Lua脚本 (03:51)
视频:
4-17 【源码剖析】Redisson实现读写锁之读锁写锁互斥分析 (10:03)
视频:
4-18 【源码剖析】Redisson实现读写锁之释放读锁Lua脚本 (12:21)
视频:
4-19 【源码剖析】Redisson实现读写锁之释放写锁Lua脚本 (07:30)
视频:
4-20 【源码剖析】Redisson如何利用实现Redis数据结构实现Semaphore? (12:11)
视频:
4-21 【源码剖析】Redisson如何利用实现Redis数据结构实现CountDownLatch (08:05)
视频:
4-22 使用Redisson解决用户重复注册问题 (25:40)
视频:
4-23 本章总结 (05:44)
第5章 分布式锁篇--基于ZooKeeper实现分布式锁13 节 | 132分钟
本章主要介绍了Zookeeper的相关知识,并基于Zookeeper手撸实现分布式锁。通过本章的学习,你将了解到Zookeeper在分布式系统中的重要作用,并掌握使用Zookeeper实现分布式锁的方法和技巧。
收起列表
视频:
5-1 ZooKeeper的介绍与安装 (22:19)
视频:
5-2 手把手带你掌握ZooKeeper基础命令与应用 (11:06)
视频:
5-3 ZooKeeper节点数据类型详解 (06:56)
视频:
5-4 ZooKeeper节点监听机制详解 (06:16)
视频:
5-5 【集成】Java客户端调用ZooKeeper命令实践 (11:56)
视频:
5-6 【思路分析】ZooKeeper实现分布式锁思路分析 (05:00)
视频:
5-7 【手撸】使用ZooKeeper临时节点特性实现简化版分布式锁 (14:26)
视频:
5-8 【问题分析】简化版本分布式锁存在哪些问题? (06:10)
视频:
5-9 使用ZooKeeper节点监听机制解决锁唤醒问题 (06:18)
视频:
5-10 使用ZooKeeper临时顺序节点特性解决公平锁问题(一) (10:56)
视频:
5-11 使用ZooKeeper临时顺序节点特性解决公平锁问题(二) (12:22)
视频:
5-12 【手撸】使用Java内存Map解决锁重入问题 (08:28)
视频:
5-13 本章总结 (09:04)
第6章 分布式锁篇--ZK开源客户端-Curator框架实现分布式锁及实战&源码深入剖析10 节 | 87分钟
本章将介绍Curator的概述和源码深入剖析,重点探讨其可重入、读写锁、MultiLock等关键源码实现,同时与自己实现的基于Zookeeper的分布式锁代码进行对比分析。
收起列表
视频:
6-1 带你从官方文档了解Curator框架 (07:19)
视频:
6-2 【实战】集成Curator分布式锁解决库存扣减并发问题 (07:27)
视频:
6-3 如何将Curator开源源码导入本地Idea (05:53)
视频:
6-4 【源码剖析】Curator实现可重入锁之加锁流程分析(一) (07:45)
视频:
6-5 【源码剖析】Curator实现可重入锁之加锁流程分析(二) (17:02)
视频:
6-6 【源码剖析】Curator实现可重入锁之释放锁流程分析 (02:41)
视频:
6-7 【源码剖析】Curator实现读写锁流程分析 (15:34)
视频:
6-8 【源码剖析】Curator实现MultiLock流程分析 (03:10)
视频:
6-9 【源码剖析】Curator如何利用ZooKeeper数据结构实现Semaphore(信号量) (15:03)
视频:
6-10 本章总结 (04:11)
第7章 分布式锁篇--基于Mysql手撸分布式锁6 节 | 50分钟
本章将介绍如何基于Mysql实现分布式锁,通过使用Mysql的悲观锁和唯一索引的方式来实现分布式锁,并针对唯一索引实现方式做了优化。
收起列表
视频:
7-1 【思路分析】带你一步步分析Mysql实现分布式锁思路 (07:21)
视频:
7-2 【手撸】Mysql悲观锁手撸实现分布式锁 (10:20)
视频:
7-3 【手撸】基于Mysql唯一索引手撸实现分布式锁 (06:14)
视频:
7-4 【手撸】增加锁过期扫描解决死锁问题 (14:59)
视频:
7-5 【手撸】增加锁持有者标识防止锁误删 (05:43)
视频:
7-6 本章总结 (04:50)
第8章 分布式锁篇--分布式存储系统Etcd实现分布式锁7 节 | 61分钟
本章将介绍etcd的基础知识和实现分布式锁的特性,并深入探讨如何利用Etcd实现分布式锁。通过本章的学习,您将了解到etcd在分布式系统中的重要作用,并掌握使用etcd实现分布式锁的技巧。
收起列表
视频:
8-1 带你全面了解分布式存储系统Etcd与环境搭建 (05:27)
视频:
8-2 Etcd基础知识详解 (05:57)
视频:
8-3 Etcd实现分布式锁如何依赖特殊机制? (08:24)
视频:
8-4 SpringBoot集成Jetcd客户端代码实现 (15:17)
视频:
8-5 【思路分析】Etcd实现分布式锁思路分析 (06:43)
视频:
8-6 【手撸】Etcd实现分布式锁代码实现 (11:57)
视频:
8-7 本章总结 (06:28)
第9章 分布式锁篇--手撸实现分布式锁通用SDK与集成4 节 | 37分钟
本章将针对于手撸实现的Redis、Zookeeper、Mysql、Etcd分布式锁进行封装,并且抽象成一个通用分布式锁SDK。该SDK可以快速便捷的集成到业务系统中根据业务场景使用不同实现的分布锁。
收起列表
视频:
9-1 搭建分布式锁解决方案SDK基础包结构 (09:29)
视频:
9-2 抽象分布式锁不同实现方案的加锁、释放锁能力 (14:02)
视频:
9-3 分布式锁解决方案SDK打包与集成使用 (09:25)
视频:
9-4 本章总结 (03:20)
第10章 分布式锁篇--分布式锁总结与面试题解析2 节 | 34分钟
本章是对分布式锁相关内容的总结,同时还将解答一些常见的面试题,帮助你在面试中更好地应对与分布式锁相关的问题。
收起列表
视频:
10-1 分布式锁常见面试题解析 (26:56)
视频:
10-2 分布式锁总结 (06:21)
第11章 分布式事务篇--七种分布式事务解决方案27 节 | 357分钟
本章将回顾事务的基本概念,包括事务的定义、ACID特性。接着介绍CAP理论和Base理论,解释分布式系统中的一致性和可用性之间的权衡。然后深入探讨XA事务规范和Atomikos源码分析,接下来介绍2PC和3PC协议,以及TCC事务模式的实现方式。然后讨论本地消息表、事务消息、最大努力通知和saga模式,介绍它们在分布式事务中的应用。...
收起列表
视频:
11-1 谈谈事务的概念及特性 (06:07)
视频:
11-2 带你聊聊分布式事务及其应用场景 (04:15)
视频:
11-3 分布式理论-CAP理论深入剖析 (11:51)
视频:
11-4 分布式理论-BASE理论深入剖析 (05:06)
视频:
11-5 带你通过员工信息管理实战回顾Spring事务 (17:03)
视频:
11-6 Spring事务针对多数据源还能生效么? (12:16)
视频:
11-7 分布式事务模型DTP与XA规范深入剖析 (07:25)
视频:
11-8 【分布式事务解决方案一】-2PC两阶段提交 (05:46)
视频:
11-9 【手撸】带着大家使用Java代码实现数据库XA规范 (19:49)
视频:
11-10 Java事务接口规范-JTA剖析及Atomikos框架初识 (05:26)
视频:
11-11 【实战】集成Atomikos实现多数据源事务管理 (16:23)
视频:
11-12 【源码剖析】Atomikos创建分布式事务流程分析(一) (09:43)
视频:
11-13 【源码剖析】Atomikos创建分布式事务流程分析(二) (22:34)
视频:
11-14 【源码剖析】Atomikos分支事务执行流程分析-关键类 (21:18)
视频:
11-15 【源码剖析】Atomikos分支事务执行流程分析-分支事务开始 (16:06)
视频:
11-16 【源码剖析】Atomikos分支事务执行流程-分支事务结束 (08:04)
视频:
11-17 【源码剖析】Atomikos事务提交与回滚流程分析 (31:20)
视频:
11-18 【问题分析】2PC存在哪些问题? (05:19)
视频:
11-19 【分布式事务解决方案二】-3PC三阶段提交 (10:50)
视频:
11-20 【实战】基于Spring Cloud将员工管理系统微服务化 (24:26)
视频:
11-21 【分布式事务解决方案三】-TCC实现分布式事务 (15:09)
视频:
11-22 【实战】Hmily框架解决微服务事务管理问题 (25:10)
视频:
11-23 【分布式事务解决方案四】-本地消息表实现分布式事务 (12:10)
视频:
11-24 【分布式事务解决方案五】-MQ事务消息实现分布式事务 (06:23)
视频:
11-25 【实战】RocketMQ事务消息实现员工管理系统 (15:40)
视频:
11-26 【分布式事务解决方案六】-最大努力通知方案 (06:11)
视频:
11-27 【分布式事务解决方案七】-Saga模式实现分布式事务 (14:24)
第12章 分布式事务篇--分布式事务Seata框架深入剖析17 节 | 214分钟
本章将介绍Seata分布式事务框架的基本概念和原理,包括Seata的架构和核心组件。我们还将学习如何集成和使用Seata来实现分布式事务的管理。此外,我们还将深入分析Seata在事务提交和回滚过程中的源码实现细节。通过本章的学习,您将全面了解Seata的功能和使用方法,为实现分布式事务提供有力支持。...
收起列表
视频:
12-1 支持四种事务模式的一站式的分布式事务框架--Seata (13:01)
视频:
12-2 Seata框架AT模式详解 (19:54)
视频:
12-3 【实战】集成Seata框架实现员工管理系统 (17:37)
视频:
12-4 【思路分析】Seata是如何实现分布式事务的? (11:37)
视频:
12-5 【源码剖析】Seata服务端启动过程中都做了哪些事? (18:03)
视频:
12-6 【源码剖析】Seata如何通过@GlobalTransactional注解触发事务执行? (19:57)
视频:
12-7 【源码剖析】Seata客户端如何开启分布式事务? (05:03)
视频:
12-8 【源码剖析】TC(事务协调器)接收到TM(事务管理者)发起事务的消息后如何处理 (17:45)
视频:
12-9 【源码剖析】开启分布式事务总结 (02:58)
视频:
12-10 【源码剖析】RM(资源管理器)是如何实现分支事务的注册的? (10:11)
视频:
12-11 【源码剖析】TC(事务协调器)接收到RM(资源管理器)注册分支事务后如何处理? (13:18)
视频:
12-12 【源码剖析】RM(资源管理器)是如何生成回滚日志? (16:51)
视频:
12-13 【源码剖析】RM分支事务注册以及回滚日志生成总结 (04:44)
视频:
12-14 【源码剖析】事务提交的处理流程剖析 (20:16)
视频:
12-15 【源码剖析】事务回滚的处理流程剖析 (09:28)
视频:
12-16 【源码剖析】事务提交与回滚总结 (03:10)
视频:
12-17 本章总结 (09:09)
第13章 分布式ID篇--六种分布式ID生成方案与算法、源码深入剖析16 节 | 192分钟
本章节将深入介绍分布式ID的概念和应用场景,详细讲解著名的雪花算法,以及常用的分布式ID实现方案。通过分步骤的讲解,帮助你逐步掌握分布式ID的知识,为进一步学习分布式技术打下坚实的基础。本章节包括分布式ID的解决方案、uuid方案、数据库自增方案。...
收起列表
视频:
13-1 谈谈分布式ID的概念及原则 (04:04)
视频:
13-2 【分布式ID生成方案一】使用UUID方案实现分布式ID (09:58)
视频:
13-3 【分布式ID生成方案二】使用数据库自增方案实现分布式ID (13:14)
视频:
13-4 【分布式ID生成方案三】使用数据库号段模式实现分布式ID (16:19)
视频:
13-5 【源码剖析】滴滴Tinyid实现号段模式 (30:11)
视频:
13-6 【实战】Springboot集成滴滴Tinyid号段模式实战 (11:13)
视频:
13-7 【源码剖析】美团Leaf实现号段模式 (28:33)
视频:
13-8 【实战】Springboot集成美团Leaf号段模式实战 (08:37)
视频:
13-9 【分布式ID生成方案四】使用redis自增方案实现分布式ID (06:21)
视频:
13-10 【分布式ID生成方案五】使用Zookeeper顺序节点实现分布式ID (07:27)
视频:
13-11 【分布式ID生成方案六】使用雪花算法实现分布式ID (06:07)
视频:
13-12 【源码剖析】开源雪花算法代码实现剖析 (12:31)
视频:
13-13 【源码剖析】百度UidGenerator实现雪花算法剖析 (11:17)
视频:
13-14 【源码剖析】美团leaf实现雪花算法剖析 (11:01)
视频:
13-15 【实战】SpringBoot集成美团leaf雪花算法实战 (02:07)
视频:
13-16 本章总结 (12:49)
第14章 分库分表篇--分库分表理论讲解内容更新中
本章将介绍分库分表的应用场景,包括垂直分库分表和水平分库分表的实现方式。我们还将讨论分库分表带来的问题,并提供解决方案。通过本章的学习,您将深入了解分库分表的概念和实践,为应对大规模数据存储和查询需求提供有效的解决方案。...
第15章 分库分表篇--分库分表利器一-Sharding-JDBC详解内容更新中
本章将深入讲解Sharding-JDBC的实战应用,重点介绍如何通过不同的分片规则配置来实现分库分表以及读写分离的实现,掌握分库分表和读写分离的核心概念和实践技巧。 通过本章的学习,您将能够灵活应用Sharding-JDBC来优化数据库架构,提升系统的性能和扩展性。...
第16章 分库分表篇--分库分表利器一-Sharding-JDBC源码深入剖析内容更新中
本章的章节介绍主要是讲解Sharding-JDBC源码分析,包括代码拦截、SQL拦截、SQL路由解析和改写以及结果汇总。通过深入分析Sharding-JDBC的源码,你将能够更好地理解其内部实现原理,并能够应用于实际的分库分表场景中。
第17章 分库分表篇--分库分表利器一-Sharding-JDBC实战内容更新中
本章将介绍Sharding-JDBC在分库分表场景下的实战应用。我们将通过使用Sharding-JDBC来解决商品信息管理需求,包括商品的增加、删除、修改和查询等操作。
第18章 分库分表篇--分库分表利器二-Mycat详解内容更新中
本章将介绍Mycat垂直水平分库分表的配置和读写分离配置,以及分片扩展。
第19章 分库分表篇--分库分表利器二-Mycat实战内容更新中
本章将介绍Mycat在分库分表场景下的实战应用。我们将通过使用Mycat来解决商品信息管理需求,包括商品的增加、删除、修改和查询等操作。
第20章 分布式Session篇--四种分布式Session解决方案内容更新中
本章将介绍四种分布式Session解决方案,包括基于Tomcat、Nginx、Spring Session和客户端Cookie的实现方式。我们将深入探讨这些解决方案的原理和实现方法,帮助学员理解分布式Session存储问题,并能够灵活应用于实际项目中。
第21章 分布式Session篇--JWT实现跨域认证内容更新中
本章将介绍JWT实现跨域认证的内容。我们将详细了解JWT(JSON Web Token)的概念和生成JWT的流程,以及如何在实际项目中应用JWT进行跨域认证。通过本章的学习,您将深入了解JWT的原理和使用方法,并能够在分布式系统中实现安全的跨域认证。...
第22章 分布式调度篇--分布式场景下的任务调度讲解内容更新中
本章将介绍分布式场景下的任务调度,重点分析Spring的任务调度机制,并指出其在分布式场景下存在的不足之处。同时,还将对常见的分布式调度框架进行详细说明。
第23章 分布式调度篇--分布式任务调度平台XXL-Job讲解与源码深入剖析内容更新中
本章将介绍XXL-Job的概述和实现源码,对不同路由策略的源码分析。通过本章的学习,学员将了解到XXL-Job的基本原理和架构,以及如何使用XXL-Job进行分布式调度。
第24章 分布式调度篇--分布式任务调度平台XXL-Job实战内容更新中
本章将介绍如何将XXL-Job与Spring Boot集成,以实现优惠券的调度和过期处理问题。
第25章 分布式综合技术点实战内容更新中
本章将利用课程中学习到的内容,通过订单实例案例演示,分析分布式场景下遇到的问题,再利用相对应的解决方案来解决问题。
第26章 课程总结与展望内容更新中
本章主要针对课程内容做回顾和总结,帮助大家梳理课程的重点,加强大家的学习印象,从而达到最好的学习效果。
本课程持续更新中
|