下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

Nosql 分布式模型

作者:课课家教育     来源: http://www.kokojia.com点击数:704发布时间: 2017-08-29 08:30:45

标签: 数据库Nosql数据库模型

  类似SQLServer这样的关系型数据库是为过去的典型工作负载设计的。以前的传统应用中,人们对数据库读取速度的关注远远超过写入速度。但现在情况不同了,物联网设备会生成大量信号,可联网汽车会生成大量类似发动机温度之类的信息。信息的生成已经不足以用“海量”来形容。全球各地正在以极高的速度生成大量数据,数据库写入操作开始变得更重要。SQL在响应查询方面的表现很不错,但随着写入操作的崛起,NoSQL顺势而起。

  NoSQL数据库针对写入操作的处理进行了优化,可实现极大的规模。但从数据库读取内容时,NoSQL无法提供丰富的查询功能。用户真正需要的是一种针对写入操作进行优化的数据库引擎,这种引擎必须能支持足够大规模的快速写入,同时依然能提供丰富的查询功能。在一个服务器完全能够胜任工作时就没必要考虑分布式,这样部署简单,维护也方便很多。本文将介绍NoSQL数据库的分布式模型。

Nosql 分布式模型_数据库_Nosql _数据库模型_课课家教育

  NoSQL数据库的分布式模型

  为什么要引入分布式?分布式的优缺点?分布式的方法?常用分布式技术详解?

  1、分布式要解决的问题

  随着数据量指数级的爆发式增长。用来购买更大服务器来运行数据库的纵向扩展(scaleup)方式会变得越发困难和昂贵。与之相比,将数据库运行在服务器集群上的横向扩展(scaleout)方式,由于技术的愈发成熟,逐渐成为了众多大型企业的首选。

  以京东为例,京东数据库主体发展,经历了MySQL—>sqlserver—>Oracle—>mysql集群。这种演变方式,也是大部分企业数据发展的演变过程。

  2、使用分布式的优势和缺陷

  优势:使用不同的分布式模型,需要安装企业需求来决定。有些模型能够处理超大量数据。有些能够处理超大量网络读写,还有的能应对网络速度慢或者网络故障。都是采用分布式所带来的优势。

  缺陷:成本较高,在集群上运行数据库,较为复杂。所以除非刚刚所说优势对企业很重要,否则不应该随意使用。

  3、常用的分布式途径方法

  较为宏观的分布式分类分为“复制(replication)”与“分片(sharding)”。

  复制:将同一分数据拷贝到多个节点

  分片:将不同数据存放在不同节点。

  这两种技术既可以独立使用,也可以同时使用。复制有两种形式“主从式(master—slave)”和“对等式(peer—to—peer)”。下面有简单到复杂来说说这些技术。

  4、常用分布式技术详解

  单一服务器

  通常,在大多数情况下,都推荐使用最简单的分布形式:也就是根本不分布。将数据放在同一台电脑中,让它处理对数据的存储操作。尽管许多NoSQL都是为集群运行环境而设计的,但是只要某个NoSQL数据库的数据模型符合应用程序需求,那么完全可以按照单一服务器分布模型来使用它。例如图数据库。若使用数据库基本上是为了处理聚合,那么可以考虑在单一服务器上部署“文档数据库”或者“键值数据库”,这样也能简化程序开发。总之,在不需要分布式数据就能应对时,总应该选用“单一服务器方案”。

  分片

  一般来说,数据库的繁忙体现在:不同用户需要访问数据集中不同部分。在这种情况下,我们把数据的各个部分存放在不同服务器中。以此实现横向扩展。该技术就叫“分片(sharding)”

  解决分片的服务器负载均衡难点:

  1)什么样的数据适合分片

  使用面向聚合的数据库,之所以设计聚合,就是把那些经常需要同时访问的数据放在一起。因此,我们把聚合作为分布数据的单元

  2)怎样的数据分布能提升负载均衡程度

  把聚合数据均匀的分布在各个节点中,让它们需要处理的负载量相当。例如我们可以把有可能需要以此读取的聚合放在一起。事实上大部分NoSQL都提供了“自动分片的功能”,让数据库自己负责把数据分布到各个分片,并且将数据访问请求引导至适当的分片上。

  需要考虑的问题

  如何存放数据,让用户基本上只需从一台服务器上获取数据

  如果经常需要与多个结点交互才能取到需要数据,可能分片策略不合适,或者该场景中分片不是一个理想的方案;

  数据节点的分布:地理位置与访问用户的关系

  数据结点分布在全球各地,让北京的用户只需要访问北京的结点就能取到所需数据;

  保持负载均衡

  优点

  同时提升读取和写入性能

  由于分片是将数据分散到多个结点存储,这样在写入时,压力同样分散;

  横向扩展写入能力

  缺点

  降低数据库的错误恢复能力

  分片后,集群中结点的故障将导致部分数据丢失;

  解决方案:每个分片数据不只存放在一个结点上,冗余存放,增加数据安全性(通过后面讲到的与主从复制的结合使用,是常用的手段)

  主从复制

  主从式分布:把数据复制到多个节点中,其中一个为“主节点”,其他为“从节点”。

  特点

  主节点存放权威数据,负责数据更新操作;

  主节点将更新的数据复制到从节点;

  优点

  有助于提升数据读取性能

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

  增强“读取操作的故障恢复能力”

  主节点损坏,依然可处理读取请求;

  从结点升级为主结点后可以处理更新请求;

  “一拖一”即时备份的单存储方案

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

  缺点

  数据的不一致性(未及时更新)

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

  对提升写入操作性能帮助不大

  所有的更新操作都通过主结点处理,对于更新频繁的业务,使用主从复制模型优势不大;

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

缺点    数据的不一致性(未及时更新)    主节点更新后,同步到各个从结点的数据不能保证及时,可能导致各个结点上查询的数据不一致(只具有最终一致性)    对提升写入操作性能帮助不大    所有的更新操作都通过主结点处理,对于更新频繁的业务,使用主从复制模型优势不大;    主节点是系统的瓶颈和弱点

  对等复制

  对等复制:对等复制所有节点地位相同,都可以接受写入请求,而且丢失其一,不影响整个数据库访问。

  特点

  所有节点地位相同,都可接收查询和写入请求;

  各节点将自己的更新的数据复制到其他节点;

  优点

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

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

  缺点

  数据不一致性

  写入和读取都有可能发生冲突;

  结合使用

  分片和主从复制中的一拖一方案结合使用;

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

  小编结语:

  更多内容尽在课课家教育!

赞(11)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程