Loading

摘要: 1.网关介绍 什么是网关 在微服务架构中,一个系统会被拆分为多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。这样的话会产生很多问题,例如: 客户端多次请求不同的微服务,增加客户端代码或配置编写的复杂性 认证复杂,每个微 阅读全文
posted @ 2022-05-21 12:14 ZT丶 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 1.基本介绍 Apache Skywalking是一款APM工具( Application Performance Management,应用性能管理) 2.安装部署 官网地址:http://skywalking.apache.org/ 下载:http://skywalking.apache.org 阅读全文
posted @ 2022-05-21 12:11 ZT丶 阅读(786) 评论(0) 推荐(0) 编辑
摘要: 服务端表解释 我们的Seata服务端在应用的时候需要准备三张表,那么这三张表分别代表的意思就是 branch_table 分支事务表 global_table 全局事务表 lock_table 全局锁表 客户端请求服务端以后,我们就需要把对应的全局事务包括分支事务和全局锁全部存放到这里。 TC服务端 阅读全文
posted @ 2022-05-21 11:06 ZT丶 阅读(286) 评论(0) 推荐(0) 编辑
摘要: AT模式的核心点 获取全局锁、开启全局事务 解析SQL并写入undolog 那么上节课其实我们已经把第一步分析清楚了,那么这节课我们就要分析的是AT模式如何解析SQL并写入undolog,首先我们要先明确实际上Seata其中采用了数据源代理的模式。 那么这个就需要我们在回顾一下GlobalTrans 阅读全文
posted @ 2022-05-21 11:05 ZT丶 阅读(962) 评论(0) 推荐(0) 编辑
摘要: 2PC提交源码流程 GlobalTransactionalInterceptor全局事务拦截器,一旦执行拦截器,我们就会进入到其中的invoke方法,在这其中会做一些@GlobalTransactional注解的判断,如果有注解以后,会执行全局事务和全局锁,那么在执行全局事务的时候会调用handle 阅读全文
posted @ 2022-05-21 11:03 ZT丶 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 1.源码下载 官方地址:https://seata.io/zh-cn/blog/download.html 2.AT模式回顾 官方文档:https://seata.io/zh-cn/docs/dev/mode/at-mode.html 写隔离 一阶段本地事务提交前,需要确保先拿到全局锁 。 拿不到全 阅读全文
posted @ 2022-05-21 11:02 ZT丶 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 1.基本概念 Saga模式是Seata提供的长事务解决方案,在Saga模式中,业务流程中每个参与者都提交本地事务,当出现某一个参与者失败则补偿前面已经成功的参与者,一阶段正向服务和二阶段补偿服务(执行处理时候出错了,给一个修复的机会)都由业务开发实现。 Saga 模式下分布式事务通常是由事件驱动的, 阅读全文
posted @ 2022-05-21 10:44 ZT丶 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 1.什么是TCC TCC是分布式事务中的二阶段提交协议,它的全称为Try-Confirm-Cancel,即资源预留(Try)、确认操作(Confirm)、取消操作(Cancel),他们的具体含义如下: Try:对业务资源的检查并预留 Confirm:对业务处理进行提交,即commit操作,只要Try 阅读全文
posted @ 2022-05-21 10:42 ZT丶 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 1.XA模式是什么 XA规范在上世纪 90 年代初就被提出,用以解决分布式事务处理这个领域的问题 注意:不存在某一种分布式事务机制可以完美适应所有场景,满足所有需求 现在无论AT模式、TCC 模式、Saga 模式,这些模式的提出本质上都源自 XA 规范对某些场景需求的无法满足 XA规范是X/Open 阅读全文
posted @ 2022-05-21 10:41 ZT丶 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 1.简介 概念:AT模式是一种无侵入的分布式事务解决方案,在 AT 模式下用户只需关注自己的“业务 SQL”,用户的 “业务 SQL” 作为一阶段,Seata 框架会自动生成事务的二阶段提交和回滚操作。 整体机制: 两阶段提交协议的演变: 一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本 阅读全文
posted @ 2022-05-21 10:40 ZT丶 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 1.Seata Server简单部署 官方下载地址:https://github.com/seata/seata/releases 修改conf/registry.conf文件,seata的注册中心为nacos: 注意:确保client与server的注册处于同一个namespace和group,不 阅读全文
posted @ 2022-05-21 10:39 ZT丶 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 1.分布式事务解决方案 2PC即两阶段提交协议,是将整个事务流程分为两个阶段,P是指准备阶段,C是指提交阶段。 准备阶段(Prepare phase) 提交阶段(commit phase) 举例:比如相亲对象两个人去吃饭,店老板要求先付钱再吃饭,这时男女双方提出了AA,也就是说只有男女双方都付钱才能 阅读全文
posted @ 2022-05-21 10:32 ZT丶 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 1.概念 基础概念:事务ACID A(Atomic):原子性,构成事务的所有操作要么都执行完成要么全部不执行,不可能出现部分成功部分失败的情况。 C(Consistency):一致性,在事务执行前后,数据库的一致性约束没有被破坏。比如:张三向李四转100元,转账前和转账后的数据是正确状态,这叫一致性 阅读全文
posted @ 2022-05-21 10:30 ZT丶 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 1.固定时间窗算法 概念:固定时间窗口计数器算法思想,在固定的时间窗口内,可以允许固定数量的请求进入。超过数量就拒绝或者排队,等下一个时间段进入。 具体分析一下: 将当前的时间分为10t大小的几个时间窗 规则是阈值为100个请求数,每个时间窗里面的请求数量不能超过阈值100 10t到16t进入请求1 阅读全文
posted @ 2022-05-21 10:29 ZT丶 阅读(861) 评论(0) 推荐(0) 编辑
摘要: DegradeSlot解析 //DegradeSlot.entry @Override public void entry(Context context, ResourceWrapper resourceWrapper, DefaultNode node, int count, boolean p 阅读全文
posted @ 2022-05-21 10:26 ZT丶 阅读(178) 评论(0) 推荐(0) 编辑
摘要: StatisticSlot StatisticSlot 是 Sentinel 最为重要的类之一,用于根据规则判断结果进行相应的统计操作。 entry 的时候:依次执行后面的判断 slot。每个 slot 触发流控的话会抛出异常(BlockException的子类)。若有 BlockException 阅读全文
posted @ 2022-05-21 10:24 ZT丶 阅读(203) 评论(0) 推荐(0) 编辑
摘要: ClusterBuilderSlot解析 ClusterBuilderSlot:则用于存储资源的统计信息以及调用者信息,例如该资源的 RT, QPS, thread count 等等,这些信息将用作为多维度限流,降级的依据; //NodeSelectorSlot.entry() @Override 阅读全文
posted @ 2022-05-21 10:23 ZT丶 阅读(104) 评论(0) 推荐(0) 编辑
摘要: SlotChain入口解析 默认Chain解析 我们从这里继续分析,这个位置的chain.entry方法,但是此时这个chain是谁? //CtSph中 try { // 针对资源操作 chain.entry(context, resourceWrapper, null, count, priori 阅读全文
posted @ 2022-05-21 10:22 ZT丶 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 1.源码下载 下载地址:https://github.com/alibaba/Sentinel/tree/release-1.8 官网版本说明:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF% 阅读全文
posted @ 2022-05-21 10:20 ZT丶 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 1.分析源码入口 在微服务使用Sentinel实际工作场景中,我们只需要引入对应依赖:spring-cloud-starter-alibaba-sentinel就会进行自动装配,所以我们直接看META-INF/spring.factories,然后这里从SentinelAutoConfigurati 阅读全文
posted @ 2022-05-21 10:20 ZT丶 阅读(99) 评论(0) 推荐(0) 编辑