分布式系统定义及特点

一、分布式系统定义

分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。

二、特性

1、副本(Replica)是分布式系统最常见的概念之一,指分布式系统对数据和服务提供的一种冗余方式。在常见的分布式系统中,为了对外提供高可用的服务,我们往往会对数据和服务进行副本处理。

  1)数据副本指在不同节点上持久同一份数据,当某一个节点上存储的数据丢失时,可以从副本上读取到该数据,这是解决分布式系统数据丢失问题的有效手段。

  2)服务副本指多个节点提供同样的服务,每个节点都有能力接受来自外部的请求并进行相应的处理。

2、并发性

  在程序运行过程中的并发性操作是非常常见的行为,例如同一个分布式系统中的多个节点,可能会并发地操作一些共享的资源,如何准确并高效的协调分布式并发操作也成为了分布式系统架构与设计中最大的挑战之一。

3、全局时钟

  分布式系统是有一系列在空间上随意分布的多个进程组成的,在这些进程之间通过交换消息来进行相互通信。因此,在分布式系统中,很难定义两个事件究竟谁先谁后,原因就是分布式系统缺乏一个全局的时钟序列控制。

4、故障总会发生

  任何在设计阶段考虑到的异常情况,一定会在系统实际运行中发生,并且,在系统实际运行过程中还会遇到很多在设计时未能考虑到的异常故障。所以,除非需求指标允许,在系统设计时不能放过任何异常情况。

三、分布式环境的各种问题

1、通信异常

  网络本身的不可靠性,各节点之间的网络通信能够正常进行,其延时也会远大于单机操作。单机内存访问的延时在纳秒数量级(通常是10ns左右),而正常的一次网络通信的延迟在0.1~1ms左右,巨大的延时差别,会影响消息的收发的过程,因此消息丢失和消息延迟变得非常普遍。

2、网络分区

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

3、三态

  在分布式环境下,网络可能出现各式各样的问题,因此分布式系统的每一次请求与响应,存在特有的三态概念,即成功、失败与超时。超时现象通常有一下两种情况:

  1)由于网络原因,该请求(消息)并没有被成功发送到接收方,而是在发送过程就发生了消息丢失现象。

  2)该请求(消息)成功的被接收方接受后,并进行了处理,但是在将响应反馈给发送方的过程中,发生了消息丢失现象。

当出现这样的超时现象时,网络通信的发起方是无法确定当前请求是否被成功处理的。

4、节点故障

  分布式系统下比较常见的问题,指组成分布式系统的服务器节点出现宕机或僵死现象。

  

时间: 2024-10-13 06:00:00

分布式系统定义及特点的相关文章

分布式系统(1)---EJB

分布式系统定义:它是由多个节点组成的系统,一般来说一个节点就是我们的一台计算机,这些节点不是孤立的,而是互相连通的,最后这些连通的节点上部署了我们的组件,并且相互之间的操作会有协同. 分布式开发的优缺点 1.协作互联,为我们整合大量地理上分撒怒各地的信息和服务,例如百度地图,现在的微信等等 2.经济,应用了分布式从而降低了硬件设施的性能,性价比高. 3.性能与可伸缩性,为了提高软件的生命周期,分布式系统的性能以及扩展性起着至关重要的作用.如果分布式系统没有性能与可扩展性那就算不上一个成功的软件.

[从Paxos到ZooKeeper][分布式一致性原理与实践]<一>

目录 分布式架构 从集中式到分布式 从ACID到CAP/BASE 一致性协议 2PC与3PC Paxos算法 Paxos的工程实践 Chubby Hypertable Zookeeper与Paxos 初始Zookeeper Zookeeper的ZAB协议 使用Zookeeper 部署与运行 客户端脚本 Java客户端API 开源客户端 Zookeeper的典型应用场景 Zookeeper技术内幕 系统模型 序列化与协议 科幻端 会话 服务器启动 leader选举 ... Zookeeper运维

【免费下载】全套最新 023Dubbo 视频教程+教学资料+学习课件+源代码+软件开发工具

023Dubbo视频教程 网盘地址: 链接:https://pan.baidu.com/s/148Uj4l6zH828eVraLh9gsQ 提取码:dm3z 加公众号 获取更多新教程 教程目录大纲 ./023Dubbo ├── 课件.资料.zip └── 视频 ├── 01.Dubbo概念分布式系统定义.avi ├── 02.Dubbo概念应用的架构演变.avi ├── 03.Dubbo概念RPC简介.avi ├── 04.Dubbo概念简介.avi ├── 05.Dubbo概念设计架构.avi

【D】分布式系统的CAP理论

2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想.2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP.之后,CAP理论正式成为分布式计算领域的公认定理. CAP理论概述 一个分布式系统最多只能同时满足一致性(Consistency).可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项. CAP的定义 Consistency 一致性 一致性指"all no

分布式系统---2 图灵奖获奖者Leslie Lamport的贡献

图灵奖牛人LeslieB. Lamport介绍 英文原文链接https://en.wikipedia.org/wiki/Leslie_Lamport Leslie B. Lamport,生于1941年,美国著名的计算机科学家,以发明分布式关键技术(特别是PAXOS).LATEX.TLA+知名,于2013年获得图灵奖.他1960年在MIT获得数学学士学位,1972年从Brandeis大学获得数学Ph.D,1970~1977在Massachusetts Computer Associates从事计算

分布式系统的事务处理【转】

转:http://coolshell.cn/articles/10910.html 当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题: 1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求. 2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失. 于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题. 通常,我们会通过两种手段来扩展我们的数据服务: 1)数据分区:就是把数据分块放在不同的服务器上(如:uid %

浅析分布式系统

作者:wadehan,腾讯后台开发高级工程师 本文转载自 腾讯云技术社区--腾云阁 https://www.qcloud.com/community. WeTest导读 我们常常会听说,某个互联网应用的服务器端系统多么牛逼,比如QQ.微信.淘宝.那么,一个互联网应用的服务器端系统,到底牛逼在什么地方?为什么海量的用户访问,会让一个服务器端系统变得更复杂?本文就是想从最基本的地方开始,探寻服务器端系统技术的基础概念. 承载量是分布式系统存在的原因 当一个互联网业务获得大众欢迎的时候,最显著碰到的技

通过 Mesos、Docker 和 Go,使用 300 行代码创建一个分布式系统

[摘要]虽然 Docker 和 Mesos 已成为不折不扣的 Buzzwords ,但是对于大部分人来说它们仍然是陌生的,下面我们就一起领略 Mesos .Docker 和 Go 配合带来的强大破坏力,如何通过 300 行代码打造一个比特币开采系统. 时下,对于大部分 IT 玩家来说, Docker 和 Mesos 都是熟悉和陌生的:熟悉在于这两个词无疑已成为大家讨论的焦点,而陌生在于这两个技术并未在生产环境得到广泛使用,因此很多人仍然不知道它们究竟有什么优势,或者能干什么.近日, John W

分布式系统(技术)

------<面向模式的软件架构>(卷4)------ 支持分布式的3个层次的技术:Ad hoc网络编程.结构化通信.中间件. 1.Ad hoc网络编程:主要依靠进程间通信机制(IPC)如共享内存.管道.套接字(socket). 2.结构化通信:通过提供较高层次的通信机制,避免了应用代码与底层IPC机制的直接耦合,从而解决了Ad hoc网络编程的限制. (1)远程过程调用(RPC): @ RPC平台隐藏了底层的操作系统API和IPC机制的细节:一个程序可以调用另一个程序的函数. 3.中间件:驻