搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Guff_9hys
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
机器学习scikit-learn(一)(转)
2
2021-2022 ACM-ICPC Latin American Regional Programming Contest
3
set(集合),multiset容器及pair队组的创建
4
AI 入门指南五 :提示词编写技巧(上)_ai 提示词工程 教程
5
绑卡测试_绑卡的测试点
6
深入Kali Linux:高级渗透测试技术详解_kali linux无线网络渗透测试详解
7
RK RGA _MMU unsupported memory larger then 4G!问题解决
8
入职新公司,如何迅速脱颖而出,展现个人魅力与价值!
9
最新!!单目深度估计方向文献综述--Monocular Depth Estimation: A Thorough Review_单目深度估计综述
10
极狐GitLab 如何和Mailgun 进行集成配置?
当前位置:
article
> 正文
微服务分布式事务4种解决方案实战_分布式事务四种方案实战
作者:Guff_9hys | 2024-07-12 11:18:48
赞
踩
分布式事务四种方案实战
文章目录
分布式事务
CAP理论
CAP定理的应用
BASE理论
2PC提交
阶段1:提交事务请求
阶段二:执行事务提交
中断事务
3PC提交
Seata分布式事务方案
Seata术语
Seata的2PC方案
Seata执行流程分析
Seata的实战案列
TCC分布式事务
TCC的三个阶段
TCC的三种异常处理情况
幂等处理
空回滚
资源悬挂
TCC和2PC比较
Hmily框架实现TCC案列
RocketMQ实现可靠消息最终一致性
最大努力通知
最大努力通知与可靠消息一致性有什么不同
两者的应用场景
基于MQ的ack机制实现最大努力通知
分布式事务方案对比分析
案列Demo源码地址
分布式事务
分布式事务是指事务的参与者,支持事务的服务器,资源服务器分别位于分布式系统的不同节点之上,通常一个分布式事物中会涉及到对多个数据源或业务系统的操作。
典型的分布式事务场景:跨银行转操作就涉及调用两个异地银行服务
CAP理论
CAP理论:一个分布式系统不可能同时满足一致性,可用性和分区容错性这个三个基本需求,最多只能同时满足其中两项
一致性©:数据在多个副本之间是否能够保持一致的特性。
可用性(A):是指系统提供的服务必须一致处于可用状态,对于每一个用户的请求总是在有限的时间内返回结果,超过时间就认为系统是不可用的
分区容错性§:分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非整个网络环境都发生故障。
CAP定理的应用
放弃P(CA):如果希望能够避免系统出现分区容错性问题,一种较为简单的做法就是将所有的数据(或者是与事物先相关的数据)都放在一个分布式节点上,这样虽然无法保证100%系统不会出错,但至少不会碰到由于网络分区带来的负面影响
放弃A(CP):其做法是一旦系统遇到网络分区或其他故障时,那受到影响的服务需要等待一定的时间,应用等待期间系统无法对外提供正常的服务,即不可用
放弃C(AP):这里说的放弃一致性,并不是完全不需要数据一致性,是指放弃数据的强一致性,保留数据的最终一致性。
BASE理论
BASE是基本可用,软状态,最终一致性。是对CAP中一致性和可用性权限的结果,是基于CAP定理演化而来的,核心思想是即使无法做到强一致性,但每个应用都可以根据自身的业务特定,采用适当的方式来使系统达到最终一致性
2PC提交
二阶段提交协议是将事务的提交过程分成提交事务请求和执行事务提交两个阶段进行处理。
阶段1:提交事务请求
事务询问:协调者向所有的参与者发送事务内容,询问是否可以执行事务提交操作,并开始等待各参与者的响应
执行事务:各参与者节点执行事务操作,并将Undo和Redo信息记入事务日志中
如果参与者成功执事务操作,就反馈给协调者Yes响应,表示事物可以执行,如果没有成功执行事务,就反馈给协调者No响应,表示事务不可以执行
二阶段提交一些的阶段一夜被称为投票阶段,即各参与者投票票表明是否可以继续执行接下去的事务提交操作
阶段二:执行事务提交
假如协调者从所有的参与者或得反馈都是Yes响应,那么就会执行事务提交。
发送提交请求:协调者向所有参与者节点发出Commit请求
事务提交:参与者接受到Commit请求后,会正式执行事务提交操作,并在完成提交之后放弃整个事务执行期间占用的事务资源
反馈事务提交结果:参与者在完成事物提交之后,向协调者发送ACK消息
完成事务:协调者接收到所有参与者反馈的ACK消息后,完成事务
中断事务
假如任何一个参与者向协调者反馈了No响应,或者在等待超市之后,协调者尚无法接收到所有参与者的反馈响应,那么就中断事务。
发送回滚请求:协调者向所有参与者节点发出Rollback请求
事务回滚:参与者接收到Rollback请求后,会利用其在阶段一种记录的Undo信息执行事物回滚操作,并在完成回滚之后释放事务执行期间占用的资源。
反馈事务回滚结果:参与则在完成事务回滚之后,向协调者发送ACK消息
中断事务:协调者接收到所有参与者反馈的ACk消息后,完成事务中断、
优缺点
原理简单,实现方便
缺点是同步阻塞,单点问题,脑裂,保守
3PC提交
三阶段提,也叫三阶段提交协议,是二阶段提交(2PC)的改进版本。
与两阶段提交不同的是,三阶段提交有两个改动点。引入超时机制。同时在协调者和参与者中都引入超时机制。在第一阶段和
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/Guff_9hys/article/detail/813835
推荐阅读
article
对
Redis
进行
读取
使用
go
来连接
redis
_
go
redis
读取
...
使用Hset可以一次性对这个Hsh
_
, err = conn.Do("HSet", "usere1", "age", ...
赞
踩
article
在
win
11/
win
10
visual
studio
上安装.
net
45
_
net
45
...
问题:error MSB3644: The reference assemblies for framework “.N...
赞
踩
article
ROS
自学实践(
10
):
ROS
节点同时订阅多个话题并
进行
消息时间
同步
_
python
实现
ros
消息
同步
...
一、前言在
进行
SLAM建图或自动驾驶系统设计的过程中,往往涉及到多种传感器
进行
环境感知和信息采集,这就不仅需要一个节点接...
赞
踩
article
(2023,微
调节
,多
纵横
比
训练
,细化
模型
)
SDXL
:用于
高分辨率
图像合成的改进的潜在
扩散
模型
_sd...
本文提出一种改进的用于文本到图像合成的潜在
扩散
模型
SDXL
。与之前的稳定
扩散
相比,
SDXL
利用了三倍大的 UNet ...
赞
踩
article
基于SSM
的
超市
库存
商品
管理系统
设计
与实现_基于ssm
的
中小型
超市
库存
管理系统
的
设计
...
现代经济快节奏发展以及不断完善升级
的
信息化技术,让传统数据信息
的
管理升级为软件存储,归纳,集中处理数据信息
的
管理方式。本...
赞
踩
article
借助
Amazon
SageMaker
JumpStart
快速部署零一万物
Yi
-
1.5
基础
模型...
本文作者 郑昊、张镎近期,由零一万物提供的
基础
模型
Yi
-
1.5
6B/9B/34B 在
Amazon
SageMaker
...
赞
踩
article
tk
inter
绘制
组
件(29)——
单选
组
控件
_
tk
radiobutton
...
tk
inter
绘制
组
件(29)
单选
组
控件
_
tk
radiobutton
tk
radiobutton
...
赞
踩
article
CUDA
版本以及
GPU
驱动的
对应
关系_torch1.1
0
.
0
对应
的
cuda
...
cuda
对应
DPU_torch1.1
0
.
0
对应
的
cuda
torch1.1
0
.
0
对应
的
cuda
...
赞
踩
article
pytorch
环境
配置(
装
cuda
、
cudnn
)
win10
+
cuda
10.1+
cudnn
7.6.5+...
安
装
pytorch
的
经验(独显和集显)_
安
装
pytorch
的
时候会
安
装
cuda
吗
安
装
pytorch
的
时候会
安
装
cuda
吗...
赞
踩
article
Mamba
模型
_
mamba
模型
中
的
bldn
分别是什么...
其中,h ( t ) h(t)h(t)是当前
的
状态量,A AA是状态转移矩阵;x ( t ) x(t)x(t)为输入
的
控...
赞
踩
article
python
编程
常用
代码
,
python
常用
代码
大全
_
python
代码
大全
...
大家好,本文将围绕
python
编程
常用
代码
展开说明,
python
常用
代码
大全
是一个很多人都想弄明白的事情,想搞清楚pyt...
赞
踩
article
SourceTree
与
gitee
关联_
sourcetree
gitee
...
一、
SourceTree
环境配置_
sourcetree
gitee
sourcetree
gitee
...
赞
踩
article
机器人
外呼
相比
人工
外呼
优势有哪些...
机器人
外呼
在自动化、成本效益、智能交互、一致性与标准化、数据分析、客户体验以及合规性等方面
相比
人工
外呼
具有显著优势。- ...
赞
踩
article
百度
飞桨
BML
平台
机器学习
模型
部署
_飞浆
平台
部署
...
百度
BML
_飞浆
平台
部署
飞浆
平台
部署
目录 前言 一、进入
BML
二、进入...
赞
踩
article
spring
boot
微服务--04
spring
-
boot
-
starter
-
logging
和spi...
了解
spring
-
boot
-
starter
应用日志和
spring
-
boot
-
starter
-
logging
web
应用...
赞
踩
article
feign
服务间调用异常,
feign
.
codec
.
DecodeException
:
Could
n...
feign
.
codec
.
DecodeException
:
Could
not
extract
response
: no ...
赞
踩
article
决策树
算法
与
案例
_
决策树
算法
及实例...
决策树
算法
介绍树模型
决策树
:从根节点开始一步步走到叶子节点(决策)。所有的数据最终都会落到叶子节点,既可以做分类也可以做...
赞
踩
article
FlowUs
科研
工作者
的第二大脑|
论文
整理与
知识库
构建的终极
解决方案
|
FlowUs
不愧是
论文
神器PD...
FlowUs
、
科研
工作者
、
论文
材料整理、
知识库
构建、思维导图嵌套、
PDF
智能
分析、
学术
研究、信息管理、高效
科研
、文献阅读...
赞
踩
article
【并行
计算
】【《云
计算
与
分布式系统
·从
并行处理
到物
联网
》笔记】第一章:
分布式系统
模型
和
关键技术
_云计...
本文探讨了互
联网
计算
时代的发展,重点关注高性能
计算
(HPC)、高吞吐量
计算
(HTC)等新
计算
范式,以及SOA
和
Web2....
赞
踩
article
技术
至简-7:2G/3G/4G/
5G
基站
系统中混合
调制
的
技术
框架
_
4g和
5g
的
调制
方式有哪些...
2G/3G/4G/
5G
基站
系统并非采用单一
的
调制
技术
,是数字
调制
和模拟
调制
的
综合,是QAM
调制
与IQ
调制
的
综合,是幅度调...
赞
踩
相关标签
数据仓库
golang
数据库架构
数据库开发
1024程序员节
visual studio
.net
windows 11
自动驾驶
人工智能
eclipse
java
tomcat
spring
maven
intellij-idea
java-ee
python
tkinter
TinUI
pytorch
深度学习
cnn
神经网络