Spring Cloud Alibaba Seata Server(TC)环境搭建详解
Server端存储模式(store.mode)支持三种:
- file:单机模式,全局事务会话信息内存中读写并持久化本地文件root.data,性能较高(默认)
- DB:高可用模式,全局事务会话信息通过DB共享,相对性能差一些
- redis:Seata-Server1.3及以上版本支持,性能较高,存在事务信息丢失风险,需要配合实际场景使用。
具体操作
- 修改Seata-Server模式为DB高可用模式
Spring Cloud Alibaba Seata Server(TC)环境搭建详解
Server端存储模式(store.mode)支持三种:
2PC即两阶段提交协议,是将整个事务流程分为两个阶段,P是指准备阶段,C是指提交阶段。
举例:比如说相亲对象两个人去吃饭,店老板要求,先付钱在吃饭,这是男女双方提出了AA,也就是说只有男女双方都付钱,才能落座吃饭,但是只要两个人中有一个不同意付款就不能落座吃饭。
Spring Cloud Alibaba Sentinel 源码分析-滑动时间窗口算法原理
“滑动时间窗口算法” 是Sentinel源码中的一个非常重要的算法。
那么在了解滑动时间窗算法之前,我们先要来了解时间窗算法,也可以称之为:固定时间窗算法
概念:固定时间窗口计数器算法思想:在固定的时间窗口内,可以允许固定数量的请求进入。超过数量就拒绝或者排队,等下一个时间段进入。
Spring Cloud Alibaba Sentinel DegradeSlot 源码解析
DegradeSlot是熔断降级的Slot,那我们直接来看核心方法
1 | //DegradeSlot.entry |
Spring Cloud Alibaba Sentinel StatisticSlot 源码解析
StatisticSlot 是 Sentinel 最为重要的类之一,用于根据规则判断结果进行相应的统计操作。
entry 的时候:依次执行后面的判断 slot。每个 slot 触发流控的话会抛出异常(BlockException的子类)。若有 BlockException抛出,则记录 block 数据;若无异常抛出则算作可通过(pass),记录 pass 数据。
exit 的时候:若无 error(无论是业务异常还是流控异常),记录 complete(success)以及 RT,线程数-1。
Spring Cloud Alibaba Sentinel FlowSlot 源码解析
1 | // 获取到指定资源的所有流控规则 |
Spring Cloud Alibaba Sentinel 源码解析 SlotChain 入口解析
我们从这里继续分析,这个位置的chain.entry方法,但是此时这个chain是谁?
1 | //CtSph中 |