Nosql 理解篇+实战篇 四 分布式模型

来源:互联网 发布:鲁能泰山 网络直播 编辑:程序博客网 时间:2024/06/05 08:18

      四 分布式模型

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

         1 分布式要解决的问题

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

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

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

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

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

         3 常用的分布式途径方法

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

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

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

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

 4 常用分布式技术详解

                  1 单一服务器

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

                   2分片

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

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

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

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

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

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

                 3 主从复制

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

 

                            优势:1 在频繁读写数据集情况下,提示数据访问性能

                                       2 提示读取操作的故障恢复能力

                  4对等复制

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

                            优势:处理出错的节点得心应手。

                                       只需增加节点就能提升性能。

                            缺点:数据一致性问题。例如写入冲突。

1 0
原创粉丝点击