Logo
Section 1 / 4

分布式计算原理导论

了解分布式计算原理。

导入

分布式计算原理导论

了解分布式计算原理。

分布式系统的概述

著名计算机科学家安德鲁·塔能鲍姆(Andrew Tanenbaum)对分布式系统的定义如下:

分布式系统 是一组独立的计算机,它们对用户而言表现为一个单一的、协调一致的系统。

在本课程中,当我们提到“计算机”时,指的是物理计算机或虚拟机。

考虑一台物理计算机上运行一个或多个虚拟机的情况(这在当今很常见)。

这些计算机协同工作以实现共同目标。它们不必位于同一房间或建筑物内。事实上,它们彼此之间了解甚少。

通信

那么,这些计算机是如何进行通信的呢?

它们通过互相传递消息来实现通信,就像学生们过去在学校用纸条传话一样,在在线消息成为日常生活一部分之前。

分布式系统的通信是一个非常复杂的话题,因此在本课程中,我们暂时以这种简化的思路来理解它。

请记住,所有通信方式都基于通过网络交换消息,而不依赖于某些计算机位于同一台物理机器上的事实,如上所述。

在这种情况下,它们可能共享部分系统的内存。然而,在分布式架构中,这种做法是不可取的,应尽量避免。

示例

  • 一个班级的学生集体合作解决数学问题,例如在学校竞赛中,而非期末考试。
  • 移动通信网络。
  • 地震仪组成的网络。
  • Folding@Home 及类似项目。

优势

构建分布式系统具有复杂性,并非适用于所有问题。

分布式系统的主要优势有两个:

  • 横向扩展性:我们可以轻松地向分布式系统中添加新的计算机,以满足计算需求。
  • 可靠性:某台计算机出现故障?只要架构设计合理,系统和最终用户不会受到影响。

缺点

然而,请记住,计算机科学中的每一个选择和技术都伴随着权衡。常见的缺点包括:

  • 计算机之间的某些消息可能会丢失。大多数系统工程师会实施恢复策略来应对这种情况。
  • 通过网络传输消息速度较慢,即使使用共享内存和强大的CPU来提升性能也是如此。
  • 难以监控和调试。想象一下,你有数百台机器需要排查问题。
  • 基础设施成本相对较高。

开始之前

什么是大数据,以及它为何如此流行?