分布式系统中的挑战/故障

255 阅读6分钟

本文介绍了分配系统中出现的潜在挑战和故障及其各自的解决方案。

目录:

  • 什么是分布式系统?
  • 优点
  • 分布式系统:挑战、失败

什么是分布式系统?

分布式系统是一个利用多台联网计算机的系统,这些计算机共同为一个共同的目的/目标工作。分布式系统中的计算机能够通过通信网络相互传递 "信息",从而实现通信和同步行动。此外,不同的计算机可以通过承载不同的组件来实现不同的特定功能--这些不同的计算机有独立的内存,并运行在各自的操作系统上。此外,冗余总是被实施,以确保如果一个系统组件发生故障,整个系统不会发生。

分布式系统可以在各种电信网络和网络应用中找到。如:电话或蜂窝网络和点对点网络或大规模多人游戏。

注:分布式计算研究分布式系统。一个在分布式系统上运行的程序被称为分布式程序。

优点

  • 弹性 - 通过多台计算机,实施冗余,以确保单一故障不等于全系统故障
  • 资源/数据共享 - 资源可供多个用户使用
  • 速度 - 多台计算机比一台计算机快(通常)。
  • 可扩展性--更容易扩展

分布式系统:挑战、失败

分布式系统的挑战和失败是:

  • 异质性
  • 可扩展性
  • 开放性
  • 透明度
  • 并发性
  • 安全性
  • 失败处理

异质性

异质性是指在网络、编程语言、硬件、操作系统和软件实现方面出现的差异。例如,有不同的硬件设备、平板电脑、移动电话、计算机等。

由于异质性,一些挑战可能会出现。当程序用不同的语言编写或开发人员利用不同的实现方式(数据结构等)时,当计算机试图相互通信时就会出现问题。因此,商定并采用共同的标准来简化这一过程是很重要的。此外,当我们考虑移动代码--可以从一台计算机转移到另一台计算机的代码时,如果没有指定可执行文件以适应两台计算机的指令和规格,我们可能会遇到一些问题。

可扩展性

如果一个程序在其工作量增加时不需要重新设计以确保稳定性和性能的一致性,那么这个程序就是可扩展的。因此,一个程序(在我们的例子中是分布式系统)无论有10个节点还是100个节点,其性能都不应该有变化。

随着分布式系统的扩展,需要考虑几个因素:规模、地理和管理。与规模有关的问题是过载。过载指的是随着系统工作量的增加(用户数量的增加,资源消耗的增加等),系统的退化。其次,随着地理因素的影响,随着我们的分布式系统所包含的距离的增加,我们的通信的可靠性可能会被打破。此外,随着分布式系统规模的扩大,我们可能不得不在系统中实施控制;然而,这可能会演变成我们可以有效地称之为行政混乱的情况。

开放性

分布式系统的开放性是指系统的可扩展性和重新实施的能力。更具体地说,分布式系统的开放性可以通过三个特征来衡量:互操作性、可移植性和可扩展性,正如我们之前提到的。互操作性是指系统通过标准化在计算机之间有效地交换信息的能力,可移植性是指系统在不同的操作系统上正常运行的能力,可扩展性允许开发者在不损害功能的情况下自由增加新的功能或轻松地重新实现现有的功能。此外,开放的分布式系统实现了开放的接口,这也带来了许多挑战--在这种情况下,拥有定义明确的接口可能会使其本身成为挑战。

透明度

由于系统的复杂性,分布式系统可能会出现透明度的问题。在这种情况下,透明度是指分布式系统掩盖其复杂性的能力,并给人以单一系统的印象。而当我们讨论透明度时,我们也必须讨论到什么程度。

并发性

这讨论了资源的共享访问,这些资源必须提供给正确的进程。当多个进程试图同时访问相同的资源时,可能会出现问题,因此需要采取措施来确保系统中的任何操作都保持在一个稳定的状态;但同时执行的假象应该被保留下来。我们把这些预防措施称为并发控制。应实施并发控制,以确保进程以同步的方式执行。

安全性

安全性由三个关键部分组成:可用性、完整性和保密性。以类似的方式,认证和授权是最重要的--一个实体必须被可核查地认证为声称的实体,并且特权必须根据授权被适当地授予。

这些概念是相关的,可用性是指经过认证和授权的用户,完整性是指通过加密和其他方法进行保护,而保密性是指确保资源不会被无谓地披露或提供。

由于分布式系统与敏感和私人数据有关,安全在分布式系统中尤为重要。以支付和交易信息为例。

失败处理

像任何程序一样,失败是一个主要问题。然而,在分布式系统中,由于有这么多的进程和用户,失败的后果会更加严重。此外,由于分布式系统的性质,许多问题会出现。意外的边缘情况可能会出现在系统中,而系统并不具备这样的条件,但开发人员必须考虑到这一点。故障可能发生在软件、硬件和网络中;此外,故障可能是部分的,导致一些组件运作,而另一些则没有。然而,故障处理中最重要的部分是认识到不是每个故障都能被考虑到。因此,实施检测、监控和修复系统故障的过程是故障处理/管理中的一个核心特征。

通过OpenGenus的这篇文章,你一定对分布式系统中的挑战/故障有了深刻的认识。