分布式系统介绍(持续更新)

本文探讨了分布式系统的发展,从概要出发,深入讲解分布式计算的概念与主流技术,对比传统架构与分布式计算策略的优势,并提供了相关参考资料。

 

 

 

 

分布式系统介绍


目 录

1      修改记录...1

2      概要...2

3      分布式计算...3


 

1   概要

本文主要对大规模分布式系统的发展进行梳理,以加深理解。


 

2   分布式计算

       随着计算机技术的发展和信息爆炸时代的来临,人们对数据计算的需求越来越高,特别是海量数据的科学计算。传统的单机受到计算速度、容量的限制已经无法满足需求。在“网络+计算机”的基本思想下,分布式计算应运而生。

2.1.1             分布式计算定义

      分布式系统由两台或两台以上机器组成的系统,具有物理上分布的物理资源和逻辑资源。这些资源高度自治和相互合作的工作。每台计算机都具有数据存储功能和数据处理能力。在分布式计算中,数据处理不是由单机完成而是由多台机器协作完成。比如一项工作P,由两部分组成    p1和p2。我们把p1放在机器A上完成,p2放在机器B上完成,这些就形成一个分布式计算。

2.1.2             主流分布式技术

        现在分布式计算问题基本可以采用google的三个技术解决,分别为:GFS,MapReduce,Bigtable,这三个技术被称为“google三驾马车”,google只公开了论文而未开源代码,开源界对此非常有兴趣,仿照这三篇论文实现了一系列软件,如:Hadoop、HBase、HDFS、Cassandra等。

       在google这些技术还未出现之前,企业界在设计大规模分布式系统时,采用的架构往往是database+sharding+cache。

        该架构解释如下:前端cache是为了提高响应速度,后端数据库则用于数据永久存储,防止数据丢失,而sharding是为了在多台机器间分摊负载。最前端由大块大块的cache组成,要保证至少99%(的访问数据落在cache中,这样可以保证用户访问速度,减少后端数据库的压力,此外,为了保证前端cache中数据与后端数据库中数据一致,需要有一个中间件异步更新(为啥异步?理由简单:同步代价太高。异步有缺定,如何弥补?)数据,这个有些人可能比较清楚,新浪有个开源软件叫memcachedb(整合了Berkeley DB和Memcached),正是完成此功能。另外,为了分摊负载压力和海量数据,会将数据经过分片后存放到不同节点上(称为“sharding”)。

      这种架构优点非常明显:简单,在数据量和用户量较小的时候完全可以胜任。但缺定早晚一天暴露出来,即:扩展性和容错性太差,维护成本非常高,尤其是数据量和用户量暴增之后,系统不能通过简单的增加机器解决问题。

     而上述所有问题都可以用google引导的分布式计算策略解决大型的、分布式的、对大量数据的访问。

    参考文献:http://dongxicheng.org/search-engine/system-designing-in-finging-jobs/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值