zoukankan      html  css  js  c++  java
  • NoSQL数据库的分布式模型

    NoSQL数据库的分布式模型

    单一server

    在一个server全然可以胜任工作时就不是必需考虑分布式,这样部署简单,维护也方便非常多。

    分片

    特点

    数据的各个部分存放在集群的不同server中; 
    比方按字母来划分:以a-g开头的键值都存放到第一台server上,以h-n开头的存放到第二台…

    须要考虑的问题

    • 怎样存放数据,让用户基本上仅仅需从一台server上获取数据 
      假设常常须要与多个结点交互才干取到须要数据。可能分片策略不合适。或者该场景中分片不是一个理想的方案。

    • 数据节点的分布:地理位置与訪问用户的关系 
      数据结点分布在全球各地,让北京的用户仅仅须要訪问北京的结点就能取到所需数据。

    • 保持负载均衡

    长处

    • 同一时候提升读取和写入性能 
      因为分片是将数据分散到多个结点存储。这样在写入时,压力相同分散;

    • 横向扩展写入能力

    缺点

    减少数据库的错误恢复能力 
    分片后,集群中结点的故障将导致部分数据丢失。 
    解决方式:每一个分片数据不仅仅存放在一个结点上,冗余存放。添加数据安全性(通过后面讲到的与主从复制的结合使用。是经常使用的手段)

    主从复制

    特点

    主节点存放权威数据。负责数据更新操作; 
    主节点将更新的数据拷贝到从节点;

    长处

    • 有助于提升数据读取性能 
      从结点仅仅负责查询。添加从结点提升数据读取性能

    • 增强“读取操作的故障恢复能力” 
      主节点损坏。依旧可处理读取请求; 
      从结点升级为主结点后能够处理更新请求;

    • “一拖一” 即时备份的单存储方案 
      即使不须要分布式部署,主从复制也能够用来做为单机server备份的部署方案。

    缺点

    • 数据的不一致性(未及时更新) 
      主节点更新后,同步到各个从结点的数据不能保证及时,可能导致各个结点上查询的数据不一致(仅仅具有终于一致性)

    • 对提升写入操作性能帮助不大 
      全部的更新操作都通过主结点处理,对于更新频繁的业务。使用主从复制模型优势不大;

    • 主节点是系统的瓶颈和弱点

    对等复制

    特点

    全部节点地位同样,都可接收查询和写入请求。 
    各节点将自己的更新的数据拷贝到其它节点;

    长处

    • 从容处理出错节点,不必操心数据请求的丢失
    • 添加节点。轻易提升查询和写入性能

    缺点

    • 数据不一致性 
      写入和读取都有可能发生冲突;

    结合使用

    分片和主从复制中的一拖一方案结合使用; 
    分片的作用在于数据的分布式存储。主从复制的作用在于为各个分片结点提供备份。添加数据安全;

    注:新浪Redis集群的部署使用的是这样的方案,关于新浪redis的使用详见大CC之前的博客: 
    Redis 在新浪微博中的应用

    附思维导图

    NoSQL:分布式模型

    參考

    NoSQL精粹

  • 相关阅读:
    FZU2056 最大正方形(二分答案)
    2014暑期集训个人赛
    2014 acm鞍山现场赛总结
    hdu1853 Cyclic Tour (二分图匹配KM)
    zoj3826 Hierarchical Notation (字符串模拟)
    hdu3047 Zjnu Stadium (并查集)
    hdu4886 TIANKENG’s restaurant(Ⅱ) (trie树或者模拟进制)
    CodeForces 287B Pipeline (水题)
    wpf窗体项目 生成dll类库文件
    sqlserver 汉字转全拼函数
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6945610.html
Copyright © 2011-2022 走看看