赞
踩
分布式车统(distributed system)是建立在网络之上的软件系统,正是因为具有软件的特性,所以分布式系统有高度的内聚性和通明性,因此,网络和分布式系统之间的区别更多地体现在高层软件(特别是操作系统),而不是硬件
分布式系统是多个处理机通过通信线路互连来构成松散耦合的系统。对系统中某台处理机而言,所有处理机和相应资源都是远程的,只有本机资源才是本地的。至今,对分布式系统的定义尚未形成统一的见解。一般认为,分布式系统应具有以下4个特征
分布性
分布式系统由多台计算机组成,它们在地域上是分散的,可以散布在一个单位、一个城市、一个国家,甚至全球范围内。整个系统的功能是分散在各个节点上实现的,因而分布式系统具有数据处理的分布性
自治性
分布式系统中的各个节点都包含自身的处理机和内存,各自具有独立的处理数据功能。这些节点无主次之分,既能自治地进行工作,又能利用共享的通信线路来传送信,协调任务管理。
并行性
一个大的任务可以划分为若干子任务,分别在不同的主机上执行。
全局性
分布式系统中必须存在一个单一的、全局的进程通信机制,使得任何一个进程都能其他进程通信,而不用区分本地通信与远程通信。此外,分布式系统还具备全局保护制,系统中所有机器上都有统一的系统调用集合来适应分布式的环境。同时,所有的 CPU上都运行同样的内核,使协调工作更加容易。
可样的内核,使协调工作更加容易。
资源共享
若干不同的节点通过通信网络彼此互连,一个节点上的用户可以使用其他节点上的资源。分布式系统可以允许设备共享,使众多用户共享昂贵的外部设备(如彩色打印机);可以实现数据共享,使众多用户访问共用的数据库;可以共享远程文件,使用远程特有的硬件设备(如高速阵列处理器),以及执行其他操作。
加快计算速度
如果一个特定的计算任务可以划分为若干并行处理的子任务,则可把这些子任务分散到不同的节点上,使它们同时在这些节点上运行,从而加快计算速度。另外,分布式系统具有计算迁移功能,如果某个节点上的负载太重,则可把其中一些作业迁移到其他节点去执行,从而减轻该节点的负载。这种作业迁移称为负载平衡。
可靠性高
分布式系统具有高可靠性。如果其中某个节点失效,其余的节点可以继续运行,整个系统不会因为一个或少数几个节点的故障而全体崩溃。因此,分布式系统有很好的容错性能。
系统必须能够检测节点的故障,采取适当的手段,使它从故障中恢复过来。系统确定故障所在的节点后,就不再利用它来提供服务,直至该节点恢复正常工作。失效节点的工作任务可由其他节点完成,系统必须保证功能转移的正确实施。当失效节点被恢复或者修复时,系统必须保证把该节点平滑地集成到系统中。
通信方便、 快捷
分布式系统中各个节点通过一个通信网络互连在一起。通信网络由通信线路、调制解调器和通信处理器等组成,不同节点的用户可以方便地交换信息。在底层,系统之间利用传递消息的方式进行通信,这类似于单CPU 系统中的消息机制。单 CPU系统中所有高层的消息传递功能都可以在分布式系统中实现,如文件传递、登录、邮件、Web浏览和远程过程调用(Remote Procedure Call,RPC)。
分布式系统实现了节点之间的远距离通信,为人与人之间的信息交流提供了很大方便。不同地区的用户可以共同完成一个项目,通过传送项目文件,远程登录进入对方系统来运行程序(如发送电子邮件等),协调彼此的工作。
分布式计算
分布式计算是近年来大数据处理数据流入的关键,即将一项庞大的任务(如总计1000 亿条记录)分割成许多较小任务的技术,当计算任务扩大时,只须添加更多计算点即可。
这个领域的早期创新者是谷歌公司。当时谷歌面对海量数据处理,急需为分布式计算创造一种新的范式–MapReduce(分布式计算系统),并在开源社区基于该理念创建了 Apache Hadoop(套用在通用硬件构建的大型集群上运行应用程序的框架)。
分布式文件系统
分布式文件系统可以被认为是分布式数据存储,它们与其他概念一样,即在一组机器中存储和访问大量数据,所有这些数据都显示为一个整体。它们通常与分布式计算并驾齐驱。例如,雅虎因为在超过42000个节点上运行HDFS并存储600 PB数据而出名。
分布式消息
消息传递系统为整个系统内的消息/事件的存储和传播提供了一个中心位置,允许将发用程序逻辑直接从其他系统中分离出来。已知规模如 LinkedIn(全球职场社交平台)的 Kafka 集群每天处理1万亿条消息,每秒处理 450 万条消息。
分布式数据库系统
分布式数据库系统通常使用较小的计算机系统,每台计算机可单独存放在一个地方。海台计算机中都保留 DBMS(数据库管理系统)的一份完整副本,或者部分副本,并具有局部的数据库。许多位于不同地点的计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。
分布式数据库系统
分布式数据库系统(DDBS)包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。在分布式数据库系统中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储,由不同的DBMS进行管理,在不同的机器上运行由不同的操作系统支持,被不同的通信网络连接在一起
一个DDB在逻辑上是一个统一的整体,在物理上则是分别存储在不同的物理节点上。一个应用程序通过网络的连接,可以访问分布在不同地理位置的数据库中。它的分布性表现在数据库中的数据不是存储在同一场地,更确切地讲,就是不存储在同一计算机的存储设备上,这与集中式数据库是有区别的。从用户的角度来看,一个分布式数据库系统在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用,就好像那些数据是存储在同一台计算机上。这和单个DBMS管理一样,用户并没有感觉不一样。
DDBS 是在集中式数据库系统的基础上发展起来的,是计算机技术和网络技术结合的产物。DDBS适合于单位分散的部门,允许各个部门将其常用的数据存储在本地,实施就地存放本地使用,从而提高响应速度,降低通信费用。DDBS 与集中式数据库系统相比具有可扩展性,通过增加适当的数据冗余,提高系统的可靠性。在集中式数据库中,尽量减少冗余度是系统的目标之一,因为冗余数据浪费存储空间,而且容易造成各副本之间的不一致性。为了保证数据的一致性,系统要付出一定的维护代价,可以通过数据共享来实现降低冗余度的目标。而在分布式数据库中却希望增加冗余数据,在不同的场地存储同一数据的多个副本,其原因如下:
①提高系统的可靠性、可用性。当某一场地出现故障时,系统可以对另一场地上的相同副本进行操作,不会因一处故障而造成整个系统的瘫痪
2提高系统性能。系统可以根据距离选择离用户最近的数据副本进行操作,以减少通信代价,改善整个系统的性能。
独立透明性
数据独立性是数据库追求的主要目标之一。分布透明性指用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心重复副本(冗余数据)的一致题,同时不必关心局部场地上数据库支持哪种数据模型。分布透明性的优点很明显,不分布适明性,用户的应用程序书写起来就如同数据没有分布一样。当数据从一个场地。另一个杨地时不必改写应用程序;当增加某些数据的重复副本时,也不必改写应用程的数据分布的信息由系统存储在数据字典中,用户对非本地数据的访
问请求根据字典予以解释、转换和传送。
集中节点结合
数据库是用户共享的资源。在集中式数据库中,为了保证数据库的安全性和完整性对共享数据库的控制是集中的,并设有DBA(数据库管员)负责监督和维护系统的正常运行。在分布式数据库中,数据的共享有两个层次:一是局部共享,即在局部数据库中存储局部场地上各用户的共享数据,这些数据是本场地用户常用的;二是全局共享,即在 DDB场地共数据持统中全局应用因此,相应的控制结构也具有集中和自治这两个层次。DDBS常采用集中自治相结合的控制结构,各局部的B独地管理部数,自治的功能。同时,系统设有集中控制机制,协调各局部DBMS工作,用。然,不同的系统集中和自治的程度不尽相同。有些系统高度自治,连全局应用事务的协调也由局部DBMS和局部 DBA 共同承担而不要集中控制,不设全局DBA。有些系统则集中控制程度较高,场地自治功能较弱,能实现全局数据库的一致性和可恢复性。DDB中各局部数据库应满足集中式数据库的一致性、可申行性和可恢复性,除此以外,还应保证数据库的全局一致性、并行操作的可串行性和系统的全局可恢复性,这是因为全局应用要涉及两个以上节点的数据因此在DDBS中,一个业务可能由不同场地上的多个操作组成。例如,银行转账业务需要涉及两个节点上的更新操作。这样,当其中某一个节点出现故障操作失败后,如何使全局业务撤回呢?如何使另一个节点撤销已执行的操作(若操作已完成或完成一部分)或者不必再执行业务的其他操作(若操作尚没执行)?这些技术要比集中式数据库复杂和困难得多,而分布式数据库系统就能解决这些问题。
复制透明性
用户不用关心数据库在网络中各个节点的复制情况,而被复制的数据更新都由系统自动完成。在DDBS中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据,在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效率。但是,对于复制数据的更新操作,就要涉及对所有复制数据的更新。
易于扩展性
在大多数网络环境中,单个数据库服务器无法满足业务增长的需求。如果服务器软件透明的水平扩展,那么就可以增加多个服务器来进一步分布数据和分散处理任务。
适应性
使用数据库的单位各部门在组织机构上常常是分散的(如分为部门、科室、车间等),在地理上也是非集中式的。DDBS的结构符合部门分布的组织结构,允许各个部门对常用的数据存储在本地,实现本地录入、查询和维护并能实行局部控制。由于计算机资源靠近用户,因而可以降低通信代价、提高响应速度,实现数据库使用的方便和经济。
可靠性和可用性
改善系统的可靠性和可用性是DDB的主要目标,可将数据分布于多个场地,并增加适当的冗余度,以此提高系统的可靠性。对于一些可靠性要求较高的系统而言,这一点显得尤其重要。假设一个场地出了故障并不会引起整个系统崩溃,故障场地的用户可以通过其他场地进入系统,而其他场地的用户可以由系统自动选择存取路径,避开故障场地,利用其他数据副本执行操作,不影响业务的正常运行。
充分性
所谓充分性是指提高现有集中式数据库的利用率。当在一个大企业或大部门中已建成了若干数据库之后,为了利用相互的资源和开发全局应用,就要研制分布式数据库系统。这种情况可称为自底向上地建立分布式系统。这种方法虽然也要对各现存的局部数据库系统做某些改动和重构,但是比起把这些数据库集中起来重建一个集中式数据库,无论从经济上还是从组织上考虑,DDB都是较好的选择。
扩展性
当一个单位规模扩大要增加新的部门(如银行系统增加新的分行或工厂增加新的科室、车间)时,DDBS的结构为扩展系统的处理能力提供了较好的途径–可以在 DDBS中增加一个新的节点,这样做比在集中式系统中扩大系统规模要方便、灵活、经济得多。
在集中式系统中为了扩大规模,常用的方法有两种:一种是在开始设计时留有较大的余地。此方法容易造成浪费,而且由于预测困难,设计结果仍可能不适应情况的变化;另一种方法是系统升级,这会影响现有应用的正常运行,并且当升级涉及不兼容的硬件或系统软件有了重大修改而要相应地修改已开发的应用软件时,升级的代价就十分昂贵,常常致使升级的方法不可行。DDBS能方便地把一个新的节点纳人系统,不影响现有系统的结构和系统的正常运行,提供了逐渐扩展系统能力的较好途径。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。