zoukankan      html  css  js  c++  java
  • 解决分布式一致性问题 学习2

      1.保证最终一致性的模式

      查询模式;补偿模式,根据发起行驶分为 自动回复、通知运营、技术运营 形式;一步确保模式;定期校对模式,其中一个关键就是分布式系统需要有一个自始至终唯一的ID,生成ID有两种方法,为 持久型和时间型;

      2.可靠消息模式-- 分为 消息的可靠发送和消息处理的幂等性。

      保证操作的幂等性的常用方法:使用数据库表的唯一键进行滤重,拒绝重复的请求;使用分布式表对请求进行滤重;使用状态流转的方向性来滤重,通常使用数据库的行级锁来实现;根据业务的特点,操作本身就是幂等的,例如,删除一个资源、增加一个资源、获得一个资源等。

      3.缓存一致性模式

      互联网经典做法:如果性能要求不是很高,则尽量使用分布式缓存,而不要使用本地换成。

              写缓存是数据一定要完整,如果缓存数据的一部分有效,另一部分无效,则宁可在需要时回 源数据库,也不要把部分数据放入缓存中。

              使用缓存牺牲了一致性,未来提高性能,数据库与缓存只需要保持弱一致性,而不需要保持强一致性,否则违背了使用缓存的初衷。

              读顺序是先读缓存,后读数据库;写顺序要先写数据库,后写缓存。

      4.微服务的交互模式--同步调用和接口异步调用、消息队列异步处理。

      同步调用适用于大规模、高并发的短小操作,而不适用于后端负载较高的场景,eg,几乎所有JDBC的实现完全适用BIO同步阻塞模式。原则:从业务功能看,尽量使用异步来替换同步;在技术和架构的角度看,能使用同步解决的,不要引入异步。

      

  • 相关阅读:
    CF1324F Maximum White Subtree
    CF1204C Anna, Svyatoslav and Maps
    CF1187E Tree Painting
    CF1304E 1-Trees and Queries
    深入探究jvm之类装载器
    深入探究jvm之GC的算法及种类
    深入探究jvm之GC的参数调优
    spring源码解析之AOP原理
    spring注解扫描组件注册
    cas-client单点登录客户端拦截请求和忽略/排除不需要拦截的请求URL的问题
  • 原文地址:https://www.cnblogs.com/holyshengjie/p/8758858.html
Copyright © 2011-2022 走看看