一:集中式向分布式系统过度

简介: 一:集中式向分布式转变---->大型主机(IBM),稳定快速。但扩容性差,价格昂贵。存在单点问题。---->小型微机,pc等服务器成本低,随着技术发展性能提升。---->互联网业务成井喷式快速发展,访问量暴增,计算机系统规模扩大,单一大型主机上运行系统的扩容比较困难。

一:集中式向分布式转变
---->大型主机(IBM),稳定快速。但扩容性差,价格昂贵。存在单点问题。
---->小型微机,pc等服务器成本低,随着技术发展性能提升。
---->互联网业务成井喷式快速发展,访问量暴增,计算机系统规模扩大,单一大型主机上运行系统的扩容比较困难。企业放弃原有的大型机,使用小型机和普通pc服务器搭建分布式的计算机系统。


二:集中式系统
---->部署结构简单。
---->大型主机(IBM),稳定快速。但扩容性差,价格昂贵。存在单点问题。


三:分布式系统
---->分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。
---->一个标准的分布式系统在没有任何特定业务逻辑的限制下,都会有如下几个特征
        ●分布性:分布式系统中的多台计算机都会在空间上随意分布,同时,机器的分布情况也会随时变动。       
        ●对等性:分布式系统中的计算机没有主/从之分。即没有控制整个系统的主机,也没有被控制的从机。组成分布式系统的所有计算机节点都是对等的。副本是分布式系统最常见的概念之一,指的是分布式系统对数据和服务提供的一种冗余方式。在常见的分布式系统中,为了对外提供高可用的服务,我们往往会对数据和服务进行副本处理。数据副本是指在不同的节点上持久化同一份数据,当某一个节点上存储的数据丢失时,可以从副本上读取到该数据,这是解决分布式系统数据丢失问题最为有效的手段。另一类副本是服务副本,指多个节点提供同样的服务,每个节点都有能力接受来自外部的请求并进行相应的处理。
        ●并发性:同一个分布式系统中的多个节点,可能会并发地操作一些共享的资源,诸如数据库或分布式存储等,如何准确并高效地协调分布式并发操作也成为了分布式系统架构与设计中最大的挑战之一。
        ●缺乏全局时钟:由于分布式系统是由一系列在空间上随意分布的多个进程组成,具有明显的分布性,这些进程之间通过交换消息来进行相互通信。因此在分布式系统中,很难定义两个事件究竟谁先谁后,原因就是因为分布式系统缺乏一个全局的时钟序列控制。
        ●故障总是会发生:组成分布式系统的所有计算机,都有可能发生任何形式的故障。一个被大量工程实践所检验过的黄金定理是:任何在设计阶段考虑到的异常情况,一定会在系统实际运行中发生。并且,在系统实际运行过程中还会遇到很多在设计时未能考虑到的异常故障。所以,除非需求指标允许,在系统设计时不能放过任何异常情况。


四:分布式系统的常见问题
--->通信异常
●网络不可用,网络光纤,路由器,或是DNS等硬件设备,或是系统不可用导致分布式系统无法顺利完成一次网络通信。
●消息丢失或延迟普遍。因为一次网络通信要在服务内部多次节点之间的传输,导致处理速度比单机要慢很多。单机延时,通常在纳秒数量级(通常是10ns).而分布式的一次网络通信的延迟在0.1-1ms左右。相当于内存访问延时的105-106倍

--->网络分区
●当网络由于发生异常情况,导致分布式系统中部分节点的网络延时不断增大,最终导致组成分布式系统的所有节点中,只有部分节点之间能够进行正常通信,而另一些节点则不能---我们将这个现象称之为网络分区,俗称“脑裂”。当网络分区出现时,分布式系统会出现局部小集群,在极端情况下,这些局部小集群会独立完成原本需要整个分布式系统才能完成的功能,包括对数据的事务处理,这就对分布式一致性提出了非常大的挑战。


--->三态
●一次网络通信,在分布式系统中会有三种状态,成功,失败,超时。
●由于节点间通信多的问题,导致消息可能因为超时而丢失,让客户端无法感知本次请求的结果是成功或失败。
●超时分两种情况,第一种:A节点发往B节点的消息,B未接收到超时。第二种:A节点发往B节点,B节点成功接受处理,但A节点未接受到结果超时。

--->节点故障
●节点故障则是分布式环境下另一个常见问题,指的是组成分布式系统的服务器节点出现的宕机或“僵死”现象。通常根据经验来说,每个节点都有可能出现故障,并且每天都在发生。

相关文章
|
9月前
|
消息中间件 人工智能 缓存
业务实现真的会因为分布式系统而变得简单么?
在当前互联网技术不断发展的时代,分布式系统成为了许多企业业务中不可或缺的一部分。分布式的出现,一方面提高了系统的可靠性和性能,另一方面也提高了系统的可扩展性和灵活性,这也让分布式系统被广泛应用于各种业务场景中,例如电商、金融、物流等领域。再结合阅读了《聊一聊分布式系统中的时空观构建》这篇文章,更进一步了解分布式系统的空间观构建,通过生活中的时间观念、事情的因果顺序、逻辑时钟等方面让业务实际因为分布式系统变得简化,而更易实现。但是实际的业务实现真的会因为分布式系统而变得更简单么?本文就来简单的聊一下。
52 1
业务实现真的会因为分布式系统而变得简单么?
|
11月前
|
存储 弹性计算 缓存
「分布式架构」“一切都是分布式”说最终一致性
「分布式架构」“一切都是分布式”说最终一致性
|
11月前
|
存储 缓存 算法
你真的懂分布式一致性吗?从业务开发视角看分布式系统一致性
分布式的本质:利用多台机器上进行计算和存储,为了防止某些台机器发生网络延迟、节点故障等问题,就需要使用”算法或者技术“协调”多台机器来一起工作,确保系统的正确性和健壮性。 我们的业务系统与业务系统的交互:因为是集群与集群之间的互相连接,某应用A连接应用B的时候连不通了(直接tcp无法建立连接 或者连接超时),这个时候其实分区就发生了, 而因为集群的存在,这分区发生的概率非常小, 这个时候,我们是选择AP还是CP呢?这个要根据业务场景以及当前系统间交互的复杂度而定。
117 0
|
存储 设计模式 弹性计算
【可靠性架构】可靠性架构第1部分:概念
本故事的目标是提供可靠性的最佳实践来管理您的云环境。尽管它引用了AWS和Cloud,但这些原则同样适用于其他云提供商和内部环境。
|
存储 缓存 运维
系统稳定性设计原则:简单、冗余、标准化、健壮
系统稳定性设计原则:简单、冗余、标准化、健壮
546 0
系统稳定性设计原则:简单、冗余、标准化、健壮
|
运维 Dubbo 前端开发
单体架构,分布式系统的差别在哪里?
随着技术日新月异的发展,最近几年微服务和分布式技术成为主流。每一个好的解决方案不一定是直接设计出来的,但每一个优秀的架构都必须承受得住业务的考验和需求驱动的积累。最初我们开发系统都是在单个的应用上进行开发、测试、部署和运维等。
277 0
单体架构,分布式系统的差别在哪里?
|
Java 开发者 微服务
单体架构知识点及单体架构的缺陷
一个归档包(例如war格式或者Jar格式)包含了应用所有功能的应用程序,我们通常称之为单体应用。架构单体应用的方法论,我们称之为单体应用架构,这是一种比较传统的架构风格。
单体架构知识点及单体架构的缺陷
|
应用服务中间件 缓存 nginx
消除单点,一篇搞定 | 架构设计篇
系统架构中,为什么会存在单点?思路比结论重要。
5392 1
|
缓存 负载均衡 监控
微服务架构如何避免大规模故障?
微服务架构通过一种良好的服务边界划分,能够有效地进行故障隔离。但就像其他分布式系统一样,在网络、硬件或者应用级别上容易出现问题的机率会更高。服务的依赖关系,导致在任何组件暂时不可用的情况下,就它们的消费者而言都是可以接受的。为了能够降低部分服务中断所带来的影响,我们需要构建一个容错服务,来优雅地应对特定类型的服务中断。
微服务架构如何避免大规模故障?
|
存储 弹性计算 人工智能
集中式架构和分布式架构哪种更好?
集中式架构的优势主要是设备数量少,架构设计简单、通用与应用耦合度低,资源可以灵活调度,部署容易。数据集中存储和处理,无需多个节点之间分布式协作,所以具有系统响应快,数据可靠性和一致性好的优点。由于架构简单,设备少,所以在系统运维,容灾设计,空间用电等方面都具有较大优势。稳健、可靠、易维护管理是集中式架构的特点,所以集中式架构多用于传统的银行、电信、交通、医疗等行业。数据显示,2019年,仍有92%的银行选择购买集中式架构的服务器,以确保关键业务稳定运行。 而分布式架构的优势主要是灵活、性价比高,同时也安全自主,其弹性伸缩能力优势明显。所以随着时下数据量的剧增,分布式架构在这方面的能力展露锋芒
533 0