大家好,关于集中与分散、集群与分布的区别与联系很多朋友都还不太明白,今天小编就来为大家分享关于的知识,希望对各位有所帮助!
集群与分布式的区别与联系
首先我们来谈谈聚类和分布。这两个概念是最容易混淆的。我们先看一下网上对这两个概念的基本解释如下:
对于集群来说,当单个节点的性能不足时,可以组合多个节点来共同满足外部业务需求。对于分布式来说,当单个节点的性能无法提升时,将业务需求分解为多个子服务,然后将每个子服务部署到不同的节点上。
集群一般强调多台服务器集中放置,易于统一管理;而分布则没有具体要求。无论放置在哪里,只需要通过网络连接即可。
关于看知乎有一个形象的比喻:
以前,这家小餐馆只有一名厨师,负责切菜、洗菜、备料、做饭。后来,顾客多了,厨房忙不过来,就雇了另一位厨师。两位厨师都能烹制相同的菜肴。两位厨师之间的关系是一团的。为了让厨师能够专心烹饪,让菜品更加完美,聘请了配菜师负责切菜、备菜、备料。厨师和配菜师之间的关系是分散的,甚至一个配菜师也忙不过来。我聘请了一位酸面团厨师,这两位酸面团厨师之间是集群关系。
事实上,你会发现往往有两种方式可以同时满足业务需求。不仅需要考虑业务需求本身的分解,还需要考虑分解后的子业务并提供多个节点组成集群提供能力。所以你会看到另一个术语,分布式集群的概念。
分布式集群不仅体现了业务需求的拆分,也体现了满足单个子业务时多个节点的组合。
HA和Cluster都可以理解为集群,但是HA架构往往有两种场景。一种是两个节点双主同时提供能力,或者一个主备节点仅作为备份,不提供能力。如果所有的能力都具备的话,HA也是最简单的集群。
集群本身有一个关键能力,就是多节点冗余增加了可靠性,不会因为单个节点故障而导致整个系统不可用。在分布式架构中,当节点分布时,仍然需要考虑HA或者集群架构来保证满足子业务需求的节点的高可用性。
对于分布式来说,除了通过拆分大任务解决性能问题外,另一个关键好处是各个子业务服务可以实现解耦和高度自治,即子业务A的故障不会导致子业务A的故障子业务B。受到影响,提供两个子业务本身的资源被进一步分割和隔离。
数据持久化和存储
对于集群架构来说,一般采用集中式存储来解决数据持久化的问题。同时,集中存储也方便相关事务管理,保证数据一致性。
在分布式架构中,尤其是数据库、缓存等分布式架构中,数据本身的持久化存储也是分布式的。同时实现了计算能力和存储能力的分布。每个分布式单元都包含计算能力和本地存储能力。
因此,数据或者持久化存储分布式之后,需要解决关键的分布式事务问题。同时,我们将介绍著名的CAP定理以及如何在保证高可用性和高一致性之间进行权衡。
所以简单来说,从应用架构实现的复杂度和后期运维管理的复杂度来看,集群是一个兼容性更强、更容易实现的解决方案。如果可以通过聚类来解决,就尝试通过聚类来解决。不要盲目追求分销。
集群和负载均衡
集群和负载平衡也是经常互换使用的概念。简单来说,负载均衡只是实现了请求的路由分发功能。对于集群来说,会暴露一个外部的集群地址,自然就具备负载均衡的能力。目前讨论的负载均衡可以是Haproxy或Nginix实现的软负载均衡,也可以是F5、Array等设备实现的硬件负载均衡。
集群具有负载均衡能力,但负载均衡一般不具备集群的全部能力。
集群除了负载均衡之外,还必须具备集群内所有节点的管理、状态监控、状态节点一致性维护的能力。类似的程序部署、心跳状态检查、配置信息分发、分布式事务协调等都是集群管理节点需要具备的能力。目前可以看到etcd、zookeeper等技术是常用的分布式集群实现技术。
集中与分散
首先,我们需要解释一下中心化和去中心化的概念。
继续前面的业务需求A和IT系统服务能力提供的场景,集群和分布都考虑能力提供B如何满足A。
那么现在还有其他的需求比如业务需求B,业务需求C等等。业务需求A、B、C需要相互处理、协作。这时,有两种协作方式。
首先是三个ABC之间的合作需要有能力提供这种传输。二是ABC之间的点对点协作,场景一是中心化架构,场景二是去中心化架构。所以,一个中心化和去中心化的架构,是为了ABC之间的协作。而不是关注业务需求和能力提供之间的关系。
一个典型的例子就是微服务中的服务注册中心。
一般来说,是一种去中心化的架构,即微服务A和微服务B之间的调用,这个消息流不需要经过服务注册中心,而是直接在A和B之间完成。所以在这种情况下这种情况下,即使服务注册中心宕机,也不会对接口调用和访问造成影响。
对于传统的ESB代理模型来说,它是典型的中心化架构,所有请求流都需要经过ESB总线管道,因此当ESB总线宕机时,所有请求都将无法访问。
那么去中心化架构是完全去中心化的吗?
在去中心化架构中,注册中心仍然是分布式集群,因为服务注册和发现仍然需要有一个统一的管控点,而这种管控能力仍然需要在注册中心的分布式集群中实现。只是去中心化架构中控制流和数据流进一步分离。
控制流量的能力仍然在注册中心,采用传统的分布式或集群方式实现。对于数据流而言,是点对点的访问,完全去中心化,不需要通过中心化节点进行传输和代理。
去中心化架构有两个主要好处。
一是所有数据流都不经过中心节点传输,自然访问性能更好。二是ABC不会因为中心节点的服务器故障而无法互相访问。
然而,去中心化架构本身也带来了问题。也就是说,由于ABC 是直接访问的,因此它们都是可见且可访问的。传统ESB最重要的特点是服务代理和位置透明。其次,由于是点对点的访问,数据流不经过中心节点,所以很多原本通过消息流拦截很容易实现的东西如安全、日志、流控等都不容易实现现在实施。
在去中心化架构的演进过程中。一个新的变化出现了,即ServiceMesh服务网格思想,将相关管控能力以sidecar或agent组件的形式进一步下沉部署到各个微服务模块中。这样就可以很好地解决管理和控制问题。
但代理类和位置透明仍然无法解决,这个能力可以转移到Nginix这样的组件上来实现。
两个团队概念之间的关系和联系
去中心化架构旨在实现ABC业务需求之间点对点的访问,体现了控制流和数据流的分离。然而,控制流仍然需要通过服务组件来提供。这个服务组件的部署还是需要采用集群模式,结合分布式来实现高可用。
对于各种满足集成需求的中间件,经常会出现集中式或分散式架构的概念。但在应用系统本身满足业务需求的场景下,一般不会出现集中式架构的概念。应用系统只能通过两种方式满足需求:集群和分布式。这里的分布与是否去中心化无关。
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/181147.html
用户评论
花容月貌
这篇文章讲得真好!我一直对中心化、去中心化这个概念很好奇,终于明白了它们的区别了。特别是集群和分布式的对比,让我受益匪浅,原来他们之间竟然有这么微妙的联系!
有17位网友表示赞同!
花海
作者分析得非常透彻,我之前一直搞混了集群和分布式,现在看来,他们确实各有不同侧重点。总觉得中心化虽然操作简单,但一旦出现问题就比较难控制,去中心化的优势更明显,但搭建起来也更加复杂。
有15位网友表示赞同!
醉红颜
写的不错,通俗易懂的解释了复杂的技术概念,对我这个门外汉来说很理解。不过感觉像缺少一些实际应用场景的解释,举个例子会更好理解这两种模式之间的区别。
有10位网友表示赞同!
あ浅浅の嘚僾
我比较关心去中心化技术在未来的发展前景,因为我认为这是一个趋势。相信随着时间的推移,去中心化的架构将会更加普遍,而集群和分布式方式也将会向着更轻量、更高效的方向发展。
有7位网友表示赞同!
在哪跌倒こ就在哪躺下
对中心化的理解还是停留在传统的数据库模型上,感觉作者也可以多聊聊现阶段云计算下中心化架构的变化趋势.
有8位网友表示赞同!
限量版女汉子
文章逻辑很清晰,内容也很丰富,但我想问一下:分布式系统和去中心化系统的概念是否完全一致呢? 感觉两个概念之间的界限有些模糊…
有11位网友表示赞同!
太难
我觉得文章重点放在了技术层面上的解释,没有具体讲到不同架构模式在实际应用中的优劣对比,比如选择哪个架构更适合什么样的场景等等。这部分内容也很重要。
有7位网友表示赞同!
眷恋
这个观点很有深度!我认为随着技术的不断发展,未来很可能会出现一种结合中心化和去中心化的全新架构,从而达到更灵活、更高效的目的。
有12位网友表示赞同!
代价是折磨╳
我个人更倾向于去中心化的架构模式,因为我觉得它更加安全、可靠,而且具有更好的可扩展性。
有17位网友表示赞同!
微信名字
总觉得分布式系统搭建起来难度比较大,需要考虑很多因素,对于新手不太友好…
有10位网友表示赞同!
凉话刺骨
这篇文章虽然讲得不错,但是对于一些较为深入的理论细节还没有进行详细阐述,希望能增加一些更专业的知识点解释。
有18位网友表示赞同!
微信名字
我对中心化架构更熟悉一点,觉得它的优势是比较容易管理维护,但如果要实现大规模的数据处理的话,可能不太理想。
有19位网友表示赞同!
此生一诺
感觉文章的结构不够完整,可以尝试将不同类型的系统应用场景作为例子进行分析,这样会更容易理解概念之间的关系。
有12位网友表示赞同!
拥菢过后只剰凄凉
中心化和去中心化这个命题听起来很抽象,其实生活中有很多例子可以 illustrate,比如社交平台或者金融服务业。
有15位网友表示赞同!
醉枫染墨
我觉得文章忽略了一些其他相关的概念,比如安全性、可信性和可靠性,这些因素在选择架构模式的时候也至关重要。
有15位网友表示赞同!
玩味
文章的内容很有价值,让我对中心化和去中心化有了更深入的理解。尤其是集群和分布式之间的区别,是我一直困惑的地方,现在终于搞明白了!
有16位网友表示赞同!
拉扯
我本身就是在从事分布式系统开发工作的,读了这篇文章发现有些观点很有启发性。 真的需要不断学习新知识,提升自己的技能能力。
有20位网友表示赞同!