分布式(计算机算法)

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

以下概念来源于百度百科

分布式计算

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

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

1、稀有资源可以共享;

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

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

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

以上概念来源于百度百科

分布式

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

分布式和集群

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

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

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

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

集群

分布式和集群的应用场景

       分布式应用场景

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

       集群应用场景

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

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

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

       性能

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

       稳定性

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

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

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


相关文章
C4.
|
2月前
|
存储 算法 C语言
关于c语言用计算机语言表示算法
关于c语言用计算机语言表示算法
C4.
17 1
|
8月前
|
存储 算法 数据可视化
分布式理论和一致性算法
分布式系统是一个硬件或软件组成分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统
101 0
|
4月前
|
缓存 算法 NoSQL
【分布式详解】一致性算法、全局唯一ID、分布式锁、分布式事务、 分布式缓存、分布式任务、分布式会话
分布式系统通过副本控制协议,使得从系统外部读取系统内部各个副本的数据在一定的约束条件下相同,称之为副本一致性(consistency)。副本一致性是针对分布式系统而言的,不是针对某一个副本而言。强一致性(strong consistency):任何时刻任何用户或节点都可以读到最近一次成功更新的副本数据。强一致性是程度最高的一致性要求,也是实践中最难以实现的一致性。单调一致性(monotonic consistency):任何时刻,任何用户一旦读到某个数据在某次更新后的值,这个用户不会再读到比这个值更旧的值。
406 0
|
2月前
|
缓存 算法 关系型数据库
深度思考:雪花算法snowflake分布式id生成原理详解
雪花算法snowflake是一种优秀的分布式ID生成方案,其优点突出:它能生成全局唯一且递增的ID,确保了数据的一致性和准确性;同时,该算法灵活性强,可自定义各部分bit位,满足不同业务场景的需求;此外,雪花算法生成ID的速度快,效率高,能有效应对高并发场景,是分布式系统中不可或缺的组件。
深度思考:雪花算法snowflake分布式id生成原理详解
|
2月前
|
自然语言处理 算法 搜索推荐
用计算机语言表示算法
在计算机科学中,算法是解决问题的核心步骤和方法的描述。然而,算法本身并不直接执行;它们需要被转换成计算机可以理解和执行的指令,这通常是通过编写代码来实现的。不同的计算机语言提供了不同的方式来表示和实现算法。本文将讨论如何使用计算机语言来表示算法,并通过一个具体示例来展示这个过程。
14 0
|
2月前
|
算法 Java 数据中心
分布式ID生成系统之雪花算法详解
在当今的云计算和微服务架构盛行的时代,分布式系统已成为软件开发的重要组成部分。随着系统规模的扩大和业务的复杂化,对数据一致性和唯一性的要求也越来越高,尤其是在全局唯一标识符(ID)的生成上。因此,分布式ID生成系统应运而生,成为保证数据唯一性和提高系统可扩展性的关键技术之一。雪花算法(Snowflake)是Twitter开源的一种算法,用于生成64位的全局唯一ID,非常适用于分布式系统中生成唯一标识符。下面我们将深入探讨雪花算法的原理、结构和实现方式。
108 2
 分布式ID生成系统之雪花算法详解
|
3月前
|
存储 分布式计算 负载均衡
浅谈分布式共识算法概念与演进
浅谈分布式共识算法概念与演进
43 0
|
3月前
|
分布式计算 算法
分布式系统设计之共识算法—2PC、3PC、 Paxos
分布式系统设计之共识算法—2PC、3PC、 Paxos
44 1
|
7月前
|
缓存 算法 架构师
阿里P9架构师终于把毕生心血而成的分布式高可用算法笔记开源了
说在前面的话 分布式系统无处不在。 一台计算机内部多个互联的处理器组成了一个分布式系统,它们通过“一致性缓存”算法使每个处理器核心看到相同的数据。近三十年来,随着互联网的发展,越来越多的互联网后台系统采用计算机集群的方式来应对海量请求和数据的需求,这个计算机集群也是分布式系统。 为了简化分布式系统的开发,出现了很多为开发者提供分布式框架的开源项目,例如Apache基金会旗下的ZooKeeper项目就是一个应用广泛的分布式框架。 同时,国内也有很多关于如何使用这些分布式框架来搭建应用的书籍,它们极大地推动了分布式系统在国内的应用。我们不仅要知道如何使用这些现成的分布式框架来搭建应用,而且应
|
4月前
|
存储 算法 NoSQL
分布式一致性与共识算法(一)
分布式一致性与共识算法(一)
62 0