《分布式服务架构原理设计与实战》第2章分布式系统一致性的问题笔记
来源:互联网 发布:常州seo徐建伟 编辑:程序博客网 时间:2024/05/16 14:52
一致性
解决一致性问题的思路
酸碱平衡理论
1. ACID
2. CAP。单节点=CA,P是出现网络分区。
3. BASE。BA=基本可用,S=软状态(状态可以在一段时间内不同步),E=最终一致性
4. 总结。向上扩展,水平扩展(数据库分片,相关数据分到同一片上保证一致性),最终一致性。
分布式一致性协议
分布式事务处理模型DTS包括4角色:应用程序,事务管理器,资源管理器,通信资源管理器。
两阶段提交协议:准备阶段+提交阶段。
问题:
1. 阻塞。准备阶段会锁定资源。直到下一步完成。
2. 单点故障。如果协调者(事务管理器)宕机,会一直阻塞。
3. 脑裂。协调者发送提交命令,有些参与者没有收到,不会执行事务。多个参与者之间不一致。
三阶段提交协议:询问阶段,准备阶段,提交阶段。还有超时检查
TCC协议,Try+Confirm+Cancel
保证最终一致性的模式
1. 查询模式 (每个服务操作都要唯一流水表示,以供查询)
2. 补偿机制(自动恢复,通知运营手工补偿,技术运营例如修改数据库等)
3. 异步确保模式(将执行的任务持久入库,定时任务补偿处理)
4. 定时校对模式(需要全局唯一流水ID)
5. 可靠消息模式
6. 缓存一致性模式
微服务交互模式
1. 同步调用模式
2. 接口异步调用模式
3. 消息队列异步处理模式
解决一致性问题的思路
酸碱平衡理论
1. ACID
2. CAP。单节点=CA,P是出现网络分区。
3. BASE。BA=基本可用,S=软状态(状态可以在一段时间内不同步),E=最终一致性
4. 总结。向上扩展,水平扩展(数据库分片,相关数据分到同一片上保证一致性),最终一致性。
分布式一致性协议
分布式事务处理模型DTS包括4角色:应用程序,事务管理器,资源管理器,通信资源管理器。
两阶段提交协议:准备阶段+提交阶段。
问题:
1. 阻塞。准备阶段会锁定资源。直到下一步完成。
2. 单点故障。如果协调者(事务管理器)宕机,会一直阻塞。
3. 脑裂。协调者发送提交命令,有些参与者没有收到,不会执行事务。多个参与者之间不一致。
三阶段提交协议:询问阶段,准备阶段,提交阶段。还有超时检查
TCC协议,Try+Confirm+Cancel
保证最终一致性的模式
1. 查询模式 (每个服务操作都要唯一流水表示,以供查询)
2. 补偿机制(自动恢复,通知运营手工补偿,技术运营例如修改数据库等)
3. 异步确保模式(将执行的任务持久入库,定时任务补偿处理)
4. 定时校对模式(需要全局唯一流水ID)
5. 可靠消息模式
6. 缓存一致性模式
微服务交互模式
1. 同步调用模式
2. 接口异步调用模式
3. 消息队列异步处理模式
阅读全文
0 0
- 《分布式服务架构原理设计与实战》第2章分布式系统一致性的问题笔记
- 《分布式服务架构原理设计与实战》第3章系统容量评估性能保障笔记
- 《分布式服务架构原理设计与实战》第4章日志系统笔记
- 《分布式服务架构原理设计与实战》第5章调用链笔记
- 《分布式服务架构原理设计与实战》第8章敏捷开发笔记
- 《分布式服务架构原理设计与实战》第一章分布式微服务架构设计原理笔记
- 荐书:《分布式服务架构:原理、设计与实战》
- 《大规模分布式系统架构与设计实战》第二章 分布式并行计算的原理与实践(1)
- 分布式服务架构:原理、设计与实践
- 《大规模分布式系统架构与设计实战》
- 大规模分布式系统架构与设计实战
- 大规模分布式系统架构与设计实战
- 大型分布式系统架构与设计实战
- 大规模分布式系统架构与设计实战
- 《大规模分布式系统架构与设计实战》
- 分布式系统的一致性原理
- 分布式服务化系统一致性(分布式事务、ACID、BASE、CAP)原理与解决方案
- 《大规模分布式系统架构与设计实战》第一章 概述
- Hive 之 关于时间的函数
- JDBC不同驱动程序名称与URL格式
- mybatis中"#"和"$"的区别
- 生成判别对抗网络
- java原生命令
- 《分布式服务架构原理设计与实战》第2章分布式系统一致性的问题笔记
- 详谈ByteArrayOutputStream的用法
- 感谢谷歌翻译
- String StringBuilder StringBuffer 的区别
- 反向代理、正向代理是什么意思
- 欢迎使用CSDN-markdown编辑器
- dubbo hystrix
- 【学习摘记】马士兵bbs改良版_课时8_论自学
- 噪声对比估计的神经语言模型