数据科学家程序员

漫谈分布式系统:基本概念

2017-08-14  本文已影响213人  2453cf172ab4

0x00 前言

MIT 6.824课程第一节的部分内容,加上自己参考了一些书一起整理而得。

资源共享是构造分布式系统的主要动机! —— 《分布式系统:概念与设计》 第一章

0x01 什么是分布式系统

分布式的定义有很多,我们从两本书中摘来两个比较权威的定义来看,就不翻译中文了。

其一:

A distributed system is a model in which components located on networked computers communicate and coordinate their actions by passing messages. The components interact with each other in order to achieve a common goal.

其二:

A distributed system is a collection of independent computers that appears to its users as a single coherent system.

重要特性

分布式系统有一些特殊特性,这些特殊的性质也是我们在设计分布式系统需要考虑的主要问题。对这些问题的认知程度,直接影响到我们是否能理解为什么那么多分布式系统要被设计出来,它们到底要解决什么问题,每个系统在设计的时候有什么优点,然后它们做了什么取舍。

反正我是感觉第三条占得分量挺重的。

为什么要用分布式系统?

  • to connect physically separate entities
  • to achieve security via isolation
  • to tolerate faults via replication
  • to scale up throughput via parallel CPUs/mem/disk/net

有什么难题

困难当然很多,总的来讲会有这几点:

  • complex: many concurrent parts
  • must cope with partial failure
  • tricky to realize performance potential

这些困难怎么体现?

0x02 几个话题

围绕前面列的问题,我们来分别讨论几个话题:一致性、错误容忍、性能。这几个点的解决往往会引入新的问题,比如说为了避免集群中一台服务器挂掉导致丢数据,我们会使用多备份的机制,但是已引入多备份就又引入了数据不一致的问题。而为了保证数据一致性,就要多加入更多的处理逻辑,这就会导致性能的下降。

那么怎么样能设计一个完美的分布式系统呢? 这个我也不知道,先学着吧......

1. consistency(一致性)

Consistency is an issue for both replicated objects and transactions involving related updates to different objects (recall ACID properties)

一致性问题主要会集中在多备份和分布式事务中。

Achieving good behavior is hard!

Consistency and performance are enemies.

2. fault tolerance

1000s of servers, complex net -> always something broken. We'd like to hide these failures from the application.

What we want:

How: replicated servers.

If one server crashes, client can proceed using the other(s).

3. Performance

What we want: scalable throughput.

Nx servers -> Nx total throughput via parallel CPU, disk, net. So handling more load only requires buying more computers.

But Scaling gets harder as N grows. Why?

0XFF 总结

列了一些基本概念。不想搞成中文了,发现看英文挺能理解的,翻译中文,怎么都别扭。

参考


作者:dantezhao |简书 | CSDN | GITHUB

个人主页:http://dantezhao.com
文章可以转载, 但必须以超链接形式标明文章原始出处和作者信息

上一篇 下一篇

猜你喜欢

热点阅读