分布式(计算机算法)

简介: 分布式(计算机算法)

以下概念来源于百度百科

分布式计算

分布式计算是近年提出的一种新的计算方式。所谓分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。分布式计算是一种计算方法,和集中式计算是相对的。随着计算技术的发展,有些应用需要非常巨大的计算能力才能完成,如采用集中式计算,需要耗费相当长的时间来完成。分布式计算将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率

分布式计算比起其它算法具有以下几个优点:

1、稀有资源可以共享;

2、通过分布式计算可以在多台计算机上平衡计算负载;

3、可以把程序放在最适合运行它的计算机上;

其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。

以上概念来源于百度百科

分布式

分布式是指将一个完整的系统按照业务功能拆分成一个个独立的子系统,每个子系统被称为“服务”,能够独立运行在Web容器中,并通过远程调用技术通信和协同操作。这些子系统分别部署在不同的服务器上(节点),解决高并发的问题,以提高系统的效率和可用性。分布式系统的主要好处包括增大系统容量、加强系统可用性、提高系统扩展性、改善团队协作流程以及加快开发和发布速度。分布式与集群的主要区别在于,分布式是将不同的业务模块或同一个业务模块的多个子业务部署在不同的服务器上,而集群则是将相同的业务部署在多台机器上以提高系统可用性。

分布式和集群

首先,从定义上看,分布式是将一个复杂的业务系统拆分成多个子业务系统,这些子系统被部署在不同的服务器上,通过网络连接并交换信息以协作完成一个业务。而集群则是将多个相同的子系统(或称为节点)部署在多台服务器上,这些服务器通常位于同一物理空间内,形成一个集合的群体,共同提供服务。

其次,在侧重点上,分布式更侧重于将任务或工作负载分解为多个子任务,并在多个计算节点上并行执行,以提高计算能力和处理能力。它常用于大规模数据处理、并行计算和分布式存储等场景。而集群则侧重于组织和管理多个节点,以提供整体性能的提升和容错性。集群常用于高性能计算、负载均衡和高可用性等场景。

此外,从工作方式上看,分布式系统是一种“并联”工作的方式,即多个节点各自处理不同的任务部分;而集群则更接近于“串联”工作,多个节点共同完成相同的任务,提供同一种服务。

最后,在性能和扩展性方面,集群在速度上可能更快一些,并且在相同规模下,集群的规模可能比分布式更大。然而,分布式在稳定性方面可能表现更好。

集群

分布式和集群的应用场景

       分布式应用场景

分布式的主要应用场景在于单台机器无法满足性能要求时,需要融合多个节点来协同完成任务。这种情况下,节点之间需要有交互,共同处理业务。一个典型的例子是分布式存储。当数据量变得非常庞大时,单台机器可能无法容纳所有的数据,这时就需要将数据拆分成多个部分,并存储在不同的节点上。每个节点存储部分数据,这样既可以扩大存储容量,又可以提高数据的访问速度。此外,对于非结构化数据(如静态文件、图片、PDF、小视频等)的存储,也常采用分布式文件系统。

       集群应用场景

集群的应用场景则更多地体现在分担请求压力和提高系统可用性方面。当业务流量非常大,单个服务器无法处理所有请求时,可以采用集群技术。通过将多台服务器集中在一起,共同承担业务负载,可以显著提高系统的处理能力和稳定性。此外,集群还具有高可用性特点,即当集群中某个节点发生故障时,其上的服务可以被其他节点接管,从而确保服务的连续性。常见的集群应用包括Web服务器集群、数据库集群等。

哪种技术更优、更快、更好呢

首先这种说法就是有问题的,每种技术的产生,都是有它的优缺点和使用场景的,不分技术的坏好,只谈技术的思想,我们要看的是他的设计思路,而不是考虑这个技术真不好用,好差劲,怎么会有这个推广出来。既然有这项技术,就说明他是可以被使用投入到生产中的,我们要做的是,学习这项技术的亮点来发散思维。(有点说多了,言归正传)

       性能

首先,在性能方面,集群通常比分布式具有更高的处理速度,因为集群将多台服务器集中在一起,共同处理相同的业务,从而提高了整体的处理能力。然而,分布式架构在处理大规模数据和复杂业务逻辑方面可能更具优势,因为它可以将任务拆分成多个子任务,并在多个计算节点上并行执行。

       稳定性

其次,在稳定性方面,分布式架构通常表现更好。由于分布式系统将不同的业务分布在不同的节点上,当一个节点发生故障时,其他节点可以继续运行,从而保证了系统的稳定性。此外,分布式架构的模块化特点也使得系统更加健壮,易于维护和扩展。

然而,集群在可靠性和高可用性方面也具有一定的优势。集群中的服务器可以通过负载均衡和容错机制来确保服务的连续性和稳定性。当某个节点出现故障时,集群可以自动将其排除,并将任务转移到其他健康的节点上。

至于哪种技术更优,这需要根据具体的应用场景和需求来评估。在某些情况下,可能需要结合使用分布式和集群技术,以充分利用它们的优势。分布式和集群技术各有其优点和适用场景。在选择技术时,应综合考虑业务需求、性能要求、稳定性需求等因素,以选择最适合的技术方案。


相关文章
|
6天前
|
算法 关系型数据库 MySQL
分布式唯一ID生成:深入理解Snowflake算法在Go中的实现
在分布式系统中,确保每个节点生成的 ID 唯一且高效至关重要。Snowflake 算法由 Twitter 开发,通过 64 位 long 型数字生成全局唯一 ID,包括 1 位标识位、41 位时间戳、10 位机器 ID 和 12 位序列号。该算法具备全局唯一性、递增性、高可用性和高性能,适用于高并发场景,如电商促销时的大量订单生成。本文介绍了使用 Go 语言的 `bwmarrin/snowflake` 和 `sony/sonyflake` 库实现 Snowflake 算法的方法。
18 1
分布式唯一ID生成:深入理解Snowflake算法在Go中的实现
|
1月前
|
人工智能 自然语言处理 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07(下)
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07(下)
20 2
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07(下)
|
1月前
|
机器学习/深度学习 人工智能 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-05(下)
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-05(下)
24 1
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-05(下)
|
17天前
|
存储 缓存 算法
分布式缓存有哪些常用的数据分片算法?
【10月更文挑战第25天】在实际应用中,需要根据具体的业务需求、数据特征以及系统的可扩展性要求等因素综合考虑,选择合适的数据分片算法,以实现分布式缓存的高效运行和数据的合理分布。
|
18天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
24天前
|
机器学习/深度学习 人工智能 算法
量子计算算法:超越经典计算机的边界
【10月更文挑战第30天】量子计算基于量子力学原理,通过量子比特和量子门实现超越经典计算机的计算能力。本文探讨量子计算的基本原理、核心算法及其在密码学、化学、优化问题和机器学习等领域的应用前景,并讨论当前面临的挑战与未来发展方向。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
46 2
|
1月前
|
存储 人工智能 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13(上)
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13(上)
35 2
|
1月前
|
传感器 自然语言处理 安全
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07(上)
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07(上)
41 2
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
29 1