| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 分布式服务架构-第二章 彻底解决分布式系统一致性的问题 -> 正文阅读 |
|
[大数据]分布式服务架构-第二章 彻底解决分布式系统一致性的问题 |
1. 什么是一致性拆分:
一致性指:分布式服务化系统之间的弱一致性,包括应用系统的一致性和数据的一致性。 2. 一致性问题
3.解决一致性问题的模式和思路3.1酸碱平衡理论3.1.1ACID(酸)具有ACID的数据库具有强一致性,本身不会出现不一致
3个典型是关系数据库 Oracle, Mysql, DB2 都保证强一致性,都是通过MVCC实现的 3.1.2CAP(帽子原理)
任何系统只可同时满足以上两点,必须在一致性和可用性之间权衡 3.1.3BASE(碱)在不同场景下,可以分别利用acid和base来解决分布式服务一致性问题 BASE满足CAP原理,通过牺牲强一致性获得可用性
系统在每步操作时,通过记录每个临时状态,在系统出现故障时可以从这些中间状态继续处理,未完成的请求或者退回到原始状态,最终达到一致状态。 3.1.4对酸碱平衡的总结实践经验
3.2分布式一致性协议分布式事务处理模型4种角色:应用程序,事务管理器,资源管理器,通信资源管理器。
协议
3.2.1两阶段提交协议XA协议根据两阶段提交来保证事务的完整性,实现分布式服务化的强一致性 两个阶段:两个阶段都是由事务管理器(协调者)发起的。资源管理器(参与者)
准备阶段锁定资源,重量级操作,致命问题:
3.2.2三阶段提交协议通过超时机制解决两阶段的阻塞问题
三阶段和两阶段区别
3.2.3TCC将任务拆分成Try,Confirm,Cancel三个步骤。 3.3保证最终一致性的模式3.3.1查询模式向外部输出操作执行的状态,调查询接口获取服务操作执行状态,为了实现查询,每个服务都需要有唯一的流水号标识。 3.3.2补偿模式为了让系统达到一致状态而做的努力叫做补偿。
3.3.3异步确保模式补偿模式的典型案例。好处:能够对高并发流量削峰 实践中将要执行的异步操作封装后持久入库,通过定时捞取未完成任务补偿操作来实现异步确保模式。 3.3.4定期校对模式如何发现需要补偿操作? 在操作主流程中的系统间执行校对操作,可以在事后异步地批量校对操作的状态,发现不一致,补偿。 实现定期校对的一个关键就是分布式系统中需要有一个自始至终唯一的ID 全局唯一ID:
分布式系统迅速定位问题,通过分布式系统的调用链跟踪系统进行,能够跟踪一个请求的调用链。 第三方定期核对系统,发现问题,补偿方式解决问题。 3.3.5可靠消息模式
3.3.6缓存一致性模式常见需求:亿级的读需求–缓存抗住读流量 实践:
4.超时处理模式4.1微服务的交互模式同步调用模式,接口异步调用模式,消息队列异步处理模式
4.2同步和异步的抉择
4.3交互模式下超时问题的解决方案4.3.1同步调用模式下的解决方案返回状态的定义
4.3.2异步调用模式下的解决方案返回给使用方状态:受理和未受理 异步处理返回结果的通知:处理成功和处理失败
4.3.3消息队列异步处理模式的解决方案多用于疏松耦合的项目,处理流程分为两个阶段:生产者投递和消费者处理
4.4超时补偿规则处理方法:快速失败和内部补偿 补偿方式:调用方补偿和接收方补偿 5.迁移开关的设计新老项目共存时 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:37:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |