分布式(计算机算法)

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

以下概念来源于百度百科

分布式计算

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

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

1、稀有资源可以共享;

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

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

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

以上概念来源于百度百科

分布式

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

分布式和集群

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

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

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

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

集群

分布式和集群的应用场景

       分布式应用场景

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

       集群应用场景

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

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

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

       性能

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

       稳定性

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

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

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


相关文章
|
24天前
|
负载均衡 算法 调度
基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)
基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)
109 11
|
1月前
|
算法 安全 Python
【顶级EI复现】分布式电源选址定容的多目标优化算法(Matlab代码实现)
【顶级EI复现】分布式电源选址定容的多目标优化算法(Matlab代码实现)
|
1月前
|
传感器 机器学习/深度学习 算法
【无人机编队】基于麻雀算法分布式无人机群自适应航迹规划和碰撞检测研究(Matlab代码实现)
【无人机编队】基于麻雀算法分布式无人机群自适应航迹规划和碰撞检测研究(Matlab代码实现)
|
26天前
|
并行计算 算法 调度
基于串行并行ADMM算法的主从配电网分布式优化控制研究(Matlab代码实现)
基于串行并行ADMM算法的主从配电网分布式优化控制研究(Matlab代码实现)
|
27天前
|
并行计算 算法 安全
【ADMM、碳排放】基于分布式ADMM算法的考虑碳排放交易的电力系统优化调度研究【IEEE6节点、IEEE30节点、IEEE118节点】(Matlab代码实现)
【ADMM、碳排放】基于分布式ADMM算法的考虑碳排放交易的电力系统优化调度研究【IEEE6节点、IEEE30节点、IEEE118节点】(Matlab代码实现)
|
7月前
|
存储 负载均衡 算法
基于 C++ 语言的迪杰斯特拉算法在局域网计算机管理中的应用剖析
在局域网计算机管理中,迪杰斯特拉算法用于优化网络路径、分配资源和定位故障节点,确保高效稳定的网络环境。该算法通过计算最短路径,提升数据传输速率与稳定性,实现负载均衡并快速排除故障。C++代码示例展示了其在网络模拟中的应用,为企业信息化建设提供有力支持。
190 15
|
2月前
|
运维 算法 5G
【优化管理】基于事件触发的弹性分布式能源管理算法研究(Matlab代码实现)
【优化管理】基于事件触发的弹性分布式能源管理算法研究(Matlab代码实现)
|
5月前
|
NoSQL 算法 安全
分布式锁—1.原理算法和使用建议
本文主要探讨了Redis分布式锁的八大问题,包括非原子操作、忘记释放锁、释放其他线程的锁、加锁失败处理、锁重入问题、锁竞争问题、锁超时失效及主从复制问题,并提供了相应的优化措施。接着分析了Redis的RedLock算法,讨论其优缺点以及分布式专家Martin对其的质疑。此外,文章对比了基于Redis和Zookeeper(zk)的分布式锁实现原理,包括获取与释放锁的具体流程。最后总结了两种分布式锁的适用场景及使用建议,指出Redis分布式锁虽有性能优势但模型不够健壮,而zk分布式锁更稳定但部署成本较高。实际应用中需根据业务需求权衡选择。
|
8月前
|
监控 网络协议 算法
基于问题“如何监控局域网内的电脑”——Node.js 的 ARP 扫描算法实现局域网内计算机监控的技术探究
在网络管理与安全领域,监控局域网内计算机至关重要。本文探讨基于Node.js的ARP扫描算法,通过获取IP和MAC地址实现有效监控。使用`arp`库安装(`npm install arp`)并编写代码,可定期扫描并对比设备列表,判断设备上线和下线状态。此技术适用于企业网络管理和家庭网络安全防护,未来有望进一步提升效率与准确性。
260 8
|
8月前
|
运维 NoSQL 算法
【📕分布式锁通关指南 04】redis分布式锁的细节问题以及RedLock算法原理
本文深入探讨了基于Redis实现分布式锁时遇到的细节问题及解决方案。首先,针对锁续期问题,提出了通过独立服务、获取锁进程自己续期和异步线程三种方式,并详细介绍了如何利用Lua脚本和守护线程实现自动续期。接着,解决了锁阻塞问题,引入了带超时时间的`tryLock`机制,确保在高并发场景下不会无限等待锁。最后,作为知识扩展,讲解了RedLock算法原理及其在实际业务中的局限性。文章强调,在并发量不高的场景中手写分布式锁可行,但推荐使用更成熟的Redisson框架来实现分布式锁,以保证系统的稳定性和可靠性。
379 0
【📕分布式锁通关指南 04】redis分布式锁的细节问题以及RedLock算法原理

热门文章

最新文章