三百行python代码的项目_使用300行代码创建一个分布式系统

使用300行代码创建一个分布式系统构建一个分布式系统是很困难的。它需要可扩展性、容错性、高可用性、一致性、可伸缩以及高效。为了达到这些目的,分布式系统需要很多复

使用

300

行代码创建一个分布式系统

构建一个分布式系统是很困难的。

它需要可扩展性、

容错性、

高可用性、

一致性、

可伸缩以及高效。为了达到这些目的,分布式系统需要很多复杂的组件以一

种

复杂的方式协同工作。例如,

Apache

Hadoop

在大型集群上并行处理

TB

级别的

数据集时,需要依赖有着高容错的文件系统(

HDFS

)来达到高吞

吐量。

在之前,每一个新的分布式系统,例如

Hadoop

和

Cassandra

,都需要构建自己

的底层架构,包括消息处理、存储、网络、容错性和可伸缩性。

庆幸的是,像

Apache

Mesos

这样的系统,

通过给分布式系统的关键构建模块提供类似操作系

统的管理服务,

简化了构建和管理分布式系统的任务。

Mesos

抽离了

CPU

、

存储

和其它计算资源,

因此开发者开发分布式应用程序时能够将整个数据中心集群当

做一台巨型机对待。

构建在

Mesos

上的应用程序被称为框架,

它们能解决很多问题:

Apache

Spark

,

一种流行的集群式数据分析工具;

Chronos

,一个类

似

cron

的具有容错性的分

布式

scheduler

,这是两个构建在

Mesos

上的框架的例子。构建框架可以使用多

种语言,包括

C++

,

Go

,

Python

,

Java

,

Haskell

和

Scala

。

在分布式系统用例上,比特币开采就是一个很好的例子。比特币将为生

成

acceptable

hash

的挑战转为验证一块事务的可靠性。

可能需要

几十年,

单台笔记本电脑挖一块可能需要花费超过

150

年。结果是,有许多的“采矿池”

允许采矿者将他们的计算资源联合起来以加快挖矿速度。

Mesosphere

的一个实

习生,

Derek

,

写了一个

比特币开采框架

,

利用集群资源的优势来做同样的事情。

在接下来的内容中,会以他的代码为例。

1

个

Mesos

框架有

1

个

scheduler

和

1

个

executor

组成。

scheduler

和

Mesos

master

通信并决定运行什么任

务,而

executor

运行在

slaves

上面,

执行实际任务。大多数的框架实现了自己的

scheduler

,并使用

1

个由

Mesos

提

供的标准

executors

。当然,框架也可以自己定制

executor