跳至主要内容

什么是分布式架构?

分布式架构是一种计算系统,其组件存在于多个计算资源上,并且通常位于不同的物理位置。

什么是分布式架构?

分布式架构是一种计算系统,其组件存在于多个计算资源上,并且通常位于不同的物理位置。分布式架构可以提供增强的可扩展性、可靠性和成本效益,为用户提供更快的访问速度。尽管您可以选择将组件放在同一位置,但基于云的计算支持分布式架构。不同的架构模式和最佳实践可帮助组织运行、发展分布式架构并从中受益。

分布式架构的关键组件是什么?

分布式架构系统由几个相互协作的独立组件组成,通过网络互连。以下是分布式系统中使用的主要组件及其贡献方式。

协同工作的独立组件

根据架构的具体用途,系统中的独立组件具有不同的职责。例如,可能有处理客户端请求的服务器、属于客户端-服务器架构一部分的客户机、数据库、对象存储、其他服务或促进通信的中间件。

有一系列不同的独立组件,每个组件在系统中都有特定的任务。由于它们是独立的组件,因此工程师可以在不影响整个系统的情况下更新、扩展或更改每个组件。不同的组件可以通过虚拟机或容器运行不同的操作系统,而不会发生冲突。这些组件的分布性质还意味着它们可以为存储和处理等功能提供更高程度的容错能力。

这些组件既可以运行在物理上分布式的硬件上,也可以在虚拟化场景下运行于逻辑上分布式的计算环境中。

组件间通信

通信系统促进了独立组件之间的数据交换,将其互连,并使其即便位于不同位置也能协调动作。允许通信的一种策略是消息传递,即组件相互发送消息,以通知更改、请求其他服务或交换数据。

组件间通信的其他中心机制包括允许程序在其他远程组件上执行功能的远程过程调用(RPC)、RESTful API、WebSocket、消息队列,以及用于基于套接字进行通信的 TCP 和 UDP 协议。预定义的分布式数据结构有助于构建分布式系统。

流量管理策略

流量管理组件是指任何基础设施系统或策略,用于优化传入的用户请求并在更广泛的节点系统中均衡工作负载。例如,负载均衡器将传入的请求分布在不同的服务器上,确保没有一个节点被请求淹没,并且系统性能保持稳定。

分布式系统依靠流量管理来帮助多台服务器管理不同的工作负载,而不会出现性能问题。内容分发网络(CDN)和 API 网关是另外两种有助于流量和数据管理的策略。

监控系统

分布式计算系统可以使用监控硬件和软件组件来跟踪生态系统的运行状况和性能。监控和日志记录系统将检查节点的通信模式和有关性能的相关信息,如果出现问题,工程师可以使用这些信息进行调试和故障排除。

这些日志记录系统用于分析,以识别潜在的瓶颈或可扩展性问题。某些系统可能会使用负载测试来定位需要改进性能的区域。监控有助于观测系统的架构方面并发出警报,确保一切按预期运行,或在出现问题时发出警报。

分布式架构的主要优势有哪些?

分布式系统本质上并不比集中式系统好。只有在特定情况下,分布式方法才会比中央服务器系统更具优势。以下是组织在使用分布式计算时可以体验到的一些优势。

可扩展性

分布式系统可以通过添加更多组件来访问更多的计算、存储和处理容量,从而进行水平扩缩。这些组件中的每一个都为系统带来了更多的计算或存储资源,使组织无需进行全面的架构重新设计即可扩展其总容量。水平扩缩对于扩展计算和处理能力特别有效。

水平扩缩可以随着需求的增长而扩展,并且比垂直扩缩更容易实现,后者需要升级现有系统。

更快的用户访问速度

在许多不同的地方使用组件的分布式系统的另一个优势是,最终用户可以体验到更低的延迟和更快的连接。流量管理系统(例如 CDN)允许组件从最近的节点向终端设备用户界面传送内容,从而减少用户加载内容所需的总时间。

其他策略,例如负载均衡,有助于保持用户访问的速度尽可能快而且可靠。

可靠性

在分布式系统中,如果一个节点出现故障,您可以对其进行配置,以便其他节点使用更多资源来弥补差异。因此,分布式系统具有更高的容错能力,可最大限度地减少总体停机时间并提高服务器可用性。当专为容错能力而设计时,分布式环境中不存在单点故障。

组件还可以复制来自主节点的信息,并通过点对点共享将其传播到所有次要组件,这意味着在发生意外中断时会备份重要数据或资源。数据分区或分片还有助于将相同数据分配到不同的组件,从而帮助增强系统的韧性。

成本优化

集中式系统涉及在一个单一位置维护一个不断增长的硬件中心。管理一组集中式服务器很快就会变得昂贵,而分布式系统可能会提供更易于访问的按实际使用量付费模型或动态定价,进而使成本按实际用量扩缩。

特别是在选择云计算系统时,有许多方法可以降低成本,同时最大限度地提高您从这些隔离组件中获得的优势。

分布式系统有哪些架构模式?

分布式系统模式是一种架构方法,可以更好地让计算系统或软件应用程序具备扩展能力,并应对更高的工作负载需求。以下是分布式系统中一些最常见的模式。

微服务架构

单片架构与模块化架构

单片结构通过耦合过程运行其系统,这意味着对一个区域的需求激增意味着整个系统必须扩展才能满足该需求。在微服务架构中,系统的每个部分都是独立的组件。这些组件使用轻量级 API 相互通信。

当微服务架构的特定部分需求激增时,该部分可以独立扩展以满足该需求,而不会影响其他组件。这也意味着各组织可以相互独立地开发、更新和扩展特定功能。

事件驱动型架构

事件驱动型架构使用单个事件(状态变化或更新)来触发隔离组件之间的通信。两个解耦的服务可以通过这些事件相互通信。事件产生器发布一个事件,该事件被传输到事件路由器,事件路由器将事件推送给使用器。

虽然这有助于通信,但事件驱动型系统的组件彼此隔离。与微服务一样,这意味着组织可以完全独立地扩展、更新和部署组件,从而为系统提供敏捷性和可扩展性。

无服务器架构

无服务器、事件驱动型架构

无服务器架构是一种无需管理底层基础设施即可创建和运行应用程序的方法。在无服务器架构中,第三方服务提供商负责服务器管理,这意味着您无需手动扩展、预置或维护分布式数据库或计算资源。无服务器架构使您的组织可以专注于业务逻辑和开发,而不是系统维护。

无服务器架构与分布式系统有关,因为服务器通过异步通信协议进行通信,与分布式数据库和其他持久层集成以保持一致性。这种模块化方法还允许组织与服务导向型架构(SOA)保持一致,从而形成灵活、可扩展的分布式系统,这些系统可以随着您的组织而发展。

服务网格

服务网格是一个基础设施和软件层,可简化不同微服务之间的通信,以实现数据一致性。特别是在大规模的分布式计算系统中,可能有成千上万个单独的微服务需要相互通信。服务网格处理这些服务之间的所有通信,为系统提供服务级别的可观测性和控制。

由于分布式系统由多个服务组成,因此服务网格为集中定义策略并将其部署到集群中的所有联网计算机上提供了一种有效的方法。服务网格有助于改善更广泛的分布式系统中,从流量监控、负载均衡到安全和请求镜像的所有方面。

分布式计算有哪些最佳实践?

以下是构建和管理有效分布式系统的一些最佳实践。

使用零信任安全架构

采用零信任安全架构对每个内部和外部用户与服务请求进行验证和身份验证,有助于减少未经授权访问的可能性。对于分布式系统,这可以减少系统的攻击面,就像持续验证用户账户、应用程序和数据存储组件请求一样。

记录依赖项

分布式系统可能会快速增长,从而增加其攻击面,并使有效监控这种庞大的架构变得更加困难。组织必须记录单个服务和数据流之间的依赖项,从而创建活动系统的地图。

对分布式系统的高度可见性将改善安全管理,因为安全专家可以确定需要改进的领域。

对架构进行风险评测

定期进行风险评测,以便识别分布式系统中的任何潜在缺陷。这些评测可以帮助识别任何架构缺陷,例如不受监控的 API 或可能给您的组织带来问题的单区域依赖项。您还可以进行压力测试和故障测试,以观测分布式系统的响应情况。

如果可能,除了架构测试之外,还要进行风险评测,包括合规性、隐私和数据驻留方面的考虑因素。

尽可能使用异步通信

当多个不同的网络协同工作时,I/O 和网络开销会迅速增加。在分布式系统上转向异步通信,为解决这种流量激增提供了一种机制,允许服务独立通信。异步方法可以提高响应能力并减轻系统的负担。您可以使用消息队列和发布-订阅模型,开始使用这种形式的通信。

为重要服务和可用性内置冗余功能

为系统建立冗余有助于确保分布式系统的可用性。将信息或系统从主组件复制并分发到不同区域的辅助组件,即使发生区域节点停机,也能提供连续性。

系统中的冗余可提供高可用性,有助于确保组件之间的一致性,而且有助于实现更灵活的分布式系统架构。

对服务使用运行状况检查

监控分布式系统的性能、处理能力的差异以及数据处理和资源共享的瓶颈,使您能够诊断系统中的问题。这些检查有助于识别任何操作问题,使您能够修复问题或创建解决方案,进而最大限度地减少其影响。

对服务的运行状况检查也可以集成到自动修复过程中,如果节点表现不佳,则会启动某些修复措施。这些策略有助于确保您的系统始终按应有的方式运行。

AWS 如何帮助您构建云计算分布式架构?

Amazon Web Services 的一系列云服务专为可组合的分布式架构而构建。我们的全球地理区域和可用区允许您构建和扩展分布式基础设施和应用程序。帮助您构建分布式系统的一些关键服务包括:

  • Amazon DynamoDB 全局表是一个适用于全球分布式数据库系统的多区域、多活动数据库,可用性高达 99.999%,具备极强的数据库韧性。
  • Amazon Elastic Container Service 是一项完全托管的容器编排服务,使团队能够构建、管理和运行分布式容器化工作负载,而无需复杂的基础设施管理。与 Amazon Elastic Kubernetes Service 配合使用,可在任何地方构建、运行和扩展分布式、生产就绪型应用程序。
  • Amazon EventBridge 允许您通过跨分布式系统的点对点集成,轻松构建松耦合的事件驱动型架构。
  • AWS Step Functions 是一项可视化的工作流程服务,可帮助开发人员使用 AWS 服务来构建分布式应用程序、自动化流程、编排微服务以及创建数据和机器学习(ML)管线。
  • Amazon X-Ray 是一项监控服务,允许您汇总来自 AWS 资源的数据,确定分布式系统的瓶颈并提高应用程序性能。

立即创建免费账户,开始在 AWS 上创建分布式架构。

Browse all cloud computing concepts

Browse all cloud computing concepts content here:

正在加载
正在加载
正在加载
正在加载
正在加载

Did you find what you were looking for today?

Let us know so we can improve the quality of the content on our pages