每日必会7

简介: CAP理论指出分布式系统中一致性(C)、可用性(A)、分区容错性(P)不可兼得,P必然存在,故只能在A和C间权衡。BASE理论提出基本可用、软状态、最终一致性的解决方案。Seata AT模式通过全局事务ID(XID)协调分支事务注册、提交或回滚,实现分布式事务一致性。MQ防消息丢失需生产者确认、持久化、消费者手动ACK;防重复消费靠幂等设计;防积压可扩容、批量处理、限流降级。

CAP和Base理论了解吗
Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致。
Availability (可用性):用户访问集群中的任意健康节点必须能得到响应,而不是超时或拒绝。
Partition(分区):因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接,形成独立分区。
Tolerance(容错):在集群出现分区时,整个系统也要持续对外提供服务
系统间的网络不能100%保证健康,一定会有故障的时候,而服务又必须对外保证服务。因此Partition Tolerance不可避免。
如果此时要保证一致性,就必须等待网络恢复,完成数据同步后,整个集群才对外提供服务,服务处于阻塞状态,不可用。
如果此时要保证可用性,就不能等待网络恢复,那node01、node02与node03之间就会出现数据不一致。
也就是说,在P一定会出现的情况下,A和C之间只能实现一个
BASE理论是对CAP的一种解决思路,包含三个思想:
Basically Available(基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。
Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。
Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。
说下Seata的AT模式执行流程吧
其余模式同理,这里不重复,要能说出XA、AT、TCC执行流程

Seata AT模式的执行流程:
分布式事务发起方发送全局事务开始请求(Begin)给Seata Server,Seata Server为该全局事务生成一个全局事务ID(XID)。
分布式事务发起方开始执行本地事务,并在本地事务执行前向Seata发起分支事务注册请求(Branch Register),包括全局事务ID(XID)、分支事务ID(Branch ID)、分支事务参与者(即本地事务的执行者)等信息。
分布式事务发起方执行本地事务,如果本地事务执行成功,则向Seata发起分支事务提交请求(Branch Report);如果本地事务执行失败,则向Seata发起分支事务回滚请求(Branch Report)。
Seata Server接收到分支事务提交或回滚请求后,会根据请求的结果来决定是否进行全局事务的提交或回滚。
如果所有分支事务都提交成功,Seata会向所有参与者发送全局事务提交请求(Global Commit);如果有任何一个分支事务回滚,Seata会向所有参与者发送全局事务回滚请求(Global Rollback)。
参与者接收到全局事务提交或回滚请求后,根据请求的指令来执行本地事务的提交或回滚操作。
理论专项
MQ
怎么防止消息丢失
怎么防止消息重复消费
100W个消息怎么防止积压

相关文章
|
Web App开发 前端开发 JavaScript
看看人家 阿里的 低代码引擎,多优雅!
特性 引擎协议 使用示例 工程化配置: cdn 可选方式:
|
7月前
|
人工智能 监控 Cloud Native
架构级拆解:AI数字人与数字员工的核心差异,玄晶引擎云原生实践启示
本文揭示AI数字人与AI数字员工的本质差异:前者仅为可视化交互组件,后者是具备业务闭环能力的云原生智能体。基于玄晶引擎与阿里云PAI实测,从架构、系统对接到弹性部署,解析如何实现“交互→决策→执行”全流程自动化,助力开发者精准选型,避免落地陷阱。
537 11
|
12月前
|
安全 生物认证 网络安全
windows10无法设置默认保存位置怎么办?显示错误代码0x80070002怎么解决?
Win10系统下载文件时,默认会保存在特定位置,但用户可自行修改。若更改后仍无效,可通过删除目标磁盘中的特定文件夹、修改注册表权限、“干净启动”排除干扰软件或使用第三方修复工具等方式解决此问题。
1745 0
|
8月前
|
Java 语音技术 内存技术
Java 实现可靠的 WAV 音频拼接:从结构解析到完整可播放的高质量合并方案
本文详解Java实现WAV音频可靠拼接的技术方案,深入剖析RIFF文件结构,动态定位data块,精准合并音频数据。解决播放异常、时长错误等问题,支持复杂结构WAV文件,确保音质一致、播放流畅,适用于TTS、语音导航等场景,提供稳定、通用、无需第三方依赖的高质量合并方案。
Java 实现可靠的 WAV 音频拼接:从结构解析到完整可播放的高质量合并方案
|
7月前
|
存储 弹性计算 容灾
租用阿里云服务器流程:注册账号、实名认证、领补贴券及购买服务器省钱教程
注册阿里云账号并完成实名认证,个人或企业用户均可免费领取上云补贴券。通过活动中心选择云服务器ECS等产品,自定义配置地域、实例规格、镜像、存储及网络等,结合优惠券享受优惠。支持包年包月或按量付费,轻松实现弹性上云,新手也能快速入门。
480 0
|
监控 测试技术 数据库连接
RunnerGo API 性能测试实战:从问题到解决的全链路剖析
API性能测试是保障软件系统稳定性与用户体验的关键环节。本文详细探讨了使用RunnerGo全栈测试平台进行API性能测试的全流程,涵盖测试计划创建、场景设计、执行分析及优化改进。通过电商平台促销活动的实际案例,展示了如何设置测试目标、选择压测模式并分析结果。针对发现的性能瓶颈,提出了代码优化、数据库调优、服务器资源配置和缓存策略等解决方案。最终,系统性能显著提升,满足高并发需求。持续关注与优化API性能,对系统稳定运行至关重要。
|
算法 NoSQL IDE
C语言性能优化:代码优化技巧与工具。
C语言性能优化:代码优化技巧与工具。
|
存储 Oracle 安全
推荐的开源软件中小企业行业数字化场景
在数字化转型中,中小企业常遇成本、技术和安全挑战。Websoft9依托开源软件,提供自主可控的解决方案。文章以十大核心场景为例,如制造业用Odoo ERP降低成本、K3s优化产线监控;金融领域以PostgreSQL替代Oracle节省费用;医疗行业借助Nextcloud保障数据隐私;零售业通过WordPress搭建独立站减少开支等,结合真实案例解析开源技术如何驱动业务创新与增长。
516 0
HTML 统一资源定位器(Uniform Resource Locators)1
统一资源定位器(URL)是用于标识互联网上资源位置的标准格式。URL通常由方案、主机、域名、端口、路径和文件名组成,如 `http://www.runoob.com/html/html-tutorial.html`。大多数用户通过域名访问网站,因为域名比IP地址更容易记忆。URL在Web浏览器中用于请求页面,通过 `<a>` 标签实现链接跳转。
|
运维 监控 自动驾驶
什么是系统的鲁棒性?
本文探讨了系统鲁棒性的重要性及其评估方法。鲁棒性指系统在异常情况和不确定性因素下保持稳定运行的能力,是系统稳定性和可靠性的关键指标。文章从系统设计、自我修复及数据处理三方面评估鲁棒性,并提出预防、检测与恢复的策略。通过具体措施如代码质量、异常预防、监控和冗余备用等,提升系统在各种挑战下的表现。这些策略不仅理论性强,也与日常开发实践紧密相连。
1794 0