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个消息怎么防止积压
相关文章
|
安全 数据安全/隐私保护 数据中心
|
Java API 调度
Kotlin 中的suspend 关键字
Kotlin 中的suspend 关键字
757 0
|
存储 Java 索引
Elastic实战:彻底解决spring-data-elasticsearch日期、时间类型数据读取报错问题
在使用spring-data-elasticsearch读取es中时间类型的数据时出现了日期转换报错,不少初学者会在这里困惑很久,所以今天我们专门来解读该问题的几种解决方案。
3095 0
Elastic实战:彻底解决spring-data-elasticsearch日期、时间类型数据读取报错问题
|
9月前
|
监控 算法 计算机视觉
基于姿态估计与目标追踪的异常行为检测技术实现
本文提出端到端细粒度异常行为检测方案,融合人体姿态估计、物品轨迹追踪与手物交互建模,精准识别“拿取—遮挡—藏匿”等连续异常动作。支持高遮挡、弱动作、复杂光照场景,毫秒级响应,高召回低误报,适配普通摄像头大规模部署。
557 3
|
9月前
|
人工智能 自然语言处理 机器人
OpenClaw(Clawdbot)是什么?2026年无影极速搭建OpenClaw(Clawdbot)个人AI助手+集成钉钉、QQ等主流 IM 平台教程
OpenClaw(Clawdbot)是什么?OpenClaw 作为一款历经 Clawdbot、Moltbot 名称迭代的开源 AI 个人助手,核心功能聚焦自然语言驱动的自动化任务执行,支持邮件处理、日程管理、市场调研等多样化场景,且兼容通义千问、Claude、GPT 等主流大语言模型。2026 年,阿里云无影云电脑推出 OpenClaw 专属预置镜像,通过 “一键部署” 机制省去传统部署中的环境配置、依赖安装等繁琐步骤,同时结合无影云电脑跨终端访问、弹性算力调度的特性,实现服务 7×24 小时稳定运行。本文基于阿里云官方技术文档与实测流程,详细拆解从镜像部署、API 配置到 IM 平台集成的全
641 4
|
11月前
|
监控 Java 测试技术
OOM排查之路:一次曲折的线上故障复盘
本文记录了一次Paimon数据湖与RocksDB集成服务线上频繁OOM的排查历程。通过分析线程暴增、堆外内存泄漏,最终定位到SDK中RocksDB的JNI内存未释放问题,并借助Flink重构写入链路彻底解决。分享了MAT、NMT、async-profiler等工具的实战经验与排查思路,为类似技术栈提供借鉴。
OOM排查之路:一次曲折的线上故障复盘
|
11月前
|
存储 Java 数据库
项目《四方保险》
本系列分享涵盖保险系统架构、数据库与功能设计、微服务划分、支付流程、保费计算、埋点设计及短信平台实现等实战经验,深入探讨《四方保险》项目中关键技术方案与优化策略,助力提升系统稳定性与业务支撑能力。(238字)
|
11月前
|
人工智能 JSON 数据挖掘
大模型应用开发中MCP与Function Call的关系与区别
MCP与Function Call是大模型应用中两大关键技术。前者为跨模型标准化通信协议,实现工具与模型解耦;后者是模型调用外部功能的内置机制。二者互补协作,推动AI应用向更开放、灵活、可扩展的方向发展。
|
7月前
|
存储 安全 大数据
信息系统与新一代信息技术知识体系
本知识体系系统梳理信息化内涵、信息系统全生命周期及五层逻辑结构,涵盖诺兰模型、OSI/TCP/IP网络基础、数据库与大数据技术、云边端协同架构,并深入解析物联网、区块链、AI、数字孪生等新一代信息技术及其在新基建中的融合应用。(239字)
592 0
|
11月前
|
数据采集 JSON 监控
京东店铺所有商品API接口使用指南
本文介绍如何对接京东开放平台“店铺所有商品API”,通过调用`JD.item_search_shop`接口,以编程方式获取POP或自营店铺的商品信息(如ID、标题、价格、库存等),适用于运营分析、库存监控等场景。需配置AppKey、时间戳等公共参数,并传入seller_id、page_no等业务参数实现分页查询,无需access_token授权。