大纲1.Seata TCC分布式事务案例配置2.Seata TCC案例服务提供者启动分析3.@TwoPhaseBusinessAction注解扫描源码4.Seata TCC案例分布式事务入口分析5.TCC核心注解扫描与代理创建入口源码6.TCC动态代理拦截器TccActionInterceptor7.Action拦截处理器ActionInterceptorHandler8.Seata TCC分布式
大纲1.Seata的Resource资源接口源码2.Seata数据源连接池代理的实现源码3.Client向Server发起注册RM的源码4.Client向Server注册RM时的交互源码5.数据源连接代理与SQL句柄代理的初始化源码6.Seata基于SQL句柄代理执行SQL的源码7.执行SQL语句前取消自动提交事务的源码8.执行SQL语句前后构建数据镜像的源码9.构建全局锁的key和UndoLog
大纲5.服务变动时如何通知订阅的客户端6.微服务实例信息如何同步集群节点5.服务变动时如何通知订阅的客户端(1)服务注册和服务订阅时发布的客户端注册和订阅事件的处理(2)延迟任务的执行引擎源码(3)处理客户端注册和订阅事件时发布的服务变动和服务订阅事件的处理(1)服务注册和服务订阅时发布的客户端注册和订阅事件的处理一.服务注册Nacos客户端注册服务实例时,Nacos服务端会发布ClientReg
大纲1.Nacos 2.x版本的一些变化2.客户端升级gRPC发起服务注册3.服务端进行服务注册时的处理4.客户端服务发现和服务端处理服务订阅的源码分析1.Nacos 2.x版本的一些变化变化一:客户端和服务端的交互方式由HTTP升级为gRPCNacos 1.x服务端会提供一系列的HTTP接口供客户端请求调用,Nacos 2.x服务端会定义一些列Handler处理类来处理客户端的gRPC请求。Na
大纲5.服务发现—服务之间的调用请求链路分析6.服务端如何维护不健康的微服务实例7.服务下线时涉及的处理8.服务注册发现总结5.服务发现—服务之间的调用请求链路分析(1)微服务通过Nacos完成服务调用的请求流程(2)Nacos客户端进行服务发现的源码(3)Nacos服务端进行服务查询的源码(4)总结(1)微服务通过Nacos完成服务调用的请求流程按照Nacos使用简介里的案例:订单服务和库存服务
大纲1.客户端如何发起服务注册 + 发送服务心跳2.服务端如何处理客户端的服务注册请求3.注册服务—如何实现高并发支撑上百万服务注册4.内存注册表—如何处理注册表的高并发读写冲突1.客户端如何发起服务注册 + 发送服务心跳(1)Nacos客户端项目启动时为什么会自动注册服务(2)Nacos客户端通过什么方式注册服务(3)Nacos客户端如何发送服务心跳(1)Nacos客户端项目启动时为什么会自动注
大纲1.Nacos的定位和优势2.Nacos的整体架构3.Nacos的配置模型4.Nacos内核设计之一致性协议5.Nacos内核设计之自研Distro协议6.Nacos内核设计之通信通道7.Nacos内核设计之寻址机制8.服务注册发现模块的注册中心的设计原理9.服务注册发现模块的注册中心的服务数据模型10.服务注册发现模块的健康检查机制11.配置管理模块的配置一致性模型12.Zookeeper、
大纲1.Nacos的在服务注册中心 + 配置中心中的应用2.Nacos 2.x最新版本下载与目录结构3.Nacos 2.x的数据库存储与日志存储4.Nacos 2.x服务端的startup.sh启动脚本5.Dubbo + Nacos微服务RPC调用开发示例6.Nacos对临时与持久化服务实例的健康检查机制7.Nacos保护阈值机制防止高并发下出现服务雪崩8.Nacos保护阈值机制开启后的CAP问题
大纲1.漏桶算法的实现对比(1)普通思路的漏桶算法实现(2)节省线程的漏桶算法实现(3)Sentinel中的漏桶算法实现(4)Sentinel中的漏桶算法与普通漏桶算法的区别(5)Sentinel中的漏桶算法存在的问题2.令牌桶算法的实现对比(1)普通思路的令牌桶算法实现(2)节省线程的令牌桶算法实现(3)Guava中的令牌桶算法实现(4)Sentinel中的令牌桶算法实现(5)Sentinel中
大纲1.关于限流的概述2.高并发下的四大限流算法原理及实现3.Sentinel使用的设计模式总结1.关于限流的概述保护高并发系统的三把利器:缓存、降级和限流。限流就是通过限制请求的流量以达到保护系统的目的,比如秒杀抢购。具体就是对并发请求进行限速,或对一个时间窗口内的的请求进行限速,一旦达到限制速率就会拒绝服务或进行流量整形。常用的限流方式:一.限制总请求数如数据库连接池、线程池。二.限制瞬时并发
大纲1.参数限流的原理和源码2.@SentinelResource注解的使用和实现1.参数限流的原理和源码(1)参数限流规则ParamFlowRule的配置Demo(2)ParamFlowSlot根据参数限流规则验证请求(1)参数限流规则ParamFlowRule的配置Demo一.参数限流的应用场景二.参数限流规则的属性三.参数限流规则的配置Demo一.参数限流的应用场景传统的流量控制,一般是通过
大纲1.DegradeSlot实现熔断降级的原理与源码2.Sentinel数据指标统计的滑动窗口算法1.DegradeSlot实现熔断降级的原理与源码(1)熔断降级规则DegradeRule的配置Demo(2)注册熔断降级监听器和加载熔断降级规则(3)DegradeSlot根据熔断降级规则对请求进行验证(1)熔断降级规则DegradeRule的配置Demo首先熔断降级规则的应用场景有如下两种:场景
大纲1.Guava提供的RateLimiter限流使用示例2.Guava提供的RateLimiter简介与设计3.继承RateLimiter的SmoothBursty源码4.继承RateLimiter的SmoothWarmingUp源码1.Guava提供的RateLimiter限流使用示例(1)拦截器示例(2)AOP切面示例(1)拦截器示例一.pom文件中引入Guava的依赖包<!-- ht
大纲1.FlowSlot根据流控规则对请求进行限流2.FlowSlot实现流控规则的快速失败效果的原理3.FlowSlot实现流控规则中排队等待效果的原理4.FlowSlot实现流控规则中Warm Up效果的原理1.FlowSlot根据流控规则对请求进行限流(1)流控规则FlowRule的配置Demo(2)注册流控监听器和加载流控规则(3)FlowSlot根据流控规则对请求进行限流(1)流控规则F
大纲1.NodeSelectorSlot构建资源调用树2.LogSlot和StatisticSlot采集资源的数据3.Sentinel监听器模式的规则对象与规则管理4.AuthoritySlot控制黑白名单权限5.SystemSlot根据系统保护规则进行流控1.NodeSelectorSlot构建资源调用树(1)Entry的处理链的执行入口(2)NodeSelectorSlot的源码(3)Cont
大纲1.Sentinel底层的核心概念2.Sentinel中Context的设计思想与源码实现3.Java SPI机制的引入4.Java SPI机制在Sentinel处理链中的应用5.Sentinel默认处理链ProcessorSlot的构建1.Sentinel底层的核心概念(1)资源和规则(2)Context(3)ProcessorSlot(4)Node(1)资源和规则一.什么是资源、规则和En
大纲1.两阶段提交Two-Phase Commit(2PC)2.三阶段提交Three-Phase Commit(3PC)3.ZAB协议算法4.ZAB协议与Paxos算法5.zk的数据存储原理之内存数据6.zk的数据存储原理之事务日志7.zk的数据存储原理之数据快照8.zk的数据存储原理之数据初始化和数据同步流程1.两阶段提交Two-Phase Commit(2PC)(1)数据库事务通过undo和r
大纲1.服务器的请求处理链(1)Leader服务器的请求处理链一.PrepRequestProcessor请求预处理器二.ProposalRequestProcessor事务投票处理器三.SyncRequestProcessor事务日志处理器四.AckRequestProcessor投票反馈处理器五.CommitProcessor事务提交处理器六.ToBeAppliedRequestProcess
大纲1.单机版的zk服务端的启动过程(1)预启动阶段(2)初始化阶段2.集群版的zk服务端的启动过程(1)预启动阶段(2)初始化阶段(3)Leader选举阶段(4)Leader和Follower启动阶段1.单机版的zk服务端的启动过程(1)预启动阶段(2)初始化阶段单机版zk服务端的启动,主要分为两个阶段:预启动阶段和初始化阶段,其启动流程图如下:接下来介绍zk服务端的预启动阶段(启动管理)与初始
大纲1.ZooKeeper如何进行序列化2.深入分析Jute的底层实现原理3.ZooKeeper的网络通信协议详解4.客户端的核心组件和初始化过程5.客户端核心组件HostProvider6.客户端核心组件ClientCnxn7.客户端工作原理之会话创建过程1.ZooKeeper如何进行序列化(1)什么是序列化以及为什么要进行序列化操作(2)ZooKeeper中的序列化方案(3)如何使用Jute实
大纲1.ZooKeeper的数据模型、节点类型与应用(1)数据模型之树形结构(2)节点类型与特性(持久 + 临时 + 顺序 )(3)节点的状态结构(各种zxid + 各种version)(4)节点的版本(version + cversion + aversion)(5)使用ZooKeeper实现锁(悲观锁 + 乐观锁)2.发布订阅模式:用Watcher机制实现分布式通知(1)Watcher机制是如
大纲1.zk实现数据发布订阅2.zk实现负载均衡3.zk实现分布式命名服务4.zk实现分布式协调(Master-Worker协同)5.zk实现分布式通信6.zk实现Master选举7.zk实现分布式锁8.zk实现分布式队列和分布式屏障1.zk实现数据发布订阅(1)发布订阅系统一般有推模式和拉模式(2)zk采用了推拉相结合来实现发布订阅(3)使用zk来实现发布订阅总结(4)zk原生实现分布式配置的示
大纲1.什么是时间轮2.HashedWheelTimer是什么3.HashedWheelTimer的使用4.HashedWheelTimer的运行流程5.HashedWheelTimer的核心字段6.HashedWheelTimer的构造方法7.HashedWheelTimer添加任务和执行任务8.HashedWheelTimer的完整源码9.HashedWheelTimer的总结10.Hashe
大纲1.Netty的两大性能优化工具2.FastThreadLocal的实现之构造方法3.FastThreadLocal的实现之get()方法4.FastThreadLocal的实现之set()方法5.FastThreadLocal的总结6.Recycler的设计理念7.Recycler的使用8.Recycler的四个核心组件9.Recycler的初始化10.Recycler的对象获取11.Rec
大纲1.读数据入口2.拆包原理3.ByteToMessageDecoder解码步骤4.解码器抽象的解码过程总结5.Netty里常见的开箱即用的解码器6.writeAndFlush()方法的大体步骤7.MessageToByteEncoder的编码步骤8.unsafe.write()写队列9.unsafe.flush()刷新写队列10.如何把对象变成字节流写到unsafe底层1.读数据入口当客户端C
大纲1.Pipeline和Handler的作用和构成2.ChannelHandler的分类3.几个特殊的ChannelHandler4.ChannelHandler的生命周期5.ChannelPipeline的事件处理6.关于ChannelPipeline的问题整理7.ChannelPipeline主要包括三部分内容8.ChannelPipeline的初始化9.ChannelPipeline添加C
大纲1.关于Netty客户端连接接入问题整理2.Reactor线程模型和服务端启动流程3.Netty新连接接入的整体处理逻辑4.新连接接入之检测新连接5.新连接接入之创建NioSocketChannel6.新连接接入之绑定NioEventLoop线程7.新连接接入之注册Selector和注册读事件8.注册Reactor线程总结9.新连接接入总结1.关于Netty客户端连接接入问题整理一.Netty
大纲5.NioEventLoop的执行总体框架6.Reactor线程执行一次事件轮询7.Reactor线程处理产生IO事件的Channel8.Reactor线程处理任务队列之添加任务9.Reactor线程处理任务队列之执行任务10.NioEventLoop总结5.NioEventLoop的执行总体框架(1)Reactor线程所做的三件事情(2)处理多久IO事件就执行多久任务(3)NioEventL
大纲1.Redisson的分布式锁简单总结2.Redisson的Semaphore简介3.Redisson的Semaphore源码剖析4.Redisson的CountDownLatch简介5.Redisson的CountDownLatch源码剖析1.Redisson的分布式锁简单总结(1)可重入锁RedissonLock(2)公平锁RedissonFairLock(3)联锁MultiLock(4)
大纲1.Redisson读写锁RedissonReadWriteLock概述2.读锁RedissonReadLock的获取读锁逻辑3.写锁RedissonWriteLock的获取写锁逻辑4.读锁RedissonReadLock的读读不互斥逻辑5.RedissonReadLock和RedissonWriteLock的读写互斥逻辑6.写锁RedissonWriteLock的写写互斥逻辑7.写锁Redi
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号