系统分布式情况下最终一致性方案梳理

系统分布式情况下最终一致性方案梳理
系统分布式情况下最终一致性方案梳理

系统分布式情况下最终一致性方案梳理

本文章来自于阿里云云栖社区

摘要:前言目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。前言

目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。根据笔者最近几年的了解,总结了几个点,更多的应用系统在编码的时候,更加关注数据的一致性,这样系统才是健壮的。

基础理论相关

说起事务,目前的几个理论,ACID事务特性,CAP分布式理论,以及BASE 等,ACID在数据库事务中体现,CAP和BASE则是分布式事务的理论,结合业务系统,例如订单管理,例如仓储管理等,可以借鉴这些理论,从而解决问题。 ACID 特性

o A(原子性)事务的原子操作单元,对数据的修改,要么全部执行,要么全部不执行;

o C(一致性)在事务开始和完成时,数据必须保持一致状态,相关的数据规则必须应用于事务的修改,以保证数据的完整性,事务结束时,所有的内部数据结构必须正确;

o I(隔离性)保证事务不受外部并发操作的独立环境执行;

o D(持久性)事务完成之后,对于数据的修改是永久的,即使系统出现故障也能够保持;

?CAP

o C(一致性)一致性是指数据的原子性,在经典的数据库中通过事务来保障,事务完成时,无论成功或回滚,数据都会处于一致的状态,在分布式环境下,一致性是指多个节点数据是否一致;

o A(可用性)服务一直保持可用的状态,当用户发出一个请求,服务能在一定的时间内返回结果;

o P(分区容忍性)在分布式应用中,可能因为一些分布式的原因导致系统无法运转,好的分区容忍性,使应用虽然是一个分布式系统,但是好像一个可以正常运转的整体

?BASE

o BA: Basic Availability 基本业务可用性;

o S: Soft state 柔性状态;

o E: Eventual consistency 最终一致性;

最终一致性的几种做法

单数据库情况下的事务

如果应用系统是单一的数据库,那么这个很好保证,利用数据库的事务特性来满足事务的一致性,这时候的一致性是强一致性的。对于java应用系统来讲,很少直接通过事务的start和commit以及rollback来硬编码,大多通过spring的事务模板或者声明式事务来保证。

基于事务型消息队列的最终一致性

借助消息队列,在处理业务逻辑的地方,发送消息,业务逻辑处理成功后,提交消息,确保消息是发送成功的,之后消息队列投递来进行处理,如果成功,则结

束,如果没有成功,则重试,直到成功,不过仅仅适用业务逻辑中,第一阶段成功,第二阶段必须成功的场景。对应上图中的C流程。

基于消息队列+定时补偿机制的最终一致性

前面部分和上面基于事务型消息的队列,不同的是,第二阶段重试的地方,不再是消息中间件自身的重试逻辑了,而是单独的补偿任务机制。其实在大多数的逻辑中,第二阶段失败的概率比较小,所以单独独立补偿任务表出来,可以更加清晰,能够比较明确的直到当前多少任务是失败的。对应上图的E流程。

业务系统业务逻辑的commit/rollback机制

这一点说的话确实不难,commit和rollback是数据库事务中的比较典型的概念,但是在系统分布式情况下,需要业务代码中实现这种,成功了commit,失败了rollback。

业务应用系统的幂等性控制

为啥要做幂等呢?原因很简单,在系统调用没有达到期望的结果后,会重试。那重试就会面临问题,重试之后不能给业务逻辑带来影响,例如创建订单,第一次调用超时了,但是调用的系统不知道超时了是成功了还是失败了,然后他就重试,但是实际上第一次调用订单创建是成功了的,这时候重试了,显然不能再创建订单了。

?查询

查询的API,可以说是天然的幂等性,因为你查询一次和查询两次,对于系统来讲,没有任何数据的变更,所以,查询一次和查询多次一样的。

?MVCC方案

多版本并发控制,update with condition,更新带条件,这也是在系统设计的时候,合理的选择乐观锁,通过version或者其他条件,来做乐观锁,这样保证更新及时在并发的情况下,也不会有太大的问题。例如update table_xxx set

name=#name#,version=version+1 where version=#version# ,或者是update table_xxx set quality=quality-#subQuality# where quality-#subQuality# >= 0 。?单独的去重表

如果涉及到的去重的地方特别多,例如ERP系统中有各种各样的业务单据,每一种业务单据都需要去重,这时候,可以单独搞一张去重表,在插入数据的时候,插入去重表,利用数据库的唯一索引特性,保证唯一的逻辑。

?分布式锁

还是拿插入数据的例子,如果是分布是系统,构建唯一索引比较困难,例如唯一性的字段没法确定,这时候可以引入分布式锁,通过第三方的系统,在业务系统插入数据或者更新数据,获取分布式锁,然后做操作,之后释放锁,这样其实是把多线程并发的锁的思路,引入多多个系统,也就是分布式系统中得解决思路。?删除数据

删除数据,仅仅第一次删除是真正的操作数据,第二次甚至第三次删除,直接返回成功,这样保证了幂等。

?插入数据的唯一索引

插入数据的唯一性,可以通过业务主键来进行约束,例如一个特定的业务场景,三个字段肯定确定唯一性,那么,可以在数据库表添加唯一索引来进行标示。?API层面的幂等

这里有一个场景,API层面的幂等,例如提交数据,如何控制重复提交,这里可以在提交数据的form表单或者客户端软件,增加一个唯一标示,然后服务端,根据这个UUID来进行去重,这样就能比较好的做到API层面的唯一标示。

?状态机幂等

在设计单据相关的业务,或者是任务相关的业务,肯定会涉及到状态机,就是业务单据上面有个状态,状态在不同的情况下会发生变更,一般情况下存在有限状态机,这时候,如果状态机已经处于下一个状态,这时候来了一个上一个状态的变更,理论上是不能够变更的,这样的话,保证了有限状态机的幂等。

异步回调机制的引入

A应用调用B,在同步调用的返回结果中,B返回成功给到A,一般情况下,这时候就结束了,其实在99.99%的情况是没问题的,但是有时候为了确保100%,记住最起码在系统设计中100%,这时候B系统再回调A一下,告诉A,你调用我的逻辑,确实成功了。其实这个逻辑,非常类似TCP协议中的三次握手。上图中的B流程。

类似double check机制的确认机制

还是上图中异步回调的过程,A在同步调用B,B返回成功了。这次调用结束了,但是A为了确保,在过一段时间,这个时间可以是几秒,也可以是每天定时处理,再调用B一次,查询一下之前的那次调用是否成功。例如A调用B更新订单状态,这时候成功了,延迟几秒后,A查询B,确认一下状态是否是自己刚刚期望的。上图中的D流程。

总结

上面的几点总结,更多的在业务系统中体现,在超复杂的系统中,数据的一致性,不是说简单的引入啥中间件能够解决的,更多的是根据业务场景,来灵活应对。

分布式设计与开发(二)_几种必须了解的分布式算法

分布式设计与开发(二)------几种必须了解的分布式算法 分布式设计与开发中有些疑难问题必须借助一些算法才能解决,比如分布式环境一致性问题,感觉以下分布式算法是必须了解的(随着学习深入有待添加): ?Paxos算法 ?一致性Hash算法 Paxos算法 1)问题描述 分布式中有这么一个疑难问题,客户端向一个分布式集群的服务端发出一系列更新数据的消息,由于分布式集群中的各个服务端节点是互为同步数据的,所以运行完客户端这系列消息指令后各服务端节点的数据应该是一致的,但由于网络或其他原因,各个服务端节点接收到消息的序列可能不一致,最后导致各节点的数据不一致。举一个实例来说明这个问题,下面是客户端与服务端的结构图: 当client1、client2、client3分别发出消息指令A、B、C时,Server1~4由于网络问题,接收到的消息序列就可能各不相同,这样就可能由于消息序列的不同导致Server1~4上的数据不一致。对于这么一个问题,在分布式环境中很难通过像单机里处理同步问题那么简单,而Paxos算法就是一种处理类似于以上数据不一致问题的方案。 2)算法本身 算法本身我就不进行完整的描述和推导,网上有大量的资料做了这个事情,但我学习以后感觉莱斯利·兰伯特(Leslie Lamport,paxos算法的奠基人,此人现在在微软研究院)的Paxos Made Simple是学习paxos 最好的文档,它并没有像大多数算法文档那样搞一堆公式和数学符号在那里吓唬人,而是用人类语言让你搞清楚Paxos要解决什么问题,是如何解决的。这里也借机抨击一下那些学院派的研究者,要想让别人认可你的成果,首先要学会怎样让大多数人乐于阅读你的成果,而这个描述Paxos算法的文档就是我们学习的榜样。 言归正传,透过Paxos算法的各个步骤和约束,其实它就是一个分布式的选举算法,其目的就是要在一堆消息中通过选举,使得消息的接收者或者执行者能达成一致,按照一致的消息顺序来执行。其实,以最简单的想法来看,为了达到大伙执行相同序列的指令,完全可以通过串行来做,比如在分布式环境前加上一个FIFO 队列来接收所有指令,然后所有服务节点按照队列里的顺序来执行。这个方法当然可以解决一致性问题,但

分布式数据库系统及其一致性方法研究

2007年第24卷第10期微电子学与计算机 1引言 分布式数据库系统在系统结构上的真正含义是指物理上分布、逻辑上集中的分布式数据库结构。数据在物理上分布后,由系统统一管理,用户看到的似乎不是一个分布式数据库,而是一个数据模式为全局数据模式的集中式数据库[1 ̄5]。 分布式数据库系统包括两个重要组成部分:分布式数据库和分布式数据库管理系统。分布式数据库系统具有位置透明性和复制透明性,使用户看到的系统如同一个集中式系统。分布式数据库系统分为三类:同构同质型DDBS、同构异质型DDBS和异构DDBS。同构同质型DDBS是指各个场地都采用同一类型的数据模型,并且是同一型号数据库管理系统;同构异质型DDBS是指各个场地都采用同一类型的数据模型,但是数据库管理系统是不同型号的;异构型DDBS是指各个场地的数据模型是不同的类型。 分布式结构是相对于集中式结构而言的。从数据处理的角度来说,典型的集中式结构是数据集中存放和处理,用户通过远程终端或通过网络连接来共享集中存放的数据。分布式结构则是将数据及其处理分散在不同场地,各场地各自管理一部分数据,同时又通过网络系统相互连接。各场地的用户除可以访问和处理本地数据外,也可以访问和处理别的场地的数据。分布式数据库是典型的分布式结构。它包括对数据的分布存储和对事务的分布处理。设计一个分布式数据库系统会遇到许多集中式数据库设计中所没有的问题,一致性是其中必须认真对待和解决的主要问题。 2DDBS的体系结构 2.1综合型体系结构 综合型体系结构是指在综合权衡用户需求之后,设计出分布的数据库,然后再设计出一个完整的DBMS,把DBMS的功能按照一定的决策分散配置在一个分布的环境中。每个结点的DBMS均熟知整个网络的情况,也了解其它结点的情况。从整体上,各结点组成一个完整的系统,它们之间是靠进程通讯的手段来维持互访连接,如图1所示。2.2联合型体系结构 联合型体系结构是指每个结点上先有DBMS,以此为基础,再建立分布式环境以实现互访连接。若各个结点的局部DBMS支持同一种数据模式和 分布式数据库系统及其一致性方法研究 刘萍芬,马瑞芳,王军 (西安交通大学电信学院,陕西西安710049) 摘要:分布式数据库系统是数据库领域中的一个主要研究方向,数据一致性维护是分布式数据库系统中的一个非常关键的技术问题。在分析分布式数据库系统体系结构的基础上,讨论了两种一致性方法:两阶段提交和复制服务器,并提出一种具有复制服务器的分布式数据库系统的结构框架,它具有有效性和实用性。 关键词:分布式数据库系统;一致性;两阶段提交;复制服务器 中图分类号:TP31文献标识码:A文章编号:1000-7180(2007)10-0137-03 ResearchofDistributedDatabaseSystemandDataConsistency LIUPing-fen,MARui-fang,WANGJun (CollegeofElectronicsandInformationEngineeting,Xi′anJiaotongUniversity,Xi′an710049,China) Abstract:Distributeddatabasesystemisamainresearchdirectioninthedatabasefield.Maintainingthedataconsis-tencyisacriticaltechnicalprobleminthedistributeddatabasesystem.Thispaperdiscussestwomethodsofmaintainingdataconsistencybasedonanalyzingthestructureofthedistributeddatabasesystem,whichare2PCandreplicationserv-er.Thenthepaperputsforwardadistributeddatabaseframeworkwhichhavereplicationserverstructure.Anditiseffec-tiveandapplied. Keywords:distributeddatabasesystem;dataconsistency;2PC;replicationserver 收稿日期:2006-10-27 137

分布式文件存储方案

1DFS系统 (DFS) 是AFS的一个版本,作为开放软件基金会(OSF)的分布 分布式文件系统 式计算环境(DCE)中的文件系统部分。 如果文件的访问仅限于一个用户,那么分布式文件系统就很容易实现。可惜的是,在许多网络环境中这种限制是不现实的,必须采取并发控制来实现文件的多用户访问,表现为如下几个形式: 只读共享任何客户机只能访问文件,而不能修改它,这实现起来很简单。 受控写操作采用这种方法,可有多个用户打开一个文件,但只有一个用户进行写修改。而该用户所作的修改并不一定出现在其它已打开此文件的用户的屏幕上。 并发写操作这种方法允许多个用户同时读写一个文件。但这需要操作系统作大量的监控工作以防止文件重写,并保证用户能够看到最新信息。这种方法即使实现得很好,许多环境中的处理要求和网络通信量也可能使它变得不可接受。 NFS和AFS的区别 NFS和AFS的区别在于对并发写操作的处理方法上。当一个客户机向服务器请求一个文件(或数据库记录),文件被放在客户工作站的高速缓存中,若另一个用户也请求同一文件,则它也会被放入那个客户工作站的高速缓存中。当两个客户都对文件进行修改时,从技术上而言就存在着该文件的三个版本(每个客户机一个,再加上服务器上的一个)。有两种方法可以在这些版本之间保持同步: 无状态系统在这个系统中,服务器并不保存其客户机正在缓存的文件的信息。因此,客户机必须协同服务器定期检查是否有其他客户改变了自己正在缓存的文件。这种方法在大的环境中会产生额外的LAN通信开销,但对小型LAN来说,这是一种令人满意的方法。NFS 就是个无状态系统。 回呼(Callback)系统在这种方法中,服务器记录它的那些客户机的所作所为,并保留它们正在缓存的文件信息。服务器在一个客户机改变了一个文件时使用一种叫回叫应答(callbackpromise)的技术通知其它客户机。这种方法减少了大量网络通信。AFS(及OSFDCE的DFS)就是回叫系统。客户机改变文件时,持有这些文件拷贝的其它客户机就被回叫并通知这些改变。 无状态操作在运行性能上有其长处,但AFS通过保证不会被回叫应答充斥也达到了这一点。方法是在一定时间后取消回叫。客户机检查回叫应答中的时间期限以保证回叫应答是当前有效的。回叫应答的另一个有趣的特征是向用户保证了文件的当前有效性。换句话说,若

Hadoop分布式文件系统:架构和设计

Hadoop分布式文件系统:架构和设计 引言 (2) 一前提和设计目标 (2) 1 hadoop和云计算的关系 (2) 2 流式数据访问 (2) 3 大规模数据集 (2) 4 简单的一致性模型 (3) 5 异构软硬件平台间的可移植性 (3) 6 硬件错误 (3) 二HDFS重要名词解释 (3) 1 Namenode (4) 2 secondary Namenode (5) 3 Datanode (6) 4 jobTracker (6) 5 TaskTracker (6) 三HDFS数据存储 (7) 1 HDFS数据存储特点 (7) 2 心跳机制 (7) 3 副本存放 (7) 4 副本选择 (7) 5 安全模式 (8) 四HDFS数据健壮性 (8) 1 磁盘数据错误,心跳检测和重新复制 (8) 2 集群均衡 (8) 3 数据完整性 (8) 4 元数据磁盘错误 (8) 5 快照 (9)

引言 云计算(cloud computing),由位于网络上的一组服务器把其计算、存储、数据等资源以服务的形式提供给请求者以完成信息处理任务的方法和过程。在此过程中被服务者只是提供需求并获取服务结果,对于需求被服务的过程并不知情。同时服务者以最优利用的方式动态地把资源分配给众多的服务请求者,以求达到最大效益。 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS 能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。 一前提和设计目标 1 hadoop和云计算的关系 云计算由位于网络上的一组服务器把其计算、存储、数据等资源以服务的形式提供给请求者以完成信息处理任务的方法和过程。针对海量文本数据处理,为实现快速文本处理响应,缩短海量数据为辅助决策提供服务的时间,基于Hadoop云计算平台,建立HDFS分布式文件系统存储海量文本数据集,通过文本词频利用MapReduce原理建立分布式索引,以分布式数据库HBase 存储关键词索引,并提供实时检索,实现对海量文本数据的分布式并行处理.实验结果表 明,Hadoop框架为大规模数据的分布式并行处理提供了很好的解决方案。 2 流式数据访问 运行在HDFS上的应用和普通的应用不同,需要流式访问它们的数据集。HDFS的设计中更多的考虑到了数据批处理,而不是用户交互处理。比之数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。 3 大规模数据集 运行在HDFS上的应用具有很大的数据集。HDFS上的一个典型文件大小一般都在G字节至T字节。因此,HDFS被调节以支持大文件存储。它应该能提供整体上高的数据传输带宽,能在一个集群里扩展到数百个节点。一个单一的HDFS实例应该能支撑数以千万计的文件。

PaxosRaft 分布式一致性算法原理剖析及其在实战中的应用

基础架构事业群-数据库技术-数据库内核 何登成 Paxos/Raft 分布式一致性算法原理剖析及其在实战中的应用

目录Contents Consensus Problem Basic Paxos Multi-Paxos and Raft 实战分析 参考资料

定义:The consensus problem requires agreement among a number of processes (or agents) for a single data value.

?理解Consensus 问题的关键 ?绝对公平,相互独立:所有参与 者均可提案,均可参与提案的决 策 ?针对某一件事达成完全一致:一 件事,一个结论 ?已经达成一致的结论,不可被推 翻 ?在整个决策的过程中,没有参与 者说谎 ?晚饭吃什么? 炉鱼食堂同乐会 炉鱼炉鱼 炉鱼 Consensus Algorithm

Consensus Algorithm:Basic Paxos ?Basic Paxos ?一个或多个Servers可以发起提案(Proposers) ?系统必须针对所有提案中的某一个提案,达成一致 ?何谓达成一致?系统中的多数派同时认可该提案?最多只能针对一个确定的提案达成一致 ?Liveness (只要系统中的多数派存活,并且可以相互通信)?整个系统一定能够达成一致状态,选择一个确定的提案

Basic Paxos:Components ?Proposers ?Active:提案发起者(value) ?处理用户发起的请求 ?Acceptors ?Passive:参与决策,回应 Proposers的提案 ?存储accept的提案(value), 存储决议处理的状态 ?Learners ?Passive:不参与决策,从 Proposers/Acceptors学习最新 达成一致的提案(value)?本文接下来的部分,一个Server同时具有Proposer和Acceptor两种角色,Learner角色逻辑简单,暂时不讨论

分布式数据处理

分布式数据处理 整个70年代中期,流行的思想是利用大型设备采用集中信息服务的方式来争取公司信息服务的全面性和综合性。随着规模的扩大,灵活性就降低了,这就削弱了信息服务部门的响应能力。这种响应能力的减弱是取消集中方式的主要原因;另一个原因是计算机硬件成本的迅速 降低, □分布式数据处理的含义 分散的选择方案就是分布式数据处理(DDP)方案。分布式数据处理不仅是一种技术上的概念 , 也是一种结构上的概念。分布式数据处理的概念是建立在集中和分散这两种信息服务都能实 现的总则基砒上的" 集中/分散的问题归结起来就是建立综合的信息系统(集中)和对用户服务(分散)这两者结合 的问题,规模的大小已不再是争论点。从理论上来说,分布式数据处理将这两个领域能最好地结合在一起。计算机系统不仅能连接到所有的业务领域,而且能致力于各业务领域的应用。 由于所有的分布式系统都用一个网络联在一起,所以信息系统的综合也就很容易实现了。 公司应诊认识到分布式处理系统会貝右枚高的运行效率,因为其中某个计算机系统的失效并不危及整个公司的工作。事实上,在一个设计周到的分布式数据处理系统中,任何一个计算机子系统都能用来使整个系统正’ □分布式数据处理的范围 在分布式数据处理系统中,计算机组成网络,每台计算机可以与一台或多台其它计算机联结起来。分布式数据处理网络一般按照地理位置或功能来考虑设计,而大多数网络是这两方面的结合° 分布式数据处理也是一个经常使用的术语,它与日常所说的意思不同,很容易被用户和信息 服务工作人员误解。由于缺乏统一的认识,所以经常导致一些问题得不到解决。例如:“分 布的内容是什么?”“分布到什么程度才能最好地满足公司的需要?”下面所列的部分或全部內容部可以用丁分布式罟息朋务系统: 1. 输入/谕Fi 2. 处 II! 3. 4. 5. 3. : 在考虑任一信息服务改革尝试之前,应首先解决哪一方面要分布,以及哪一方面要分布到什 么程度的问題。 □分布式数据处理的控制 卫星计算机系统和分布式数据处理系统的中心能够通过集中的信息服务部门(由业务领域所分派的)或决策组织(其中用户和信息服务分担管理责任)来控制。无论哪一种情况,为了保持公司数据库的兼容性、一致性和信息处理的综合性, 1.评价和选择彼件 2. 3.

Hadoop分布式文件系统方案

Hadoop分布式文件系统:架构和设计要点 Hadoop分布式文件系统:架构和设计要点 原文:https://www.360docs.net/doc/813809963.html,/core/docs/current/hdfs_design.html 一、前提和设计目标 1、硬件错误是常态,而非异常情况,HDFS可能是有成百上千的server组成,任何一个组件都有可能一直失效,因此错误检测和快速、自动的恢复是HDFS的核心架构目标。 2、跑在HDFS上的应用与一般的应用不同,它们主要是以流式读为主,做批量处理;比之关注数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。 3、HDFS以支持大数据集合为目标,一个存储在上面的典型文件大小一般都在千兆至T字节,一个单一HDFS实例应该能支撑数以千万计的文件。 4、 HDFS应用对文件要求的是write-one-read-many访问模型。一个文件经过创建、写,关闭之后就不需要改变。这一假设简化了数据一致性问题,使高吞吐量的数据访问成为可能。典型的如MapReduce框架,或者一个web crawler应用都很适合这个模型。 5、移动计算的代价比之移动数据的代价低。一个应用请求的计算,离它操作的数据越近就越高效,这在数据达到海量级别的时候更是如此。将计算移动到数据附近,比之将数据移动到应用所在显然更好,HDFS提供给应用这样的接口。 6、在异构的软硬件平台间的可移植性。 二、Namenode和Datanode HDFS采用master/slave架构。一个HDFS集群是有一个Namenode和一定数目的Datanode 组成。Namenode是一个中心服务器,负责管理文件系统的namespace和客户端对文件的访问。Datanode在集群中一般是一个节点一个,负责管理节点上它们附带的存储。在部,一个文件其实分成一个或多个block,这些block存储在Datanode集合里。Namenode执行文件系统的namespace操作,例如打开、关闭、重命名文件和目录,同时决定block到具体Datanode节点的映射。Datanode在Namenode的指挥下进行block的创建、删除和复制。Namenode和Datanode 都是设计成可以跑在普通的廉价的运行linux的机器上。HDFS采用java语言开发,因此可以部署在很大围的机器上。一个典型的部署场景是一台机器跑一个单独的Namenode节点,集群中的其他机器各跑一个Datanode实例。这个架构并不排除一台机器上跑多个Datanode,不过这比较少见。

分布式文件系统架构设计(20201126073806)

分布式文件系统架构设计 1. 前言...................................................... 3.

2. HDFS1 (3) 3. HDFS2 (5) 4. HDFS3 ............................................................................................. 1 1 5. 结语..................................................... 1.5

1. 刖言 Hadoop 是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 Hadoop 实现了一个分布式文件系统(Hadoop Distributed File System ),简称HDFS,解 决了海量数据存储的问题;实现了一个分布式计算引擎MapReduce ,解决了海量数据如何计 算的问题;实现了一个分布式资源调度框架YARN,解决了资源调度,任务管理的问题。而我 们今天重点给大家介绍的是Hadoop 里享誉世界的优秀的分布式文件系统-HDFS。 Hadoop 重要的比较大的版本有:Hadoop1 ,Hadoop2 , hadoop3 。同时也相对应的有HDFS1 ,HDFS2,HDFS3三个大版本。后面的HDFS的版本,都是对前一个版本的架构进行了调整优 化,而在这个调整优化的过程当中都是解决上一个版本的架构缺陷,然而这些低版本的架构缺陷也是我们在平时工作当中会经常遇到的问题,所以这篇文章一个重要的目的就是通过给大家介绍HDFS不同版本的架构演进,通过学习高版本是如何解决低版本的架构问题从而来提升我 们的系统架构能力。 2. HDFS1

分布式数据处理

分布式数据处理 Prepared on 22 November 2020

分布式数据处理 整个70年代中期,流行的思想是利用大型设备采用集中信息服务的方式来争取公司信息服务的全面性和综合性。随着规模的扩大,灵活性就降低了,这就削弱了信息服务部门的响应能力。这种响应能力的减弱是取消集中方式的主要原因;另一个原因是计算机硬件成本的迅速降低,特别是小型计算机系统的降价。 □分布式数据处理的含义 分散的选择方案就是分布式数据处理(DDP)方案。分布式数据处理不仅是一种技术上的概念,也是一种结构上的概念。分布式数据处理的概念是建立在集中和分散这两种信息服务都能实现的原则基础上的。 集中/分散的问题归结起来就是建立综合的信息系统(集中)和对用户服务(分散)这两者结合的问题,规模的大小已不再是争论点。从理论上来说,分布式数据处理将这两个领域能最好地结合在一起。计算机系统不仅能连接到所有的业务领域,而且能致力于各业务领域的应用。由于所有的分布式系统都用一个网络联在一起,所以信息系统的综合也就很容易实现了。 公司应该认识到分布式处理系统会具有较高的运行效率,因为其中某个计算机系统的失效并不危及整个公司的工作。事实上,在一个设计周到的分布式数据处理系统中,任何一个计算机子系统都能用来使整个系统正常工作。 □分布式数据处理的范围 在分布式数据处理系统中,计算机组成网络,每台计算机可以与一台或多台其它计算机联结起来。分布式数据处理网络一般按照地理位置或功能来考虑设计,而大多数网络是这两方面的结合。 分布式数据处理也是一个经常使用的术语,它与日常所说的意思不同,很容易被用户和信息服务工作人员误解。由于缺乏统一的认识,所以经常导致一些问题得不到解决。例如:“分布的内容是什么”“分布到什么程度才能最好地满足公司的需要”下面所列的部分或全部内容都可以用于分布式信息服务系统: 1.输入/输出 2.处理 3.数据存储 4.个人信息或管理部门的信息 5.检查和控制 6.规划 在考虑任一信息服务改革尝试之前,应首先解决哪一方面要分布,以及哪一方面要分布到什么程度的问题。 □分布式数据处理的控制 卫星计算机系统和分布式数据处理系统的中心能够通过集中的信息服务部门(由业务领域所分派的)或决策组织(其中用户和信息服务分担管理责任)来控制。无论哪一种情况,为了保持公司数据库的兼容性、一致性和信息处理的综合性,集中小组通常应负责下列工作: 1.评价和选择硬件 2.制定标准、方法和文件 3.制定近期和长期信息服务规划 4.补充或雇佣信息服务人员 5.运行公司的数据库(包括提供数据库所需的数据)

分布式数据处理(DDP)

分布式数据处理(DDP) 整个70年代中期,流行的思想是利用大型设备采用集中信息服务的方式来争取公司信息服务的全面性和综合性。随着规模的扩大,灵活性就降低了,这就削弱了信息服务部门的响应能力。这种响应能力的减弱是取消集中方式的主要原因;另一个原因是计算机硬件成本的迅速降低,特别是小型计算机系统的降价。 □分布式数据处理的含义 分散的选择方案就是分布式数据处理(DDP)方案。分布式数据处理不仅是一种技术上的概念,也是一种结构上的概念。分布式数据处理的概念是建立在集中和分散这两种信息服务都能实现的原则基础上的。 集中/分散的问题归结起来就是建立综合的信息系统(集中)和对用户服务(分散)这两者结合的问题,规模的大小已不再是争论点。从理论上来说,分布式数据处理将这两个领域能最好地结合在一起。计算机系统不仅能连接到所有的业务领域,而且能致力于各业务领域的应用。由于所有的分布式系统都用一个网络联在一起,所以信息系统的综合也就很容易实现了。 公司应该认识到分布式处理系统会具有较高的运行效率,因为其中某个计算机系统的失效并不危及整个公司的工作。事实上,在一个设计周到的分布式数据处理系统中,任何一个计算机子系统都能用来使整个系统正常工作。 □分布式数据处理的范围 在分布式数据处理系统中,计算机组成网络,每台计算机可以与一台或多台其他计算机联结起来。分布式数据处理网络一般按照地理位置或功能来考虑设计,而大多数网络是这两方面的结合。 分布式数据处理也是一个经常使用的术语,它与日常所说的意思不同,很容易被用户和信息服务工作人员误解。由于缺乏统一的认识,所以经常导致一些问题得不到解决。例如:“分布的内容是什么?”“分布到什么程度才能最好地满足公司的需要?”下面所列的部分或全部内容都可以用于分布式信息服务系统: 1.输入/输出

分布式文件系统设计方案

分布式文件系统(DFS)解决方案 一“分布式文件系统(DFS)”概述 DFS并不是一种文件系统,它是Windows Server System上的一种客户/服务器模式的网络服务。它可以让把局域网中不同计算机上的不同的文件共享按照其功能组织成一个逻辑的分级目录结构。系统管理员可以利用分布式文件系统(DFS),使用户访问和管理那些物理上跨网络分布的文件更加容易。通过DFS,可以使分布在多个服务器或者不同网络位置的文件在用户面前显示时,就如同位于网络上的一个位置。用户在访问文件时不再需要知道和指定它们的实际物理位置。 例如,如果您的销售资料分散在某个域中的多个存储设备上,您可以利用DFS 使其显示时就好像所有的资料都位于同一网络共享下,这样用户就不必到网络上的多个位置去查找他们需要的信息。 二部署使用“分布式文件系统(DFS)”的原因 ●访问共享文件夹的用户分布在一个站点的多个位置或多个站点上; ●大多数用户都需要访问多个共享文件夹; ●通过重新分布共享文件夹可以改善服务器的负载平衡状况; ●用户需要对共享文件夹的不间断访问;

●您的组织中有供内部或外部使用的Web 站点; ●用户访问共享文件需要权限。 三“分布式文件系统(DFS)”类型 可以按下面两种方式中的任何一种来实施分布式文件系统: 1.作为独立的分布式文件系统。 ●不使用Active Directory。 ●至多只能有一个根目录级别的目标。 ●使用文件复制服务不能支持自动文件复制。 ●通过服务器群集支持容错。 2.作为基于域的分布式文件系统。 ●必须宿主在域成员服务器上。 ●使它的DFS 名称空间自动发布到Active Directory 中。 ●可以有多个根目录级别的目标。 ●通过FRS 支持自动文件复制。 ●通过FRS 支持容错。 四分布式文件系统特性 除了Windows Server System 中基于服务器的DFS 组件外,还有基于客户的DFS 组件。DFS 客户程序可以将对DFS 根目录或DFS 链接的引用缓存一段时间,该时间由管理员指定。此存储和读取过程对于

分布式文件系统MFS(moosefs)实现存储共享

由于用户数量的不断攀升,我对访问量大的应用实现了可扩展、高可靠的集群部署(即lvs+keepalived的方式),但仍然有用户反馈访问慢的问题。通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS。在我这个网络环境里,N个服务器通过nfs方式共享一个服务器的存储空间,使得 NFS服务器不堪重负。察看系统日志,全是nfs服务超时之类的报错。一般情况下,当nfs客户端数目较小的时候,NFS性能不会出现问题;一旦NFS服务器数目过多,并且是那种读写都比较频繁的操作,所得到的结果就不是我们所期待的。 下面是某个集群使用nfs共享的示意图: 这种架构除了性能问题而外,还存在单点故障,一旦这个NFS服务器发生故障,所有靠共享提供数据的应用就不再可用,尽管用rsync方式同步数据到另外一个服务器上做nfs服务的备份,但这对提高整个系统的性能毫无帮助。基于这样一种需求,我们需要对nfs服务器进行优化或采取别的解决方案,然而优化并不能对应对日益增多的客户端的性能要求,因此唯一的选择只能是采取别的解决方案了;通过调研,分布式文件系统是一个比较合适的选择。采用分布式文件系统后,服务器之间的数据访问不再是一对多的关系(1个NFS服务器,多个NFS 客户端),而是多对多的关系,这样一来,性能大幅提升毫无问题。 到目前为止,有数十种以上的分布式文件系统解决方案可供选择,如 lustre,hadoop,Pnfs等等。我尝试了 PVFS,hadoop,moosefs这三种应用,参看了lustre、KFS等诸多技术实施方法,最后我选择了moosefs(以下简称MFS)

这种分布式文件系统来作为我的共享存储服务器。为什么要选它呢?我来说说我的一些看法: 1、实施起来简单。MFS的安装、部署、配置相对于其他几种工具来说,要简单和容易得多。看看lustre 700多页的pdf文档,让人头昏吧。 2、不停服务扩容。MFS框架做好后,随时增加服务器扩充容量;扩充和减少容量皆不会影响现有的服务。注:hadoop也实现了这个功能。 3、恢复服务容易。除了MFS本身具备高可用特性外,手动恢复服务也是非常快捷的,原因参照第1条。 4、我在实验过程中得到作者的帮助,这让我很是感激。 MFS文件系统的组成 1、元数据服务器。在整个体系中负责管理管理文件系统,目前MFS只支持一个元数据服务器master,这是一个单点故障,需要一个性能稳定的服务器来充当。希望今后MFS能支持多个master服务器,进一步提高系统的可靠性。 2、数据存储服务器chunkserver。真正存储用户数据的服务器。存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间复制(复制份数可以手工指定,建议设置副本数为3)。数据服务器可以是多个,并且数量越多,可使用的“磁盘空间”越大,可靠性也越高。 3、客户端。使用MFS文件系统来存储和访问的主机称为MFS的客户端,成功挂接MFS文件系统以后,就可以像以前使用NFS一样共享这个虚拟性的存储了。 元数据服务器安装和配置

3种分布式文件系统

第一部分CEPH 1.1 特点 Ceph最大的特点是分布式的元数据服务器通过CRUSH,一种拟算法来分配文件的locaiton,其核心是 RADOS(resilient automatic distributed object storage),一个对象集群存储,本身提供对象的高可用,错误检测和修复功能。 1.2 组成 CEPH文件系统有三个主要模块: a)Client:每个Client实例向主机或进程提供一组类似于POSIX的接口。 b)OSD簇:用于存储所有的数据和元数据。 c)元数据服务簇:协调安全性、一致性与耦合性时,管理命名空间(文件名和 目录名) 1.3 架构原理 Client:用户 I/O:输入/输出 MDS:Metadata Cluster Server 元数据簇服务器 OSD:Object Storage Device 对象存储设备

Client通过与OSD的直接通讯实现I/O操作。这一过程有两种操作方式: 1. 直接通过Client实例连接到Client; 2. 通过一个文件系统连接到Client。 当一个进行打开一个文件时,Client向MDS簇发送一个请求。MDS通过文件系统层级结构把文件名翻译成文件节点(inode),并获得节点号、模式(mode)、大小与其他文件元数据。注意文件节点号与文件意义对应。如果文件存在并可以获得操作权,则MDS通过结构体返回节点号、文件长度与其他文件信息。MDS同时赋予Client操作权(如果该Client还没有的话)。目前操作权有四种,分别通过一个bit表示:读(read)、缓冲读(cache read)、写(write)、缓冲写(buffer write)。在未来,操作权会增加安全关键字,用于client向OSD证明它们可以对数据进行读写(目前的策略是全部client 都允许)。之后,包含在文件I/O中的MDS被用于限制管理能力,以保证文件的一致性与语义的合理性。 CEPH产生一组条目来进行文件数据到一系列对象的映射。为了避免任何为文件分配元数据的需要。对象名简单的把文件节点需要与条目号对应起来。对象复制品通过CRUSH(著名的映射函数)分配给OSD。例如,如果一个或多个Client打开同一个文件进行读操作,一个MDS会赋予他们读与缓存文件内容的能力。通过文件节点号、层级与文件大小,Client可以命名或分配所有包含该文件数据的对象,并直接从OSD簇中读取。任何不存在的对象或字节序列被定义为文件洞或0。同样的,如果Client打开文件进行写操作。它获得使用缓冲写的能力。任何位置上的数据都被写到合适的OSD上的合适的对象中。Client 关闭文件时,会自动放弃这种能力,并向MDS提供新的文件大小(写入时的最大偏移)。它重新定义了那些存在的并包含文件数据的对象的集合。 CEPH的设计思想有一些创新点主要有以下两个方面: 第一,数据的定位是通过CRUSH算法来实现的。

区块链技术软件开发实践:分布式系统一致性共识原理FLP、Paxos拜占庭Raft算法

分布式系统一致性与共识的原理 1一致性问题 一致性问题是分布式领域最为基础也是最重要的问题。如果分布式系统能实现“一致”,对外就可以呈现为一个完美的、可扩展的“虚拟节点”,相对物理节点具备更优越性能和稳定性。这也是分布式系统希望能实现的最终目标。 1.1定义与重要性 定义一致性(c o n s i s t e n c y),早期也叫a g r ee m e n t,是指对于分布式系统中的多个服务节点,给定一系列操作,在约定协议的保障下,试图使得它们对处理结果达成“某种程度”的认同。 理想情况下,如果各个服务节点严格遵循相同的处理协议,构成相同的处理状态机,给定相同的初始状态和输入序列,则可以保障在处理过程中的每个环节的结果都是相同的。 那么,为什么说一致性问题十分重要呢?举个现实生活中的例子,多个售票处同时出售某线路上的火车票,该线路上存 在多个经停站,怎么才能保证在任意区间都不会出现超售(同一个座位卖给两个人)的情况呢? 这个问题看起来似乎没那么难,现实生活中经常通过分段分站售票的机制。然而,为了支持海量的用户和避免出现错误,存在很多设计和实现上的挑战。特别在计算机的世界里,为了达到远超普通世界的高性能和高可扩展性需求,问题会变得更为复杂。 注意一致性并不代表结果正确与否,而是系统对外呈现的状态一致与否;

例如,所有节点都达成失败状态也是一种一致。 1.2问题与挑战

看似强大的计算机系统,实际上很多地方都比人类世界要脆弱得多。特别是在分布式计算机集群系统中,如下几个方面很容易出现问题: ·节点之间的网络通信是不可靠的,包括消息延迟、乱序和内容错误等; ·节点的处理时间无法保障,结果可能出现错误,甚至节点自身可能发生宕机; ·同步调用可以简化设计,但会严重降低分布式系统的可扩展性,甚至使其退化为单点系统。 仍以火车票售卖问题为例,愿意动脑筋的读者可能已经想到了一些不错的解决思路,例如: ·要出售任意一张票前,先打电话给其他售票处,确认下当前这张票不冲突。即通过同步调用来避免冲突; ·多个售票处提前约好隔离的售票时间。比如第一家可以在上午8点到9点期间卖票,接下来一个小时是另外一家……即通过令牌机制来避免冲突; ·成立一个第三方的存票机构,票集中存放,每次卖票前找存票机构查询。此时问题退化为中心化单点系统。 当然,还会有更多方案。实际上,这些方案背后的思想,都是将可能引发 不一致的并行操作进行串行 化。这实际上也是现代分布式系统处理一致性问题的基础思路。只是因为现在的计算机系统应对故障往往不够“智能”,而人们又希望系统可以更快更稳定地工作,所以实际可行的方案需要更加全面和更加高效。 注意这些思路都没有考虑请求和答复消息出现失败的情况,同时假设每个售票处的售票机制是正常工作的。 1.3一致性要求

多智能体系统一致性综述

多智能体系统一致性综述 一引言 多智能体系统在20世纪80年代后期成为分布式人工智能研究中的主要研究对象。研究多智能体系统的主要目的就是期望功能相对简单的智能体系统之间进行分布式合作协调控制,最终完成复杂任务。多智能体系统由于其强健、可靠、高效、可扩展等特性,在科学计算、计算机网络、机器人、制造业、电力系统、交通控制、社会仿真、虚拟现实、计算机游戏、军事等方面广泛应用。多智能体的分布式协调合作能力是多智能体系统的基础,是发挥多智能体系统优势的关键,也是整个系统智能性的体现。 在多智能体分布式协调合作控制问题中,一致性问题作为智能体之间合作协调控制的基础,具有重要的现实意义和理论价值。所谓一致性是指随着时间的演化,一个多智能体系统中所有智能体的某一个状态趋于一致。一致性协议是智能体之间相互作用、传递信息的规则,它描述了每个智能体和其相邻的智能体的信息交互过程。当一组智能体要合作共同去完成一项任务,合作控制策略的有效性表现在多智能体必须能够应对各种不可预知的形式和突然变化的环境,必须对任务达成一致意见,这就要求智能体系统随着环境的变化能够达到一致。因此,智能体之间协调合作控制的一个首要条件是多智能体达到一致。 近年来,一致性问题的研究发展迅速,包括生物科学、物理科学、系统与控制科学、计算机科学等各个领域都对一致性问题从不同层面进行了深入分析,研究进展主要集中在群体集、蜂涌、聚集、传感器网络估计等问题。 目前,许多学科的研究人员都开展了多智能体系统的一致性问题的研究,比如多智能体分布式一致性协议、多智能体协作、蜂涌问题、聚集问题等等。下面,主要对现有文献中多智能体一致性协议进行了总结,并对相关应用进行简单的介绍。 1.1图论基础 多智能体系统是指由多个具有独立自主能力的智能体通过一定的信息传递方式相互作用形成的系统;如果把系统中的每一个智能体看成是一个节点,任意两个节点传递的智能体之间用有向边来连接的话,智能体的拓扑结构就可以用相应的有向图来表示。 用)(A E,V ,G =来表示一个有向加权图,其中}{n 21v ,,v ,v V =代表图的n 个顶

系统分布式情况下最终一致性方案梳理

系统分布式情况下最终一致性方案梳理 本文章来自于阿里云云栖社区 摘要:前言目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。前言 目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。根据笔者最近几年的了解,总结了几个点,更多的应用系统在编码的时候,更加关注数据的一致性,这样系统才是健壮的。 基础理论相关 说起事务,目前的几个理论,ACID事务特性,CAP分布式理论,以及BASE 等,ACID在数据库事务中体现,CAP和BASE则是分布式事务的理论,结合业务系统,例如订单管理,例如仓储管理等,可以借鉴这些理论,从而解决问题。 ACID 特性 o A(原子性)事务的原子操作单元,对数据的修改,要么全部执行,要么全部不执行; o C(一致性)在事务开始和完成时,数据必须保持一致状态,相关的数据规则必须应用于事务的修改,以保证数据的完整性,事务结束时,所有的内部数据结构必须正确;

o I(隔离性)保证事务不受外部并发操作的独立环境执行; o D(持久性)事务完成之后,对于数据的修改是永久的,即使系统出现故障也能够保持; ?CAP o C(一致性)一致性是指数据的原子性,在经典的数据库中通过事务来保障,事务完成时,无论成功或回滚,数据都会处于一致的状态,在分布式环境下,一致性是指多个节点数据是否一致; o A(可用性)服务一直保持可用的状态,当用户发出一个请求,服务能在一定的时间内返回结果; o P(分区容忍性)在分布式应用中,可能因为一些分布式的原因导致系统无法运转,好的分区容忍性,使应用虽然是一个分布式系统,但是好像一个可以正常运转的整体 ?BASE o BA: Basic Availability 基本业务可用性; o S: Soft state 柔性状态; o E: Eventual consistency 最终一致性; 最终一致性的几种做法

7种分布式文件系统介绍

FastDFS (7) Fastdfs简介 (7) Fastdfs系统结构图 (7) FastDFS和mogileFS的对比 (8) MogileFS (10) Mogilefs简介 (10) Mogilefs组成部分 (10) 0)数据库(MySQL)部分 (10) 1)存储节点 (11) 2)trackers(跟踪器) (11) 3)工具 (11) 4)Client (11) Mogilefs的特点 (12) 1. 应用层——没有特殊的组件要求 (12) 2. 无单点失败 (12) 3. 自动的文件复制 (12) 4. “比RAID好多了” (12) 5. 传输中立,无特殊协议 (13) 6.简单的命名空间 (13) 7.不用共享任何东西 (13) 8.不需要RAID (13)

9.不会碰到文件系统本身的不可知情况 (13) HDFS (14) HDFS简介 (14) 特点和目标 (14) 1. 硬件故障 (14) 2. 流式的数据访问 (14) 3. 简单一致性模型 (15) 4. 通信协议 (15) 基本概念 (15) 1. 数据块(block) (15) 2. 元数据节点(Namenode)和数据节点(datanode) . 16 2.1这些结点的用途 (16) 2.2元数据节点文件夹结构 (17) 2.3文件系统命名空间映像文件及修改日志 (18) 2.4从元数据节点的目录结构 (21) 2.5数据节点的目录结构 (21) 文件读写 (22) 1.读取文件 (22) 1.1 读取文件示意图 (22) 1.2 文件读取的过程 (23) 2.写入文件 (24) 2.1 写入文件示意图 (24)

WIN2003下建立分布式文件系统的操作

WIN2003下建立分布式文件系统的操作 一、创建DFS根 使用分布式文件系统配置DFS分为两步:创建DFS根、创建DFS 链接; 单击开始-管理工具-分布式文件系统,在弹出的页面中右击新建根目录,如图所示; 弹出新建根目录向导;单击下一步;选择根目录类型,如果有AD域建议选择域根目录,如下图所示; 独立根的配置信息存储在根服务器的注册表信息中,如果独立根服务器不可用,会导致DFS不可用。不支持容错。

域根的配置信息存储在AD中,并复制到当前域中所有DC中,以实现容错性,当根服务器不可用时,其它服务器仍可向客户端传送DFS 信息。显然,域根是更加安全的方案,但需要AD域支持。建议连接数不要超过5000个。 单击下一步,输入域名信息,

输入服务器名称;点击浏览查找选择根目录的服务器名称;如图所示;

输入根目录名称和注释;根目录名称即共享访问的顶级的共享名称。如果共享文件夹存在,则直接使用,如果共享文件夹没有创建,便会自动创建一个共享文件夹。 在根目录共享中,选择指定的共享文件夹,如果文件未共享,向导会自动创建对应的文件;根目录建立完成后,分布式文件系统中会相应生成DFS根目录; 创建DFS链接 建立好DFS根目录后,为了能让DFS正常运行,还需建立DFS链接才能完成整个DFS的建立。即在DFS根上右击新建DFS链接,为链接起个名字并指向适当的的共享资源。如图,

在新建链接页面中输入链接名称和目标路径;链接名称即为客户端希望看到的根目录下的共享文件夹的名称。目标路径为服务器中已经共享的文件夹路径,如图所示; 对客户端缓存引用所需时间的解释:客户端对获得的引用进行缓存,对于独立的根目录默认的缓存时间是300秒,对于域根目录默认的缓存时间是1800秒。通常情况无需修改缓存时间配置,如果命名空间中的文件夹目标变更频繁,应考虑减少缓存时间;但减少缓存时间会增加域控制器和命名空间服务器的负载并增加网络访问流量。

相关文档
最新文档