From 013e9fa8f2ad43db79d670245ec1ab81f2d4010c Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Sat, 31 Oct 2026 00:23:19 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E5=BE=AE=E6=9C=8D=E5=8A=A1.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整 Seata AT 回滚前校验的表述。 --- notes/微服务.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notes/微服务.md b/notes/微服务.md index b9f1ce98..692d0f6d 100644 --- a/notes/微服务.md +++ b/notes/微服务.md @@ -411,7 +411,7 @@ Spring Cloud Alibaba 中常用 Sentinel 实现:把接口或者一段代码定 AT 与 XA 两阶段提交的区别在于锁持有的时间:XA 的第一阶段只准备、不提交,行锁一直持有到第二阶段;AT 的第一阶段就提交了本地事务、释放行锁,只靠全局锁阻止其它全局事务修改这些行,所以并发更高。代价有两个: - 其它事务在第二阶段之前就能读到 98,即默认的全局隔离级别是读未提交,需要读已提交时用 SELECT ... FOR UPDATE 等待全局锁; -- 全局锁只对 Seata 管理的事务有效,其它代码直接改了这些行时,回滚前发现当前值与后镜像不一致,只能人工处理。 +- 全局锁只对 Seata 管理的事务有效,其它代码直接改了这些行时,回滚前发现当前值既不等于后镜像也不等于前镜像,Seata 就拒绝自动回滚,只能人工处理。 ## 八、链路追踪