分布式(计算机算法)

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

以下概念来源于百度百科

分布式计算

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

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

1、稀有资源可以共享;

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

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

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

以上概念来源于百度百科

分布式

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

分布式和集群

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

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

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

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

集群

分布式和集群的应用场景

       分布式应用场景

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

       集群应用场景

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

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

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

       性能

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

       稳定性

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

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

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


相关文章
|
15天前
|
消息中间件 算法 分布式数据库
Raft算法:分布式一致性领域的璀璨明珠
【4月更文挑战第21天】Raft算法是分布式一致性领域的明星,通过领导者选举、日志复制和安全性解决一致性问题。它将复杂问题简化,角色包括领导者、跟随者和候选者。领导者负责日志复制,确保多数节点同步。实现细节涉及超时机制、日志压缩和网络分区处理。广泛应用于分布式数据库、存储系统和消息队列,如Etcd、TiKV。其简洁高效的特点使其在分布式系统中备受青睐。
|
15天前
|
算法 分布式数据库
Paxos算法:分布式一致性的基石
【4月更文挑战第21天】Paxos算法是分布式一致性基础,由Leslie Lamport提出,包含准备和提交阶段,保证安全性和活性。通过提案编号、接受者和学习者实现,广泛应用于分布式数据库、锁和配置管理。其简单、高效、容错性强,影响了后续如Raft等算法,是理解分布式系统一致性关键。
C4.
|
15天前
|
存储 算法 C语言
关于c语言用计算机语言表示算法
关于c语言用计算机语言表示算法
C4.
19 1
|
6天前
|
算法 搜索推荐 C语言
用计算机语言表示算法
用计算机语言表示算法
15 1
|
6天前
|
算法 搜索推荐 C语言
用流程图表示计算机算法
用流程图表示计算机算法
17 1
|
3天前
|
算法 程序员 分布式数据库
分布式一致性必备:一文读懂Raft算法
Raft算法是一种用于分布式系统中复制日志一致性管理的算法。它通过选举领导者来协调日志复制,确保所有节点数据一致。算法包括心跳机制、选举过程、日志复制和一致性保证。当领导者失效时,节点会重新选举,保证高可用性。Raft易于理解和实现,提供强一致性,常用于分布式数据库和协调服务。作者小米分享了相关知识,鼓励对分布式系统感兴趣的读者进一步探索。
30 0
|
6天前
|
算法 C语言 索引
计算机简单算法
计算机简单算法
7 1
|
6天前
|
算法 C语言
计算机简单算法举例
计算机简单算法举例
5 1
|
6天前
|
自然语言处理 算法 搜索推荐
用自然语言表示计算机算法
用自然语言表示计算机算法
16 1
|
15天前
|
算法 Go 分布式数据库
构建高可用的分布式数据库集群:使用Go语言与Raft共识算法
随着数据量的爆炸式增长,单一数据库服务器已难以满足高可用性和可扩展性的需求。在本文中,我们将探讨如何使用Go语言结合Raft共识算法来构建一个高可用的分布式数据库集群。我们不仅会介绍Raft算法的基本原理,还会详细阐述如何利用Go语言的并发特性和网络编程能力来实现这一目标。此外,我们还将分析构建过程中可能遇到的挑战和解决方案,为读者提供一个完整的实践指南。