Sping事务、分布式事务
2021-07-13 16:44:38 1 举报
AI智能生成
Sping事务、分布式事务
作者其他创作
大纲/内容
Spring
事务特性
<ul><li><b>原子性 (atomicity)</b>:强调事务的不可分割.</li></ul>
<ul><li><b>一致性 (consistency)</b>:事务的执行的前后数据的完整性保持一致.</li></ul>
<ul><li><b>隔离性 (isolation)</b>:一个事务执行的过程中,不应该受到其他事务的干扰</li></ul>
<ul><li><b>持久性(durability)</b> :事务一旦结束,数据就持久到数据库</li></ul>
隔离级别
<span style="font-size: inherit;">默认使用数据库的<b><font color="#ff9800">隔离级别</font></b>,隔离级别参考数据库隔离级别</span><br>
七大传播性
<ul><li><b>Required</b>:<font color="#f44336"><b>默认</b></font>的事务传播行为,表示必须有逻辑事务,否则新建一个事务</li></ul>
<ul><li><b>RequiresNew:</b>每次都创建新的<b><font color="#f44336">独立</font></b>的物理事务</li></ul>
每个事务之间<font color="#f44336">互不影响</font>
<ul><li><b>Nested</b>:如果当前存在事务,则在<font color="#d32f2f"><b>嵌套</b></font>事务内执行;如果当前不存在事务,则创建一个新的事务</li></ul>
外部事务回滚,会<font color="#f44336"><b>导致嵌套内的事务回滚</b></font>
另外4种不常使用
分布式事务
产生的三种原因
1、跨库操作
2、分库查询
3、服务化
两种分布式事务
<b style=""><font color="#f44336">1、XA(两阶段提交)</font><font color="#00ff00">同步占资源</font></b>
存在的问题
<ul><li>在第二段提交的时候,可能由于网络原因导致出问题;可以加上<b><font color="#d32f2f">超时机制或三次提交</font></b>保证尽可能保证成功。</li></ul>
对比
<b><font color="#f44336">2、TCC(seta)(</font><font color="#00ff00">异步</font><font color="#f44336">)</font></b>
生命周期<br>
1、TM请求TC分配全局事务<font color="#d32f2f"><b>XID</b></font>
2、RM请求分支事务<font color="#f44336"><b>BID,与之全局XID绑定</b></font><br>
3、<b><font color="#f44336">TM请求TC</font></b>全局事务是回滚还是提交<br>
4、<font color="#f44336"><b>TC驱动RM</b></font>将XID绑定的BID全局事务,进行回滚或提交<br>
0 条评论
下一页