分布式系统
46 篇笔记
- 2.5 分布式事务方案之Sagahistorical
1. Saga是什么 保证最终一致性的一种分布式事务方案 2. Saga流程 - 有多个事务参与者,每个参与者都有两块逻辑:正向操作和逆向操作 - 把事务分成两个阶段 - 第一阶段每个参与者执行正向操作 - 第二阶段根据第一阶段结果而定 - 如果所有正向操作均执行成功,那么分布式事务提交 - 如果任
- 2.6 分布式事务方案之3PChistorical
1. 3PC是什么 - 证强一致性的一种分布式事务方案,2PC的改进版 2. 3PC流程 - 把2PC中的第一阶段拆分成两步,因此整个事务过程分成3个阶段:CanCommit、PreCommit、DoCommit - CanCommit阶段:协调者向所有参与者询问 你们是否可以完成本次事务? ,各个
- 2.7 分布式事务方案之两阶段historical
1. 两阶段是什么 - 将整个事务流程分为两个阶段 - 准备阶段 - 提交阶段或者回滚阶段 2. 两阶段实现 2.1. 数据库层次 - 两阶段实现之2PC.md 2.2. 应用层次 - 两阶段实现之TCC.md 3. 参考 - 请问TCC和2PC的区别在哪里? \- 知乎
- 2.8 可靠消息最终一致性实现之本地消息表historical
1. 本地消息表是什么 我们以下单后增加积分两个事务为例。 下单服务为服务A,积分服务为服务B 1. 服务A执行下单逻辑 2. 服务A下单成功后,发送消息到MQ中 3. 服务B消费消息处理本地事务 4. 服务B执行成功,则更新本地消息表的状态 5. 服务B消息表的状态【可以使用zookeeper解耦
- 2.9 两阶段实现之2PChistorical
1. 2PC是什么 - 2PC:Two-Phase Commit - 把事务分成两个阶段 - 第一阶段由事务管理器像所有database发送prepare请求 - 如果全部响应ok那么执行第二阶段的commit;如果有一个响应fail那么执行第二阶段的rollback - 2. 2PC存在的问题 -
- 2.10 两阶段实现之TCChistorical
1. TCC是什么 - 2PC是数据库层面的两阶段,而TCC是应用层面的两阶段 - TCC: - Try:尝试执行事务 - Confirm:确认执行事务 - Cancel:取消执行事务 - 本质上也是属于两阶段事务。 - 第一阶段执行Try操作,对业务检查及资源预留 - 第二阶段根据第一阶段的结果决
- 2.11 最大努力通知实现之MQhistorical
1. 是什么 1. 生产者执行本地事务完毕,发送消息到MQ 2. MQ把消息丢给消费者 3. 消费者消费消息,执行本地事务,成功则ack,失败则nack并重新入队 4. 消费者可以主动调用生产者的接口查询消息状态 2. 特点 跟分布式解决方案之可靠消息最终一致性.md差不多,依赖于MQ,允许少量的分
- 2.12 RocketMQ事务消息historical
1. RocketMQ事务消息是什么 - 传统的本地消息表需要依赖数据库的消息表 - 而RocketMQ事务则是对本地消息表的一个封装,将本地消息表移动到了MQ内部,解决 Producer 端的消息发送与本地事务执行的原子性问题 2. RocketMQ事务消息原理 1. 服务A发送half mess
- 3.分布式一致性算法historical
1. 分布式一致性算法是什么 - 准确地说是共识算法:让所有的节点对某件事达成一致。 2. 为什么会有一致性问题 2.1. 客户端并发请求 - 比如Leader-Follower场景:一个Client,A、B、C三个Node,Client请求A写入x为1,如果A认为x的值为1,那么B、C也必须认为该
- 3.1 分布式一致性算法之Paxoshistorical
1. Basic Paxos 1.1. Basic Paxos是什么 - 简称Paxos - Lamport发明的分布式共识算法,是Raft、ZAB的基础 1.2. Basic Paxos算法流程 1.2.1. 角色 - client:请求发起者。打酱油 - proposer:提案提议者。类似于协调