我与云计算的故事

CSDN话题挑战赛第2期
参赛话题:万家争鸣的云计算修罗场

我想分享的云计算技能/知识点

分布式计算

该技能/知识点的背景介绍

基本概念:分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。 

(1)集中式计算

集中式计算完全依赖于一台大型的中心计算机的处理能力,这台中心计算机称为主机(Host或mainframe),与中心计算机相连的终端设备具有各不相同非常低的计算能力。实际上大多数终端完全不具有处理能力,仅作为输入输出设备使用。

(2)分布式计算

与集中式计算相反,分布式计算中,多个通过网络互联的计算机都具有一定的计算能力,它们之间互相传递数据,实现信息共享,协作共同完成一个处理任务。

中科院的定义:

分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。

优点:

稀有资源可以共享;通过分布式计算可以在多台计算机上平衡计算负载;可以把程序放在最适合运行它的计算机上。

该技能/知识点实际运用

分布式计算的原理:

•分布式计算就是将计算任务分摊到大量的计算节点上,一起完成海量的计算任务。而分布式计算的原理和并行计算类似,就是将一个复杂庞大的计算任务适当划分为一个个小任务,任务并行执行,只不过分布式计算会将这些任务分配到不同的计算节点上,每个计算节点只需要完成自己的计算任务即可,可以有效分担海量的计算任务。而每个计算节点也可以并行处理自身的任务,更加充分利用机器的CPU资源。最后再将每个节点的计算结果汇总,得到最后的计算结果。

分布式计算步骤:

设计分布式计算模型,分布式任务分配,编写并执行分布式程序

ACID原则:

原子性、一致性、独立性及持久性。

CAP理论定义 :

分布式计算领域的公认定理, 一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错(Partition tolerance)这三项中的两项。

一致性指“All nodes see the same data at the same time”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。对于一致性,可以分为从客户端和服务端两个不同的视角来看。

可用性是指“Reads and writes always succeed”,即服务一直可用,而且是在正常的响应时间内。对于一个可用性的分布式系统,每一个非故障的节点必须对每一个请求作出响应。也就是该系统使用的任何算法必须最终终止。

分区容错性指“The system continues to operate despite arbitrary message loss or failure of part of the system”,也就是指分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。

CAP权衡:通过CAP理论,知道无法同时满足一致性、可用性和分区容错性这三个特性,那应该如何取舍呢?

(1)CA without P:如果不要求P(不允许分区),则C(强一致性)和A(可用性)是可以保证的。但其实分区始终会存在,因此CA的系统更多的是允许分区后各子系统依然保持CA。

(2)CP without A:如果不要求A(可用),相当于每个请求都需要在Server之间强一致,而P(分区)会导致同步时间无限延长,如此CP也是可以保证的。很多传统的数据库分布式事务都属于这种模式。

(3)AP without C:要高可用并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。现在众多的NoSQL都属于此类。

BASE理论:

•BASE理论是对CAP理论的延伸,指基本可用(Basically Available)、软状态(Soft State)、最终一致性(Eventual Consistency)。

•基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。

•软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。例如MySQL replication的异步复制就是这种体现。

•最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。

分布式系统的基础知识:

•大数据技术的需求是推动分布式系统发展的一大动力。大数据存储技术的演变最初源于互联网公司的大规模分布式存储系统。与传统的高端服务器、高端存储器和高端处理器不同的是,互联网公司的分布式存储系统由数量众多的、低成本和高性价比的普通PC服务器通过网络连接而成。互联网的业务发展很快,而且注重成本,这就使得存储系统不能依靠传统的纵向扩展的方式,即先买小型机,不够时再买中型机,甚至大型机。互联网后端的分布式系统要求支持横向扩展,即通过增加普通PC服务器来提高系统的整体处理能力。普通PC服务器性价比高,故障率也高,需要在软件层面实现自动容错,保证数据的一致性。另外,随着服务器的不断加入,需要能够在软件层面实现自动负载均衡,使系统的处理能力得到线性扩展。

分布式系统的特性:

•你会知道系统当中的某台计算机崩溃或停止运行了,但是你的软件却永远不会。这句话虽然简单,但是却道出了分布式系统的关键特性。分布式系统的特性包括容错性、高可扩展性、开放性、并发处理能力和透明性。

分布式存储系统实例:Apache Hadoop

Apache Hadoop特性:

(1)高可靠性:Apache Hadoop可以可靠地将数据存储到节点上。

(2)高可扩展性:Apache Hadoop的存储和计算节点可以快速扩展,并自动进行负载均衡。

(3)高效性:一方面Apache Hadoop会自动在各个节点之间动态调动数据,保证每个节点存储均衡,另一方面读取数据时我们可以从不同节点并行读取,提高数据读取的速度。

(4)高容错性:Apache Hadoop会将数据冗余存储在不同节点上,保证数据容错性,计算任务失败时也会自动重新分配任务。

(5)低成本:Apache Hadoop是开源软件,可以节省商业软件的购买成本。同时,Apache Hadoop可以用廉价节点组成的集群取代昂贵的超级计算机,从而可以节省硬件成本。

分布式存储系统:

•分布式存储系统大致可分为5个子方向:结构化存储、非结构化存储、半结构化存储、In-memory 存储及NewSQL。除了这5个子方向之外,分布式存储系统还有一系列的理论、算法、技术作为支撑,例如 Paxos、CAP理论、一致性散列、时钟技术、2PC、3PC等。

结构化存储的历史非常古老,典型的场景就是事务处理系统或者关系型数据库(RDBMS)。传统的结构化存储都是从单机做起的,例如大家耳熟能详的MySQL。MySQL的成长史就是互联网的成长史。除了MySQL之外,PostgreSQL也是近年来势头非常强劲的一个RDBMS。传统的结构化存储系统强调以下内容。结构化的数据(例如关系表); 强一致性(例如银行系统,电商系统等场景);随机访问(索引、增删查改、SQL)。

非结构化存储:与结构化存储不同的是,非结构化存储强调的是高可扩展性,典型的系统就是分布式文件系统。

半结构化存储:半结构化存储的提出是为了解决结非结构化存储系统随机访问性能差的问题。我们通常会听到一些流行的名词,例如NoSQL、Key-Value Store,包括对象存储等。这些都属于半结构化存储研究的领域,其中以NoSQL的发展势头最为强劲。

In-memory存储:随着业务的并发越来越高,存储系统对低延迟的要求也越来越高。同时由于摩尔定律以及内存的价格不断下降,基于内存的存储系统也开始普及。

NewSQL:单机RDBMS系统在可扩展性上面临着巨大的挑战,然而NoSQL不能很好的支持关系模型。

分布式计算和并行计算一样吗?

传统的并行计算的要求:投入更多机器,数据大小不变,计算速度更快。

分布式计算的要求:投入更多的机器,能处理更大的数据。

典型的分布式系统:

网格系统,P2P系统,透明计算,区块链系统:

网格是一种能够整合的合作使用的由多家组织所拥有和管理的高端计算机、网络、数据库、实验设备的基础设施。

对等网络系统(Peer-to-Peer),简称P2P系统,即媒体及公众所称的“点对点系统”,是一种应用在对等者(Peer)之间分配任务和工作负载的分布式应用架构的系统。对等网络的思想是:网络的所有参与者共享他们所拥有的一部分硬件资源,包括处理器资源、存储资源和网络资源等,这些共享资源可以通过网络被其他对等者直接访问并为之提供服务和内容。具有高度分散化,自组织性,多管理域的性质与部署低门槛,有机增长,对故障与攻击的恢复力,资源的丰富性与多样性的特点。可应用于共享及分发文件,流媒体,电话,志愿计算。

透明计算是一种用户无须感知计算机操作系统、中间件、应用程序和通信网络的具体所在,只需根据自己的需求,通过网络从所使用的各种终端设备(包括固定、移动及家庭中的各类终端设备)中选择并使用相应服务(例如计算、电话、电视、上网和娱乐等)的计算模式。

区块链(Blockchain)是一种去中心化、不可篡改、可追溯、多方共同维护的分布式数据库系统,能够将传统单方维护的仅涉及自己业务的多个孤立数据库整合在一起,分布式地存储在多方共同维护的多个节点,任何一方都无法完全控制这些数据,只能按照严格的规则和共识进行更新,从而实现了可信的多方间的信息共享和监督,避免了烦琐的人工对账,提高了业务处理效率,降低了交易成本。

总结

区块链的核心特征:

① 块链结构:每一块有时间戳,每一块都含有前面一块的散列加密信息,对每个交易进行验证。② 多独立拷贝存储:区块链系统的每个节点都存储同样信息。③ 拜占庭容错:容忍少于1/3 节点恶意作弊或被黑客攻击,系统仍然能够正常工作。

区块链模式:(1)模式1:①、②、③+ P2P + 挖矿。(2)模式2:①、②、③+ P2P + 挖矿 + 默克尔-帕特里夏树(Merkel Patricia tree)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值