集中与分散、集群与分布的区别与联系

今天谈下几个关键概念的区别。这几个是当前在构建满足海量大并发下的高可用架构下都经常会遇到的一些关键概念。集群和分布式区别和联系首先谈下集群和分布式,这两个概念是

大家好,关于集中与分散、集群与分布的区别与联系很多朋友都还不太明白,今天小编就来为大家分享关于的知识,希望对各位有所帮助!

集群与分布式的区别与联系

首先我们来谈谈聚类和分布。这两个概念是最容易混淆的。我们先看一下网上对这两个概念的基本解释如下:

对于集群来说,当单个节点的性能不足时,可以组合多个节点来共同满足外部业务需求。对于分布式来说,当单个节点的性能无法提升时,将业务需求分解为多个子服务,然后将每个子服务部署到不同的节点上。

集群一般强调多台服务器集中放置,易于统一管理;而分布则没有具体要求。无论放置在哪里,只需要通过网络连接即可。

关于看知乎有一个形象的比喻:

以前,这家小餐馆只有一名厨师,负责切菜、洗菜、备料、做饭。后来,顾客多了,厨房忙不过来,就雇了另一位厨师。两位厨师都能烹制相同的菜肴。两位厨师之间的关系是一团的。为了让厨师能够专心烹饪,让菜品更加完美,聘请了配菜师负责切菜、备菜、备料。厨师和配菜师之间的关系是分散的,甚至一个配菜师也忙不过来。我聘请了一位酸面团厨师,这两位酸面团厨师之间是集群关系。

事实上,你会发现往往有两种方式可以同时满足业务需求。不仅需要考虑业务需求本身的分解,还需要考虑分解后的子业务并提供多个节点组成集群提供能力。所以你会看到另一个术语,分布式集群的概念。

分布式集群不仅体现了业务需求的拆分,也体现了满足单个子业务时多个节点的组合。

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业务需求之间点对点的访问,体现了控制流和数据流的分离。然而,控制流仍然需要通过服务组件来提供。这个服务组件的部署还是需要采用集群模式,结合分布式来实现高可用。

对于各种满足集成需求的中间件,经常会出现集中式或分散式架构的概念。但在应用系统本身满足业务需求的场景下,一般不会出现集中式架构的概念。应用系统只能通过两种方式满足需求:集群和分布式。这里的分布与是否去中心化无关。

用户评论

集中与分散、集群与分布的区别与联系
花容月貌

这篇文章讲得真好!我一直对中心化、去中心化这个概念很好奇,终于明白了它们的区别了。特别是集群和分布式的对比,让我受益匪浅,原来他们之间竟然有这么微妙的联系!

    有17位网友表示赞同!

集中与分散、集群与分布的区别与联系
花海

作者分析得非常透彻,我之前一直搞混了集群和分布式,现在看来,他们确实各有不同侧重点。总觉得中心化虽然操作简单,但一旦出现问题就比较难控制,去中心化的优势更明显,但搭建起来也更加复杂。

    有15位网友表示赞同!

集中与分散、集群与分布的区别与联系
醉红颜

写的不错,通俗易懂的解释了复杂的技术概念,对我这个门外汉来说很理解。不过感觉像缺少一些实际应用场景的解释,举个例子会更好理解这两种模式之间的区别。

    有10位网友表示赞同!

集中与分散、集群与分布的区别与联系
あ浅浅の嘚僾

我比较关心去中心化技术在未来的发展前景,因为我认为这是一个趋势。相信随着时间的推移,去中心化的架构将会更加普遍,而集群和分布式方式也将会向着更轻量、更高效的方向发展。

    有7位网友表示赞同!

集中与分散、集群与分布的区别与联系
在哪跌倒こ就在哪躺下

对中心化的理解还是停留在传统的数据库模型上,感觉作者也可以多聊聊现阶段云计算下中心化架构的变化趋势.

    有8位网友表示赞同!

集中与分散、集群与分布的区别与联系
限量版女汉子

文章逻辑很清晰,内容也很丰富,但我想问一下:分布式系统和去中心化系统的概念是否完全一致呢? 感觉两个概念之间的界限有些模糊…

    有11位网友表示赞同!

集中与分散、集群与分布的区别与联系
太难

我觉得文章重点放在了技术层面上的解释,没有具体讲到不同架构模式在实际应用中的优劣对比,比如选择哪个架构更适合什么样的场景等等。这部分内容也很重要。

    有7位网友表示赞同!

集中与分散、集群与分布的区别与联系
眷恋

这个观点很有深度!我认为随着技术的不断发展,未来很可能会出现一种结合中心化和去中心化的全新架构,从而达到更灵活、更高效的目的。

    有12位网友表示赞同!

集中与分散、集群与分布的区别与联系
代价是折磨╳

我个人更倾向于去中心化的架构模式,因为我觉得它更加安全、可靠,而且具有更好的可扩展性。

    有17位网友表示赞同!

集中与分散、集群与分布的区别与联系
微信名字

总觉得分布式系统搭建起来难度比较大,需要考虑很多因素,对于新手不太友好…

    有10位网友表示赞同!

集中与分散、集群与分布的区别与联系
凉话刺骨

这篇文章虽然讲得不错,但是对于一些较为深入的理论细节还没有进行详细阐述,希望能增加一些更专业的知识点解释。

    有18位网友表示赞同!

集中与分散、集群与分布的区别与联系
微信名字

我对中心化架构更熟悉一点,觉得它的优势是比较容易管理维护,但如果要实现大规模的数据处理的话,可能不太理想。

    有19位网友表示赞同!

集中与分散、集群与分布的区别与联系
此生一诺

感觉文章的结构不够完整,可以尝试将不同类型的系统应用场景作为例子进行分析,这样会更容易理解概念之间的关系。

    有12位网友表示赞同!

集中与分散、集群与分布的区别与联系
拥菢过后只剰凄凉

中心化和去中心化这个命题听起来很抽象,其实生活中有很多例子可以 illustrate,比如社交平台或者金融服务业。

    有15位网友表示赞同!

集中与分散、集群与分布的区别与联系
醉枫染墨

我觉得文章忽略了一些其他相关的概念,比如安全性、可信性和可靠性,这些因素在选择架构模式的时候也至关重要。

    有15位网友表示赞同!

集中与分散、集群与分布的区别与联系
玩味

文章的内容很有价值,让我对中心化和去中心化有了更深入的理解。尤其是集群和分布式之间的区别,是我一直困惑的地方,现在终于搞明白了!

    有16位网友表示赞同!

集中与分散、集群与分布的区别与联系
拉扯

我本身就是在从事分布式系统开发工作的,读了这篇文章发现有些观点很有启发性。 真的需要不断学习新知识,提升自己的技能能力。

    有20位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/181147.html

(0)
小su's avatar小su
上一篇 2024年9月23日 上午12:03
下一篇 2024年9月23日 上午12:19

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注