Day07

简介: 简介:本文涵盖分布式系统核心理论CAP与BASE,解析一致性、可用性与分区容错的权衡,介绍Seata AT模式的分布式事务执行流程,并探讨MQ消息防丢失、防重复消费及消息积压处理方案。

每日必会

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

  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个消息怎么防止积压
相关文章
|
6月前
|
监控 算法 计算机视觉
基于姿态估计与目标追踪的异常行为检测技术实现
本文提出端到端细粒度异常行为检测方案,融合人体姿态估计、物品轨迹追踪与手物交互建模,精准识别“拿取—遮挡—藏匿”等连续异常动作。支持高遮挡、弱动作、复杂光照场景,毫秒级响应,高召回低误报,适配普通摄像头大规模部署。
354 3
|
8月前
|
传感器 数据采集 算法
LET数据集来魔搭了!开源首批超60,000分钟全尺寸人形机器人真机数据
国内最大全尺寸人形机器人真机数据集“LET数据集”正式发布,首批开源超6万分钟高质量数据,覆盖6大真实场景,支持多模态融合与标准化应用,助力具身智能研发,已在魔搭社区开放共享。
712 1
LET数据集来魔搭了!开源首批超60,000分钟全尺寸人形机器人真机数据
|
4月前
|
人工智能 自然语言处理 数据可视化
10 分钟零基础:2026 OpenClaw Windows 本地部署完整教程
2026年热门开源AI数字员工OpenClaw(小龙虾),支持Windows一键部署,10分钟搞定!本地运行、零代码、全自动执行任务(如整理文件、发邮件、浏览器操作等),全程可视化,新手友好。下载即用,隐私安全有保障。
|
4月前
|
数据采集 人工智能 文字识别
阿里云JVS Claw预制技能Skills及扩展功能说明,预置20中Skills
阿里云版AI龙虾JVS Claw预置20+开箱即用技能,支持Web/手机/电脑多端部署。其核心亮点是“成长型技能”——可搜索、安装、更新、自定义,并具备智能记忆、问题诊断与技能调用能力,让AI从工具进化为专家。
|
8月前
|
监控 Java 测试技术
OOM排查之路:一次曲折的线上故障复盘
本文记录了一次Paimon数据湖与RocksDB集成服务线上频繁OOM的排查历程。通过分析线程暴增、堆外内存泄漏,最终定位到SDK中RocksDB的JNI内存未释放问题,并借助Flink重构写入链路彻底解决。分享了MAT、NMT、async-profiler等工具的实战经验与排查思路,为类似技术栈提供借鉴。
OOM排查之路:一次曲折的线上故障复盘
|
4月前
|
机器学习/深度学习 缓存 搜索推荐
Java+AI实战:从零构建智能推荐系统(一)
教程来源 https://tmywi.cn/category/jiankang.html 本文详解如何用Java从零构建生产级智能推荐系统SmartRec,覆盖数据采集、特征工程、多路召回、深度排序、重排及A/B测试全链路。聚焦高并发、实时性与可扩展性,助你掌握AI落地核心能力。
|
8月前
|
人工智能 JSON 数据挖掘
大模型应用开发中MCP与Function Call的关系与区别
MCP与Function Call是大模型应用中两大关键技术。前者为跨模型标准化通信协议,实现工具与模型解耦;后者是模型调用外部功能的内置机制。二者互补协作,推动AI应用向更开放、灵活、可扩展的方向发展。
|
4月前
|
存储 安全 大数据
信息系统与新一代信息技术知识体系
本知识体系系统梳理信息化内涵、信息系统全生命周期及五层逻辑结构,涵盖诺兰模型、OSI/TCP/IP网络基础、数据库与大数据技术、云边端协同架构,并深入解析物联网、区块链、AI、数字孪生等新一代信息技术及其在新基建中的融合应用。(239字)
309 0
|
5月前
|
存储 缓存 负载均衡
详解一致性哈希算法
摘要:一致性哈希算法是解决分布式系统负载均衡问题的有效方案。相比传统哈希取模算法,它通过将哈希空间组织成环形结构,实现节点增减时仅需重定位少量数据。算法原理是将节点和请求映射到2^32的哈希环上,通过顺时针查找确定数据归属。引入虚拟节点机制解决了数据倾斜问题,确保负载均衡。本文详细阐述了算法原理、实现方式(包括扩容缩容处理)及Java代码实现,展示了其在分布式缓存等场景中的优势,具有容错性和可扩展性。测试结果表明,该算法能有效减少节点变化时的数据迁移量。