《彻底解决分布式系统一致性问题》学习笔记

简介: 《彻底解决分布式系统一致性问题》直播者:李艳鹏 笔记作者:JKXQJ一致性问题产生的背景JEE架构:WEB容器—组合业务逻辑—>EJB容器—数据存ORM—>数据库 SSH架构:Struts MVC—组合...

《彻底解决分布式系统一致性问题》直播者:李艳鹏 笔记作者:JKXQJ

一致性问题产生的背景

JEE架构:WEB容器—组合业务逻辑—>EJB容器—数据存ORM—>数据库
SSH架构:Struts MVC—组合业务逻辑—>Spring容器—Hibernate ORM–>数据库
Web Service: WebService–> 注册服务(WSDL、UDDI)–>发现服务(UDDI)–> 服务调用(SOAP), 解耦,有中心服务,分布式并不推荐
ESB:企业服务总线
微服务:倡导REST服务,JSON传递数据,现在主流的。

常见的不一致的问题

  • 转账
  • 下订单和扣库存
  • 同步超时
  • 异步回调超时
  • 调单
  • 系统间状态不一致
  • 缓存和数据库不一致
  • 本地缓存节点间不一致
  • 缓存数据结构不一致

酸碱平衡原理

酸碱平衡原理 ACID

  • A:原子性
  • C:一致性
  • I: 隔离性
  • D:持久性

酸碱平衡-帽子 CAP

  • C: 一致性、数据一致更新,所有数据变动都是同步的
  • A: 可用性,好的相应性能,完全的可用性是指在任何故障模型下,服务都可以在有限的时间处理相应
  • P:分区容错性、可靠性

酸碱平衡-碱 Base

BA: 基本可用
S: 软状态,状态可以有一段时间不同步
E: 最终一致,最终数据是一致的就可以了,而不是时时保持一致

分布式一致性协议

两阶段

Created with Raphaël 2.1.0协调者协调者参与者1参与者1参与者2参与者2准备写redo、undo日志、锁定资源、执行操作、不提交准备成功准备写redo、undo日志、锁定资源、执行操作、不提交准备成功提交提交操作,释放资源提交成功提交提交操作,释放资源提交成功

三阶段

Created with Raphaël 2.1.0协调者协调者参与者1参与者1参与者2参与者2询问校验、超时导致中止可以执行询问校验、超时导致中止可以执行准备写redo、undo日志、锁定资源、执行操作、不提交准备成功准备写redo、undo日志、锁定资源、执行操作、不提交准备成功提交提交操作,释放资源提交成功提交提交操作,释放资源提交成功

TCC

查询模式

补偿模式

定期校对模式

可靠消息模式

缓存一致性模式

同步调用模式

消息模式

同步异步的抉择

  • 尽量使用异步来替换同步操作
  • 能用同步解决的问题就不要引入异步化

最终一致性模式

微服务超时模式

常见的不一致问题的解决

原作笔记:
http://www.jianshu.com/p/1156151e20c8

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
46 0
|
1月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
81 0
|
1月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
61 1
|
1月前
|
消息中间件 SpringCloudAlibaba Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
778 0
|
1月前
|
SpringCloudAlibaba Java 测试技术
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
36 1
|
1月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
36 0
|
1月前
|
负载均衡 算法 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
23 0
|
1月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
44 1
|
1月前
|
SQL SpringCloudAlibaba 中间件
SpringCloud Alibaba Seata处理分布式事务--学习笔记
SpringCloud Alibaba Seata处理分布式事务--学习笔记
24 0
|
2月前
|
SQL 搜索推荐 数据库
分布式搜索引擎_学习笔记_3
分布式搜索引擎_学习笔记_3
19 1

热门文章

最新文章

相关实验场景

更多