什么是分布式系统?快速介绍
  w5drKdEZCZdz 2023年12月22日 15 0

这是关于分布式系统的简介,介绍了分布式系统的定义、优势、设计问题、云计算与分布式系统的比较以及一些实际应用的文章。以下是该文章的中文翻译:

分布式系统介绍

随着最近技术变革和进步,分布式系统变得越来越受欢迎。许多顶级公司已经创建了复杂的分布式系统,以处理数十亿的请求并在不停机的情况下进行升级。

分布式设计可能看起来令人生畏且难以构建,但在2021年,为了适应指数级别的扩展,它们变得更加重要。在开始构建时,留出基本的、高可用性和可扩展的分布式系统空间非常重要。

在涉及分布式系统时有很多要考虑的内容。因此,今天我们以简单的方式介绍分布式系统。我们将解释不同的类别、设计问题和需要考虑的因素。

学习现代系统设计学习如何在实际中设计可扩展的系统。通过掌握现代系统设计的构建块,培养关键的系统设计技能,并通过掌握现代系统设计的建设块来应对系统设计面试。

什么是分布式系统?

在基本层面上,[分布式系统]是一组计算机,它们共同工作以形成最终用户的单一计算机。所有这些分布式机器都有一个共享的状态并且可以同时运行。

它们能够独立故障而不会损坏整个系统,就像微服务一样。这些相互依赖的自治计算机通过网络连接在一起,以轻松共享信息、通信和交换信息。

注意: 分布式系统必须具有共享网络以连接其组件,这可以通过IP地址或甚至物理电缆连接。

与传统的存储在单一机器上的数据库不同,在分布式系统中,用户必须能够与任何机器通信,而不知道它只是一个机器。今天的大多数应用程序都使用某种形式的分布式数据库,并且必须考虑它们的同质性异质性特性。

在同质分布式数据库中,每个系统共享数据模型和数据库管理系统以及数据模型。通常,通过添加节点来管理这些系统更容易。另一方面,异质数据库允许使用网关在节点之间翻译数据,从而使用多种数据模型或不同的数据库管理系统。

一般来说,有三种具有以下目标的分布式计算系统:

  • **分布式信息系统:**通过多种通信模型在不同服务器之间分发信息
  • **分布式普适系统:**使用嵌入式计算设备(例如心电监护仪、传感器、移动设备)
  • **分布式计算系统:**网络中的计算机通过消息传递进行通信

注意: 分布式系统的一个重要部分是CAP定理,它规定分布式数据存储不能同时具有一致性、可用性和分区容忍性。

分散vs分布

关于分散系统与分布系统之间的区别存在很多争议。从技术层面上说,分散实际上是分布的,但通常情况下,分散系统不由单一来源拥有

管理分散系统更加困难,因为您无法管理所有参与者,不像分布式单一课程设计,其中一个团队/公司拥有所有节点。

分布式系统的优势

部署和维护分布式系统可能具有挑战性,但这种设计也有许多优势。让我们看一下其中的一些优势。

  • 可扩展性: 分布式系统允许您横向扩展,以便应对更多的流量。
  • 模块化增长: 几乎没有上限,您可以扩

展多少。

  • 容错性: 分布式系统比单一机器更容错。
  • 经济高效: 初始成本高于传统系统,但由于其可扩展性,它们很快变得更具成本效益
  • 低延迟: 用户可以在多个位置拥有节点,因此流量将命中最近的节点
  • 效率: 分布式系统将复杂的数据分解成较小的部分
  • 并行性: 分布式系统可以设计为并行性,其中多个处理器将复杂问题分解为部分

小部件

可扩展性是分布式系统的最大优势。横向扩展意味着将更多的服务器添加到资源池中。纵向扩展意味着通过向现有服务器添加更多功率(CPU、RAM、存储等)来进行扩展。

横向扩展更容易动态扩展,而纵向扩展仅限于单个服务器的容量。

横向扩展的良好示例是Cassandra和MongoDB。它们通过添加更多的机器轻松实现横向扩展。纵向扩展的一个例子是MySQL,因为您可以通过从较小的机器切换到较大的机器来进行扩展。

保持学习进行中。

学习如何构建复杂的可扩展系统,而无需浏览视频或文档。Educative的基于文本的课程易于浏览,并配有实时编码环境,使学习变得快速而高效。

Grokking Modern System Design for Software Engineers & Managers

分布式系统的设计问题

尽管分布式系统有许多优势,但也很重要注意可能出现的设计问题。我们在下面总结了主要的设计考虑因素。

  • 故障处理: 在分布式系统中,由于一些组件失败而其他组件继续运行,故障处理可能会变得困难。这通常可以作为防止大规模故障的优势,但在故障排除和调试时也会导致更复杂的问题。
  • 并发性: 当多个客户端尝试同时访问共享资源时,可能会出现常见问题。您必须确保在并发环境中所有资源都是安全的。
  • 安全问题: 在分布式计算系统中,数据安全性和共享的风险增加。网络必须受到保护,并且用户必须能够在多个位置安全地访问复制的数据。
  • 较高的初始基础设施成本: 分布式系统的初始部署成本可能高于单一系统。这种定价包括基本网络设置问题,如传输、高负载和信息丢失。

分布式系统不容易启动和运行,并且通常这种强大的技术对于许多系统来说过于“过度”了。在不同地点分布数据以确保在意外情况下满足各种要求是很具有挑战性的。

同样,在分布在多个地点的系统中检测错误更加困难。

云计算vs分布式系统

云计算和分布式系统是不同的,但它们使用类似的概念。分布式计算使用分布式系统通过在许多机器上分配任务来实现。另一方面,云计算使用网络托管服务器进行存储、处理、数据管理。

分布式计算旨在创建协作资源共享,并提供大小和地理可扩展性。云计算是关于使用透明性、监控和安全性提供按需环境

与分布式系统相比,云计算提供以下优势:

  • 成本效益
  • 访问全球市场
  • 封装的变更管理
  • 在互联网上访问存储、服务器和数据库

然而,与分布式计算相比,云计算可能不够灵活,因为您依赖其他服务和技术来构建系统。这使您整体上拥有较少的控制权。

像负载平衡、复制、自动缩放和自动备份等优先事项在云计算中变得容易。云构建工具,如DockerAmazon Web Services (AWS)Google Cloud Services或Azure,使快速创建这些系统成为可能,因此许多团队选择在这些技术旁边构建分布式系统。

分布式系统的实例

分布式系统在各种领域都有用途,从电子银行系统到传感器网络再到多人在线游戏。许多组织利用分布式系统来支持内容交付网络服务。

医疗保健行业,分布式系统被用于存储、访问和远程医疗。在金融和商业领域,许多在线购物网站使用分布式系统进行在线支付或金融交易信息的传播系统。

分布式系统还用于交通运输,例如在全球定位系统(GPS)、路线规划系统和交通管理系统中。蜂窝网络也是分布式网络系统的例子,因为它们涉及基站。

谷歌利用复杂而先进的分布式系统基础架构来支持其搜索功能。有人说它目前是最复杂的分布式系统之一。

接下来学什么

现在,您应该对分布式系统的工作原理以及为什么应该考虑构建这种架构有了很好的了解。这些系统对于未来的扩展至关重要。还有很多需要学习的内容。接下来,您可以查看以下主题:

  • 微服务和应用程序
  • 负载均衡和缓存
  • 为系统设计数据库

最终,您将了解在架构Web应用程序和微服务架构时涉及的概念、组件和技术权衡。您将学会在面试环境中自信地处理和解决系统设计问题。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月22日 0

暂无评论

推荐阅读
w5drKdEZCZdz