CAP和Base理论了解吗

简介: CAP理论指出:分布式系统中,分区容错性(P)不可避免,故只能在一致性(C)与可用性(A)间权衡。BASE理论作为其解决方案,提出基本可用、软状态、最终一致性的设计思想。Seata AT模式通过全局事务ID(XID)协调分支事务注册、本地执行、全局提交/回滚,实现分布式事务一致性。

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模式的执行流程:

  1. 分布式事务发起方发送全局事务开始请求(Begin)给Seata Server,Seata Server为该全局事务生成一个全局事务ID(XID)。
  2. 分布式事务发起方开始执行本地事务,并在本地事务执行前向Seata发起分支事务注册请求(Branch Register),包括全局事务ID(XID)、分支事务ID(Branch ID)、分支事务参与者(即本地事务的执行者)等信息。
  3. 分布式事务发起方执行本地事务,如果本地事务执行成功,则向Seata发起分支事务提交请求(Branch Report);如果本地事务执行失败,则向Seata发起分支事务回滚请求(Branch Report)。
  4. Seata Server接收到分支事务提交或回滚请求后,会根据请求的结果来决定是否进行全局事务的提交或回滚。
  5. 如果所有分支事务都提交成功,Seata会向所有参与者发送全局事务提交请求(Global Commit);如果有任何一个分支事务回滚,Seata会向所有参与者发送全局事务回滚请求(Global Rollback)。
  6. 参与者接收到全局事务提交或回滚请求后,根据请求的指令来执行本地事务的提交或回滚操作。
    理论专项
    ● MQ
    ○ 怎么防止消息丢失
    ○ 怎么防止消息重复消费
    ○ 100W个消息怎么防止积压
相关文章
|
1天前
|
存储 运维 Serverless
🌤️ 玩转函数计算FC:无需服务器,三步实现每日天气邮件推送
一位开发者用57行代码、每周不到0.3元,借助阿里云函数计算FC,为团队搭建智能天气提醒系统。无需服务器运维,按需执行,自动定时推送邮件。本文详解从零搭建全过程,展现无服务器架构的高效与低成本,助你快速实现个性化定时任务。
|
1天前
|
机器学习/深度学习 存储 边缘计算
物联网平台实战:从设备接入到数据分析的端到端架构演进
本文系统阐述物联网平台从设备接入到数据分析的架构演进路径,涵盖多协议接入、边缘计算、实时处理与AI集成等关键技术,分享高并发优化、分层存储、安全认证等实战经验,助力企业构建高效、可扩展的IoT平台,推动数字化转型与智能决策。
|
1天前
|
Java API Maven
[MES]不合格订单接入提醒功能(☆☆☆)
克隆或下载代码至IDEA,配置JDK、Maven等环境,遇问题主动请教同事或组长。运行项目后,针对“不合格工单超30分钟需通知”需求,结合定时任务与短信/钉钉API实现。涉及Git、Maven、SpringBoot技术。
|
1天前
|
消息中间件 物联网 测试技术
幂等方案专题
适用于科技公司服务器及物联网设备异常时的语音告警通知。开通语音服务后,可申请资质、话术与模板,支持变量替换,通过API调用实现自动拨打电话播报告警内容,并可通过控制台或API查询呼叫记录,支持消息回执推送,保障告警及时处理。
|
1天前
|
机器学习/深度学习 存储 边缘计算
物联网平台实战:从设备接入到数据分析的端到端架构演进
本文详解物联网平台从设备接入到数据分析的架构演进路径,涵盖多协议接入、边缘计算、实时处理与AI集成等核心技术,分享高并发优化、分层存储、安全认证等实战经验,助力企业构建高效、可扩展的IoT系统,推动数字化转型与智能决策升级。(238字)
|
1天前
|
存储 缓存 安全
One Trick Per Day
Map初始化应避免容量设置不当,建议用Guava指定预期大小;禁用Executors创建线程池,防止OOM,推荐手动定义参数或使用Guava;Arrays.asList返回不可变集合,禁止修改操作;遍历Map优先使用entrySet或forEach提升性能;SimpleDateFormat非线程安全,禁用static修饰,推荐ThreadLocal或Java8新时间类;并发修改记录需加锁,优先乐观锁(version控制),冲突低时重试不少于3次。
|
1天前
|
弹性计算 运维 安全
自动化运维实战:利用运维编排OOS批量管理数百台ECS
阿里云运维编排服务(OOS)助力企业高效管理大规模ECS集群,支持批量操作、任务编排、定时执行与安全管控,实现运维自动化。相比传统人工操作,效率提升超95%,显著降低错误率,构建标准化、可复用的智能运维体系。
|
1天前
|
测试技术
发布模式
蓝绿部署是一种减少发布中断的策略,通过维护两套系统(绿为线上,蓝为新版本)实现快速切换与回滚。金丝雀发布则逐步替换旧系统,适用于大规模集群。A/B测试用于比较不同版本效果,非发布策略。三者各有适用场景。
|
1天前
|
弹性计算 运维 监控
混合云降本之道:通过CEN连接IDC与云上弹性资源
阿里云CEN助力企业构建高性价比混合云,打通IDC与云端资源,实现弹性扩展、智能调度与成本优化。通过专线互联、自动扩缩容和统一管理,显著降低硬件、网络与运维成本,广泛适用于电商、金融等场景,成为数字化转型主流选择。(238字)
|
1天前
|
存储 缓存 监控
EFC&CTO:缓存引发数据不一致问题排查与深度解析
EFC客户端更新缓存架构后,在NAS场景CTO测试中出现data mismatch。经排查,因分布式缓存版本号回退,导致旧NULL数据被读入pagecache并刷入文件系统,破坏了正常数据。通过维护递增版本号修复,最终测试通过。