1.什么是分布式系统?
分布式系统是独立计算机的集合,在用户看来是一个单一的连贯系统。
为了实现共同的目标,分布式系统中的计算机相互通信。分布式系统的计算机可能位于一个物理位置或分散在多个区域。分布式系统的主要好处是它可以在性能、可靠性和可用性方面优于单个计算机系统。
它涉及通过分布式计算和数据库在多个工作站之间共享资源和处理能力。分布式系统的关键组成部分是多个节点、通信网络和控制节点间通信的分布式中间件。
节点是相互通信的独立计算实体。通信网络充当节点之间交换信息的媒介。分布式系统中的分布式中间件是指分布式应用程序与底层网络基础设施之间的软件层,提供通信、协调和资源管理等服务,以实现高效、可靠的分布式计算。
通过跨多个节点分布工作负载和数据,创建分布式系统的体系结构以实现容错(在出现节点故障或网络问题时继续运行的能力)、可伸缩性和高可用性。
2.分布式系统如何工作?
要使分布式系统发挥作用,必须将任务分成更小的子任务,并分布在网络中的多个节点或计算机上。这些节点或计算机然后进行通信和协作以完成任务。
以下四个步骤简要概述了分布式系统的运行方式:
分散组件
分布式系统由分布在各种真实或虚拟位置的许多部分或节点组成。这些部分可以通过网络相互通信以实现单一目标。
沟通
分布式系统的组件可以使用各种协议和工具相互通信,包括 TCP/IP、HTTP 或消息队列。这些协议允许节点通过发送和接收消息或数据进行通信。
协调
为了使分布式系统的各个部分能够很好地协同工作,它们必须协调它们的动作。可以使用分布式算法、共识协议或分布式事务等多种机制来实现这种协调。
容错性
创建分布式系统时应考虑到容错性。这意味着它应该能够处理特定部分或节点的故障,而不会损害整个系统的性能或可用性。分布式系统采用冗余、复制或分区策略来实现容错。
在线搜索引擎是分布式系统的一个例子,因为它包含许多执行各种功能的节点,包括抓取网站、索引内容和处理用户请求。这些节点协作为用户提供快速有效的搜索结果。
区块链——一种安全透明地记录交易的去中心化账本——也是分布式系统的一个例子。它是分布式的,因为分类帐存储在网络中的多个节点上,每个节点都持有整个分类帐的副本,从而提高透明度、安全性和对故障或攻击的弹性。
3.分布式系统的主要特点是什么?
分布式系统用于许多应用程序,包括社交网络平台、云计算和在线零售。分布式系统的鲜明特征使它们从其他计算机系统中脱颖而出。
允许多个进程或线程同时执行的分布式系统的一个这样的属性是并发性。尽管此功能使系统更加有效,但它也会导致死锁等问题。
死锁是分布式系统中可能发生的一种情况,其中两个或多个进程被阻塞并且无法继续,因为每个进程都在等待另一个进程释放资源。由于协调跨多个节点同时运行的多个进程的固有复杂性,分布式系统中可能会发生死锁。
分布式系统的另一个关键特性是可扩展性。为了处理不断增长的工作负载并容纳更多用户,他们应该能够通过添加更多节点来横向扩展。容错对于分布式系统也很重要。它们必须能够承受单个节点或组件故障而不影响系统的整体性能。分布式系统的另一个特征是异构性,其中节点可能具有各种硬件、软件和网络配置。多样性可能使协作和沟通变得困难。
透明性是分布式系统的另一个关键特性。他们应该为消费者提供对网络资源和服务的透明访问,同时让他们不知道底层系统的复杂工作。分布式系统还必须优先考虑安全性。为了防止未经授权的访问、数据泄露和其他网络风险,在构建它们时必须牢记安全性。
分布式系统必须坚持的另一个品质是一致性。面对并发更新和故障,他们必须保持多个节点之间的数据一致性。性能对于分布式系统至关重要。他们必须能够在可接受的水平上执行,尽管传输成本增加以及分配带来的其他复杂性。
4.分布式系统有哪些类型?
存在许多类型和设计的分布式系统,每一种都是为了解决特定的需求和困难而创建的。应用程序的要求、可扩展性、容错性、安全性和其他因素都在架构选择中发挥作用。
一种类型的分布式系统是客户端-服务器架构。在这种方法中,服务器接收来自客户端的请求,处理它们然后回复。Web 应用程序经常采用这种设计,其中 Web 浏览器充当客户端,服务器托管网页。
点对点(P2P)架构是另一种分布式系统。该架构中的所有节点或对等点都是平等的,可以同时充当客户端和服务器。每个对等点都可以向其他对等点请求和提供资源。像 BitTorrent 这样的文件共享应用程序就采用了这种架构。
相关:什么是 BitTorrent (BTTC):初学者指南
分布式数据库系统是分布式系统的第三类。在这种架构下,数据库分布在多台计算机或节点之间,它们共同工作以存储和管理数据。需要高可用性和可扩展性的大型应用程序,包括社交媒体平台和电子商务网站,经常采用这种设计。
分布式计算系统是另一种分布式系统,其中多台计算机协作解决具有挑战性的计算问题。在科学研究中,当使用大量计算机分析大数据集或模拟复杂过程时,经常使用这种架构。
混合分布式系统,融合了很多架构或概念,也属于分布式系统。例如,分布式系统可能使用 P2P 设计来进行文件共享,并使用客户端-服务器架构来进行 Web 请求。
5.分布式系统的优点和缺点是什么?
分布式系统提供了许多优势,包括可伸缩性、容错性和改进的性能。然而,它们也有缺点,包括协调挑战、复杂性和专业技能要求。
与传统的集中式系统相比,分布式系统具有多项优势。一个重要的优势是可扩展性。为了管理不断增长的工作负载并为更多用户提供服务,分布式系统只需添加更多节点即可。由于其可扩展性,分布式系统可以在不影响性能的情况下支持大流量和高可用性。
容错是分布式系统的另一个好处。即使一个节点发生故障,系统也可以继续工作,因为其他节点可以接管其任务。因此,分布式系统比集中式系统更不容易受到硬件或软件故障的影响。通过使计算能够在多个节点之间进行拆分,分布式系统还可以加快吞吐量并减少处理时间。
然而,分布式系统有一些缺点。例如,协调通信并确保所有节点一致地理解系统可能很困难,因为分布式系统包含多个可能在地理上分散的节点。这可能会导致并发性和一致性问题。
复杂性是分布式系统的另一个缺点。由于其固有的复杂性,分布式系统有时比集中管理的系统更难维护并且具有更多的安全漏洞。分布式系统的设计和维护可能还需要特定的知识和能力,这会增加成本和复杂性。
6.分布式系统的未来是什么?
随着技术的不断进步,分布式系统的未来看起来很有希望。集群计算和网格计算是两种可能在分布式系统的未来发挥重要作用的新兴技术。
集群计算涉及使用多台互连的计算机作为一个系统一起工作。除了增强的处理能力和容错能力外,该技术还具有更好的可扩展性。集群计算变得越来越便宜,并且随着硬件成本的持续下降,预计将更频繁地用于高性能计算应用程序。
集群计算可用于大数据处理。随着生成的数据量呈指数增长,可以使用集群计算更有效地处理和分析这些数据。
同样,由于人工智能和机器学习等领域需要大量的计算能力来训练模型和处理数据,因此可以使用集群计算来加速这些过程并提高准确性。
网格计算使用地理分布的资源作为一个系统协同工作。有了这项技术,企业可以集中资源并共同完成使用传统计算机技术难以或无法完成的复杂项目。
例如,在发生自然灾害时,网格计算可以迅速调动世界各地的资源来协助应对工作。为了增加获得奖励的机会,比特币矿工可以使用网格计算将他们的计算资源与全球其他矿工的计算资源连接起来。
与单独工作的矿工不同,这提供了一个分布式处理能力网络,可以合作更快、更有效地解决数学问题。随着云计算的发展,预计网格计算对于科学研究、数据处理和其他大型计算机应用将变得更加重要。