NoSQL数据库的分布式模型

数据库 其他数据库 分布式
在一个服务器完全能够胜任工作时就没必要考虑分布式,这样部署简单,维护也方便很多。本文将介绍NoSQL数据库的分布式模型。

单一服务器

在一个服务器完全能够胜任工作时就没必要考虑分布式,这样部署简单,维护也方便很多;

分片

特点

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

需要考虑的问题

  • 如何存放数据,让用户基本上只需从一台服务器上获取数据 
    如果经常需要与多个结点交互才能取到需要数据,可能分片策略不合适,或者该场景中分片不是一个理想的方案;

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

  • 保持负载均衡

优点

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

  • 横向扩展写入能力

缺点

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

主从复制

特点

主节点存放权威数据,负责数据更新操作; 
主节点将更新的数据复制到从节点;

优点

  • 有助于提升数据读取性能 
    从结点只负责查询,增加从结点提升数据读取性能

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

  • “一拖一” 即时备份的单存储方案 
    即使不需要分布式部署,主从复制也可以用来做为单机服务器备份的部署方案;

缺点

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

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

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

对等复制

特点

所有节点地位相同,都可接收查询和写入请求; 
各节点将自己的更新的数据复制到其他节点;

优点

  • 从容处理出错节点,不必担心数据请求的丢失

  • 增加节点,轻易提升查询和写入性能

缺点

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

结合使用

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

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

附思维导图

NoSQL:分布式模型

参考

《NoSQL精粹》

责任编辑:彭凡 来源: 博客园
相关推荐

2015-06-16 10:39:43

NoSQL分布式算法

2013-03-05 15:36:43

NoSQL分布式系统

2011-11-29 09:49:16

数据库其他数据库NoSQL

2015-06-30 12:49:27

HBaseNoSQL分布式

2021-11-08 10:52:02

数据库分布式技术

2023-11-14 08:24:59

性能Scylla系统架构

2023-07-31 08:27:55

分布式数据库架构

2023-07-28 07:56:45

分布式数据库SQL

2023-09-11 15:40:43

键值存储云服务

2021-12-20 15:44:28

ShardingSph分布式数据库开源

2023-03-26 12:43:31

数据库KeyValue

2013-04-26 16:18:29

大数据全球技术峰会

2009-10-23 10:45:21

NoSQLMemcached关系数据库

2018-05-07 09:30:41

数据库NoSQLNewSQL

2023-12-05 07:30:40

KlustronBa数据库

2022-12-08 08:13:11

分布式数据库CAP

2020-08-03 07:00:00

SQL数据库

2022-06-09 10:19:10

分布式数据库

2011-05-19 09:18:48

分布式数据库

2019-08-19 10:24:33

分布式事务数据库
点赞
收藏

51CTO技术栈公众号