zoukankan      html  css  js  c++  java
  • 第五章 数据一致性

      关系型数据库:强一致性;

      NoSQL: CAP原理与 最终一致性。

    5.1 更新一致性

      在单服务器数据库中,用序列化的方式保证一致性。

      在集群环境中,数据有多分拷贝,必须要用“顺序一致性”保证所有节点以相同的顺序执行。

    5.2 读取一致性

      关系数据库用“事务”来解决读取一致性的问题。(不让一个读取操作读取到另外一个操作的中间结果。)

      部分NoSQL数据库不支持事务。

      面向聚合的数据库通常支持“原子操作”,但仅限于单一聚合内部。如果把订单、运费、商品全部放入一个订单聚合中,则可以避免“逻辑不一致”

      我们不能把数据都放在一个聚合中,所以在执行影响多个聚合的操作时,会有一段“不一致窗口”,数据最终会一致,叫做“最终一致性”。在数据存在冗余的集群中,这个不一致窗口可能比较长。

      “黏性会话”:保证情况都发到一个节点。

    5.3 放宽“一致性”约束

      事务影响性能,很多数据库弃用事务,放宽一致性需求。

      CAP定理:一致性,可用性,分区耐受性(发生通信故障,导致整个集群被分割成多个无法互相通信的分区时,也就是脑裂,集群任然可用。)

      不一致的问题,一般是可以容忍的,不能完全以来开发,更需要业务领域专家。

     5.4 放宽“持久性”约束

      把一些信息存储到内存中(比如用户会话)以提高相应速度 ,带来的问题是,内存数据可能丢失。             

      

        

      

  • 相关阅读:
    django-02框架-配置、静态文件和路由
    django-01框架-工程搭建
    python虚拟环境安装
    linux推送文件到另一台主机
    python2问题收集
    python diff json方法
    Linux expect详解
    python scp到远端机器
    shell远程执行命令(命令行与脚本)
    git操作
  • 原文地址:https://www.cnblogs.com/liufei1983/p/9434023.html
Copyright © 2011-2022 走看看