《分布式服务架构原理设计与实战》第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. 消息队列异步处理模式

阅读全文
0 0