本文目录
- 什么是分布式系统作用是什么好处是什么
- 分布式系统由哪几部分组成并有什么优势
- 什么是分布式处理系统
- 分布式系统有哪些优点
- 分布式系统的特点
- 什么是分布式系统
- 什么是分布式操作系统
- 分布式系统特点有哪些
- 如何利用Spring Cloud构建起自我修复型分布式系统
什么是分布式系统作用是什么好处是什么
分布式系统是相较于传统拼接处理器而言,分布式输入和输出节点设备分开布署,通过IP网络互联,分布式布署在软件商集中管控的拼接控制系统。所以相对于集中式而言,分布式系统拥有低成本、高性能、扩容简便等优点。举例世界地图吧。如果网络上的世界地图,全部储存在一个服务器里,那么面对来自全世界庞大的访问量,主机势必宕机。但如果地图信息是存放在世界各地的服务器里,大家通过网络交互去访问,就不会出现这样的问题。而且就算某个区域的服务器宕机,那需要修复的也只是这一台服务器而已。分布式工作的原理和优点就是这样。目前而言,分布式处理器国内做得比较好的,你可以去查查一家叫晨驭科技的。分布式目前经常被用在音视频技术领域,比如大屏拼接啊,投影融合啊,KVM坐席之类的项目里。KVM就是大型可视化坐席协作管理平台,新闻里那些火箭发射指挥中心,用的都是这样一套系统。
分布式系统由哪几部分组成并有什么优势
分布式系统由分布式输入节点、分布式输出节点、网络交换机组成,大大减少设备种类及数量,大大节约空间与成本。分布式系统例如XUNWEI、BOAC等等。
什么是分布式处理系统
分布式——一个高大上的名词,是计算机软件设计中人民群众喜闻乐见的“逼格满满”、“不明觉厉”的几个名词之一。但很可惜,这玩意儿一点也不复杂,甚至有些“简单”。不信?你只要遵循下述步骤即可将任何一个软件拆分为“分布式”的:
将你的整个软件视为一个系统(不管它有多复杂)
将整个系统分割为一系列的 Process(进程), 每个 Process 完成一定的功能
将这些 Process 分散到不同的机器上。分散后,选择若干种(没错一种可能不够)通信协议把他们连接起来
- 蹬蹬蹬蹬~大功告成。哈哈别打我,这真的是很严肃的通用型三步骤大杀器,对付任何软件,是任何软件都可以的。接下来我当然要解释清楚为什么。
- 二、跳出误区——分布式不等于并行计算
- 人们常常把分布式系统自然而然的和并行计算联系起来。然而这并不正确。实际上,分布式系统并不一定是并行的,举个简单的例子就能理解——
- 某软件,功能如下:
提示用户输入两个数 A 和 B
在内部,对 A 和 B 执行某数学运算,获得 C
输出 C
- 很简单吧?这三个步骤是无法并行的。它们需要被依次执行。但是这个软件依然可以被改为分布式的,方法就是用前面提到的方法,把步骤 2 的计算过程独立为一个 Process 移动到另外一台计算机上完成。
- 如果我们从整个系统流程的观点来看,并没有什么并行。整个过程都是顺序执行的。只不过执行时出现了“跨设备”的现象而已。可见,分布式本身就只如其字面意思所指,指的仅仅是从结构角度的分散而已。
- 当然啊,现实世界中,我们更多的时候钟情于分布式,还是因为它与并行之间可以相互配合。例如实现既是分布同时也是并行的系统。
- 好了,理解这一点之后就不难解释为什么我会说前文提到的三步骤是万用大法了。接下来我们继续讨论分布式本身。
- 三、拆分+连接是分布式系统的本质
- 所谓分布式,无非就是”将一个系统拆分成多个子系统并散布到不同设备“的过程而已。
- 本质上而言,实现一个分布式系统,最核心的部分无非有两点:
如何拆分——可以有很多方式,核心依据一是业务需求,二是成本限制。这是实践中构建分布式系统时最主要的设计依据。
如何连接——光把系统拆开成 Process 还不够,关键是拆开后的 Process 之间还要能通信,因此涉及通信协议设计的问题,需要考虑的因素很多,好消息是这部分其实成熟方案很多
- 四、为什么你要使用分布式?
- 分布式系统并非灵丹妙药,解决问题的关键还是看你对问题本身的了解。通常我们需要使用分布式的常见理由是:
为了性能扩展——系统负载高,单台机器无法承载,希望通过使用多台机器来提高系统的负载能力
为了增强可靠性——软件不是完美的,网络不是完美的,甚至机器本身也不可能是完美的,随时可能会出错,为了避免故障,需要将业务分散开保留一定的冗余度
- 在以提供 Service 为主的服务端软件开发过程中常常遇到这些问题。
- 五、一些分布式方案能解决你的问题,另一些却不能,要学会的其实是选择
- 笼统的讨论分布式没有太大的意义,就如我刚才所谈的,实际上分布式很容易实现。真正难的地方在于如何选择正确的分布方案。
- 例如,当你想要建立一个分布式的数据管理系统的时候,你就必须得面对“一致性”问题。如果你对数据一致性要求很高,你就不得不容忍一些缺陷例如规模伸缩困难;而如果你放弃它,你可以轻松伸缩规模,但你必须解决好由此带来的一系列数据不一致导致的问题。(CAP 问题)
- 于是你会意识到,有许多种分布方案,为了正确解决你的问题,你需要对每一个方案都进行了解,并评估,选择不同的方案有时候区别不大,有时候却会深刻的影响整个系统中其他部分的工作方式,甚至影响用户界面中用户操作时的流程。这是我们学习分布式系统的重点所在。
- 六、分布式学习入门——基础知识要点
- 如我前面所讲,分布式入门不难。主要包含如下知识点:
Process(进程)。在分布式系统中,进程是基本单元
通信协议。Process 间需要相互配合才能完成工作,因此通信协议是最基本要解决的问题。这部分其实挺复杂,牵涉面光,不过核心还是抓住两方面,一是存在哪些需求,二是各个协议如何满足这些需求
命名法。两个 Process 要通信,必须相互知道对方的名字,名字可以是数字,也可以是结构化的字符串。例如众所周知域名系统就是一种命名方案,但是方案还有很多,各有特点
协作。上面都在谈 Process 之间的通信,可是为什么要通信?因为要协作。协作是个复杂的主题,其中最基本最基本的一个问题就是同步问题。而聊同步问题必然要聊“锁”……知识点就这么展开了
- 上面几点是最基础的知识。了解了这些其实就算入门了。可是如何进阶呢?那么必然要开始学习下面的问题:
一致性。数据存储时,最基本的问题。其实也是实际设计系统时常常需要反复考虑的问题
容错。冗余是容错的基础,但并不是全部,分布式本身为实现容错提供了一些便利,这也是实际设计系统时常常需要考虑的问题
分布式系统有哪些优点
1.什么是分布式系统 分布式系统(distributed system)由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。 分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以...
2.分布式系统的优点 (一)可靠性(容错) 分布式计算系统中的一个重要的优点是可靠性。一台服务器的系统崩溃并不影响到其余的服务器。 ...
3.分布式系统的缺点 (一)故障排除 故障排除和诊断问题。 (二)软件 更少的软件支持是...
分布式系统的特点
一是网络,分布式系统的所有组件都位于网络之中,对于互联网应用而言,则位于更为复杂的互联网环境中。
二是通信和协调,与单块系统不同,位于分布式系统中的各个组件只有通过约定、高效且可靠的通信机制进行相关协作才能完成某一项业务功能。这是我们在设计和实现分布式系统时首先需要考虑的两个方面。
什么是分布式系统
分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。
正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
扩展资料
分布式系统系统优点
1、经济:微处理机提供了比大型主机更好的性能价格比
2、速度:分布式系统总的计算能力比单个大型主机更强
3、固有的分布性:一些应用涉及到空间上分散的机器
4、可靠性:如果一个机器崩溃,整个系统还可以运转
5、渐增:计算能力可以逐渐有所增加
参考资料来源:百度百科—分布式系统
什么是分布式操作系统
分布式软件系统(Distributed Software Systems),是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。
它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。
分布式数据库系统是由若干个站集合而成。这些站又称为节点,它们在通讯网络中联接在一起,每个节点都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统。
因此分布式数据库系统可以看作是一系列集中式数据库系统的联合。它们在逻辑上属于同一系统,但在物理结构上是分布式的。
扩展资料:
分布式操作系统的特点:
1、在分布式数据库系统里不强调集中控制概念,它具有一个以全局数据库管理员为基础的分层控制结构,但是每个局部数据库管理员都具有高度的自主权。
2、在分布式数据库系统中数据独立性概念也同样重要,然而增加了一个新的概念,就是分布式透明性。所谓分布式透明性就是在编写程序时好像数据没有被分布一样,因此把数据进行转移不会影响程序的正确性。但程序的执行速度会有所降低。
3、与集中式数据库系统不同的是,数据冗余在分布式系统中被看作是所需要的特性,其原因在于:首先,如果在需要的节点复制数据,则可以提高局部的应用性。
其次,当某节点发生故障时,可以操作其它节点上的复制数据,因此这可以增加系统的有效性。当然,在分布式系统中对最佳冗余度的评价是很复杂的。
参考资料来源:百度百科-分布式操作系统
分布式系统特点有哪些
分布式系统特点:
1、分布性。分布式系统由多台计算机组成,它们在地域上是分散的,可以散布在一个单位、一个城市、一个国家,甚至全球范围内。整个系统的功能是分散在各个节点上实现的,因而分布式系统具有数据处理的分布性。
2、自治性。分布式系统中的各个节点都包含自己的处理机和内存,各自具有独立的处理数据的功能。通常,彼此在地位上是平等的,无主次之分,既能自治地进行工作,又能利用共享的通信线路来传送信息,协调任务处理。
3、并行性。一个大的任务可以划分为若干个子任务,分别在不同的主机上执行。
4、全局性。分布式系统中必须存在一个单一的、全局的进程通信机制,使得任何一个进程都能与其他进程通信,并且不区分本地通信与远程通信。同时,还应当有全局的保护机制。系统中所有机器上有统一的系统调用集合,它们必须适应分布式的环境。在所有CPU上运行同样的内核,使协调工作更加容易。
5、分布式系统更加的开放,具有相同的接口规范使得集群计算机能够方便的进行数据操作,系统协同度更高;
对外:体现在统一的接口描述上,用统一的接口描述语言描述一套所有服务器都知道的规则,这样各服务器的交互问题上没什么问题了。具体的接口实现根据各个服务器的情况具体实现,从而把实现和声明进行了有效的解耦。对内:各台服务器内部的策略和实现也需要解耦,以免整个服务器是按照实现和声明逻辑实现的,但是服务器内部确实一个整体的,对于分布式的开放性将会大打折扣。
如何利用Spring Cloud构建起自我修复型分布式系统
利用Spring Cloud构建起自我修复型分布式系统:
Spring Cloud Config Server
Spring Cloud Config Server能够提供一项具备横向扩展能力的集中式配置服务。它所使用的数据被保存在一套可插拔库层当中,后者目前能够支持本地存储、Git以及Subversion。通过利用一套版本控制系统作为配置存储方案,开发人员能够轻松实现版本与审计配置的内容调整。
Spring Cloud Bus
Spring Cloud Config Server是一套强大的配置分发机制,能够在保障一致性的前提下将配置内容分发到多个应用程序实例当中。然而根据其设计思路的限定,我们目前只能在应用程序启动时对其配置进行更新。在向Git中的某一属性发送新值时,我们需要以手动方式重启每个应用程序进程,从而保证该值被切实纳入应用当中。很明显,大家需要能够在无需重启的前提下完成对应用程序配置内容的更新工作。
Spring Cloud Netflix
Spring Cloud Netflix针对多种Netflix组件提供打包方案,其中包括Eureka、Ribbon、Hystrix以及Zuul。接下来我将分别对它们作出讲解。
Eureka是一套弹性服务注册实现方案。其中服务注册属于服务发现模式的一种实现机制。