zoukankan      html  css  js  c++  java
  • 分布式系统(四)—— 一致性问题

    一致性问题是复制引起的。那么为什么要复制?就是要提高可靠性和安全性(冗余)、提高性能(并发读写)。

    不一致是一定的,一致是不一定的,都是人为规定的,是一致性和性能之间权衡的过程。如果接受更大的不一致,系统效率越高,并发性越好,要求一致性越高,系统实现越复杂, 效率相对越低。

    一致性有几种级别:

    严格一致性,非常难实现,在分布式系统中。是一个完全理想状态。

    顺序一致性。单个进程符合程序

     

     

     

     

    ,多个进程符合一定的序列顺序。能保证大家看到的整体顺序是一样的,大家都错或者大家都对。(也是很难实现的。)

    因果一致性。和之前讲的因果顺序很相似。

    以上都算是强一致性。不太实用

    弱一致性:(阻塞,加锁释放锁)可以全局锁,如果想效率更高可以针对每一个变量加锁。

    这种实现减少了程序猿编程透明性,使其编程难度增加,但是系统构建简单了。

     

    以上都是高性能计算的系统设计方面,但是面对现实商务应用还是不太适用。因为高性能计算一般服务器放在局域网中,商务应用可能很多地方都有服务器,是在广域网上面。比如苏州合肥两个服务器,如果我在合肥,我的数据只有我用,其他人不关心,这时就没有必要保证很强的一致性,只有我需要到苏州用的时候再讲苏州的服务器进行“懒”更新,保证一致性。这就是由用户触发的更新,而不是系统本身保证的一个一致性。这就是从数据角度设计和从用户角度维护的一致性的区别。

    简单介绍几种这类一致性:

     

     

     

    针对不同的应用选择不同的一致性要求。

  • 相关阅读:
    《大道至简》读后感
    PowerBuilder学习笔记之1开发环境
    PowerBuilder学习笔记之14用户自定义对象
    查询数据库大小的代码
    JAVA基础_修饰符
    SQLSERVER查询存储过程内容
    Asp.Net WebAPI中Filter过滤器的使用以及执行顺序
    运算符
    判断(if)语句
    变量的命名
  • 原文地址:https://www.cnblogs.com/cun-yu/p/13124087.html
Copyright © 2011-2022 走看看