分布式系统的特点及问题

分布式系统定义

在《分布式系统概念与设计》一书中,对分布式系统做了 如下定义:
分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。
也就是说一个分布式系统中的计算机在空间部署上可以是随意分布的,这些计算机可能被放在不同的机柜上,也可能在不同的机房中,甚至分布在不同的城市。这些计算机之间通过网络来通信。

分布式的特点

分布式系统有如下体征:

分布性

分布式系统中的多台计算机在空间上随意分步。当然,机器的分布情况也会随时变动。

对等性

分布式系统中的计算机没有主/从之分,既没有控制整个系统的主机,也没有被控制的从机,组成分布式系统的所有计算机节点都是对等的。

并发性

一个分布式系统中的多个节点,可能会并发地操作一些共享的资源,比如数据库或分布式存储等。如何准确并高效地协调分布式并发操作也成为了分布式系统架构与设计中最大的挑战。

缺乏全局时钟

在分布式系统中,很难定义两个事件究竟谁先谁后,原因就是分布式系统缺乏一个全局的时钟控制序列。

故障总是会发生

组成分布式系统的所有计算机,都有可能发生任何形式的故障。实践表明,在分布式系统中,计算机发生故障是比较常见的。因此,在分布式系统设计时,必须考虑到该问题。

分布式环境的各种问题

分布式系统体系结构从其出现之初就伴随着诸多的难题和挑战,本节介绍分布式系统中的一些典型的问题。

通信异常

分布式系统中个计算机之间是通过网络进行通信的。由于网络本身的不可靠性,每次网络通信都会伴随着网络不可用的风险。即使分布式系统各节点之间的网络通信能够正常进行,其延时也会远远大于单机操作。在分布式系统中,消息延时和消息丢失非常普遍。

网络分区

当网络发生异常情况,可能导致分布式系统中某些节点之间能够正常通信,而某些节点之间无法通信——该现象就是网络分区,就是俗称的『脑裂』。当网络分区出现时,分布式系统就会出现局部小集群,小集群内计算机可以相互通信,小集群之间计算机无法通信。这就对分布式一致性提出了非常大的挑战。

三态

因为在分布式系统中,网络可能会出现各式各样的问题,因此分布式系统的每一次请求和响应,存在特有的『三态』概念,即成功、失败与超时。在传统的单机系统中,应用程序在调用一个函数之后,能够得到一个非常明确的相应:成功或失败。而在分布式系统中,由于网络是不可靠的,当网络出现异常的情况下,就可能出现超时现象,发生消息丢失现象。

节点故障

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 分布式系统面临的第一个问题就是数据分布,即将数据均匀地分布到多个存储节点。另外,为了保证可靠性和可用性,需要将数据...
    olostin阅读 4,941评论 2 26
  • 承载量是分布式系统存在的原因 当一个互联网业务获得大众欢迎的时候,最显著碰到的技术问题,就是服务器非常繁忙。当每天...
    XYLY阅读 1,526评论 1 48
  • 本文转载自http://geek.csdn.net/news/detail/112672 WeTest导读 我们常...
    shineegirl阅读 1,617评论 0 26
  • 凌晨十二点,我以持续找狗的姿态开启了二零一六年的最后一天。真·找狗,骑着瘪了胎的电单车,满大街地喊,小美!小...
    三白1阅读 395评论 0 0
  • 2016.06.08 馒头:1 地铁费:5.7 2016.06.07 早餐:6 地铁费:5.7+5.7 花:18 ...
    yi生有你阅读 185评论 0 0

友情链接更多精彩内容