每日必会7

简介: 分布式系统需在一致性(C)、可用性(A)和分区容错性(P)间权衡,P不可避免,故只能在A与C间取舍。BASE理论提供解决思路:基本可用、软状态、最终一致。Seata AT模式通过全局事务ID协调分支事务,实现两阶段提交,保证分布式事务一致性。

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个消息怎么防止积压

相关文章
|
存储 关系型数据库 数据库
聊多版本并发控制(MVCC)
MVCC是数据库并发控制技术,用于减少读写冲突。它维护数据的多个版本,使事务能读旧数据而写新数据,无需锁定记录。当前读获取最新版本,加锁防止修改;快照读不加锁,根据读取时的读视图(readview)决定读哪个版本。InnoDB通过隐藏字段(DB_TRX_ID, DB_ROLL_PTR)和undo log存储版本,readview记录活跃事务ID。读已提交每次读取都创建新视图,可重复读则在整个事务中复用一个视图,确保一致性。MVCC通过undo log版本链和readview规则决定事务可见性,实现了非阻塞并发读。
1870 5
聊多版本并发控制(MVCC)
|
3月前
|
SQL 存储 监控
避坑必看!MySQL 三大日志(redo/undo/binlog)底层原理全拆解,事务一致性再也不懵
MySQL事务ACID的基石是redo、undo、binlog三大日志:redo log保障持久性(宕机不丢数据),undo log保障原子性(支持回滚与MVCC),binlog保障可追溯与主从同步。三者协同工作,缺一不可。
659 4
|
消息中间件 Java Kafka
掌握Kafka事务,看这篇就够了
先赞后看,南哥助你Java进阶一大半Kafka事务实际上引入了原子多分区写入的概念,播客画了以下流程图,展示了事务在分区级别如何工作。我是南哥,一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。
668 3
掌握Kafka事务,看这篇就够了
|
7月前
|
XML Java 数据格式
SpringBoot@Configuration使用总结
被@Configuration标注的类视为Spring配置类,等同于XML配置文件。通过@Bean注册Bean,结合AnnotationConfigApplicationContext可启动IOC容器,加载并管理Bean实例,包括配置类自身。
|
7月前
|
人工智能 NoSQL 前端开发
面试真题
多套AI与Java技术面试题汇总,涵盖RAG、智能体、大模型部署、分布式系统、JVM调优、数据库设计等核心内容,深入考察候选人项目经验、架构设计及技术深度,适用于中高级工程师岗位选拔。
|
7月前
|
消息中间件 人工智能 NoSQL
RocketMQ for AI:重新定义 AI 应用通信范式
RocketMQ LiteTopic 专为 AI 场景设计,应对长时会话、高延迟、大上下文等挑战。支持百万级轻量队列,实现会话级私有通道与细粒度订阅。LiteConsumer 可动态管理节点级订阅,免去 Redis 依赖与广播开销,简化架构,提升稳定性。原生支持断点续传、状态恢复,保障 AI 多轮交互的可靠闭环,构建高效、弹性的新一代通信模型。(239字)
|
7月前
|
消息中间件 人工智能 决策智能
AgentScope x RocketMQ:构建多智能体应用组合
AgentScope是阿里开源的多智能体开发框架,支持模块化、透明化、可定制的智能体构建。集成RocketMQ实现高效A2A通信,助力打造如“智能旅行助手”等复杂协作应用,推动开发者友好型AI生态发展。
|
7月前
|
消息中间件 人工智能 Linux
基于 RocketMQ 构建 高可靠 A2A 通信通道
A2A协议由Google于2025年发起,旨在实现跨厂商AI智能体的标准化通信。基于RocketMQ构建的异步通信方案,支持任务分发、流式交互与状态同步,助力多智能体系统高效协作,推动开放可扩展的Agent生态发展。
|
7月前
|
机器学习/深度学习 数据采集 人工智能
大模型训练方法与技术术语解释
预训练、微调、RLHF、思维链等技术共同构建大模型核心能力。预训练夯实语言基础,微调适配特定任务,RLHF对齐人类偏好,思维链提升推理,少/零样本实现快速迁移,指令微调增强指令理解,自监督利用海量文本,温度控制生成风格,蒸馏压缩模型规模,缩放定律指引性能增长路径。
|
7月前
|
机器学习/深度学习 存储 自然语言处理
大模型基础概念术语解释
大语言模型(LLM)基于Transformer架构,通过海量文本训练,实现强大语言理解与生成。其核心为自注意力机制,结合Token化、位置编码与嵌入层,支持万亿级参数规模。参数增长带来涌现能力,如复杂推理与泛化性能。混合专家模型(MoE)提升效率,推动模型持续扩展。