高并发架构技术解决方案?

高并发架构技术解决方案?,第1张

高并发架构的难点是什么?
高并发架构最大问题主要是由于网站PV访问量大,单台服务器承载大量访问所带来的压力,所以会采用多台服务器进行分流,采用服务器集群技术,对于每个请求访问会被 发送到不同的服务器。
这样架构的难点就在管理、维护、监控、负载等等都面临很大的技术问题,同时还需要应对某些业务的突发流量,像秒杀、促销等场景化使用什么技术解决高并发?
互联网分布式架构设计,提高系统并发能力的方式,方法论上主要有两种:垂直扩展(Scale Up)与水平扩展(Scale Out)。
垂直扩展:提升单机处理能力。垂直扩展的方式又有两种:
(1)增强单机硬件性能,例如:增加CPU核数如32核,升级更好的网卡如万兆,升级更好的硬盘如SSD,扩充硬盘容量如2T,扩充系统内存如128G;
(2)提升单机架构性能,例如:使用Cache来减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间;
在互联网业务发展非常迅猛的早期,如果预算不是问题,强烈建议使用“增强单机硬件性能”的方式提升系统并发能力,因为这个阶段,公司的战略往往是发展业务抢时间,而“增强单机硬件性能”往往是最快的方法。
不管是提升单机硬件性能,还是提升单机架构性能,都有一个致命的不足:单机性能总是有极限的。所以互联网分布式架构设计高并发终极解决方案还是水平扩展。
水平扩展:只要增加服务器数量,就能线性扩充系统性能。水平扩展对系统架构设计是有要求的,如何在架构各层进行可水平扩展的设计,以及互联网公司架构各层常见的水平扩展实践。
水平扩展要怎么来做?首先是软件服务拆分到不同的服务器进行部署,全部堆积在一台上性能将会受限。例如:Redis 就只是部署在独立的服务器上,其它软件都在这服务器上出现增加各个软件服务部署的服务后,采用技相关技术手段分担到各个服务器上。nginx反向代理层可以通过“DNS轮询”的方式来进行水平扩展。dns-server对于一个域名配置了多个解析ip,每次DNS解析请求来访问dns-server,会轮询返回这些ip。PHP站点层可以通过修改nginxconf实现负载均衡机制来进行水平扩展。从而设置多个web后端。服务层可以通过服务连接池来进行水平扩展;这里一部需要实现服务化,PHP像swoole tarsphp等数据库可以按照数据范围,或者数据哈希的方式来进行水平扩展;那高并发架构是什么样的?
常见互联网分布式架构如上,分为:
(1)客户端层:典型调用方是浏览器browser或者手机应用APP
(2)反向代理层:系统入口,反向代理
(3)站点应用层:实现核心应用逻辑,返回html或者json数据
(4)服务层:服务化,例如像Swoole
(5)数据-缓存层:缓存加速访问存储
(6)数据-数据库层:数据库固化数据存储

我参与设计过一个行业门户网站,感觉解决大型网站面临的高并发访问、海量数据处理、高可靠运行等一系列问题与挑战,在实践中提出了许多解决方案,以实现网站高性能、高可用、易伸缩、可扩展、安全等各种技术架构目标。这些解决方案又被更多网站重复使用,从而逐渐形成大型网站架构模式。下面我主要从分布式的设计谈下:

1、分布式应用和服务:将分层和分割后的应用和服务模块分布式部署,除了可以改善网站性能和并发性、加快开发和发布速度、减少数据库连接资源消耗外;还可以使不同应用复用共同的服务,便于业务功能扩展。

2、分布式静态资源:网站的静态资源如JS,CSS,Logo等资源独立分布式部署,并采用独立的域名,即人们常说的动静分离。静态资源分布式部署可以减轻应用服务器的负载压力;通过使用独立域名加快浏览器并发加载的速度;由负责用户体验的团队进行开发维护有利于网站分工合作,使不同技术工种术业有专攻。

3、分布式数据和存储:大型网站需要处理以P为单位的海量数据,单台计算机无法提供如此大的存储空间,这些数据需要分布式存储。除了对传统的关系数据库进行分布式部署外,为网站应用而生的各种NoSQL产品几乎都是分布式的。

4、分布式计算:严格说来,应用、服务、实时数据处理都是计算,网站除了要处理这些在线业务,还有很大一部分用户没有直观感受的后台业务要处理,包括搜索引擎的索引构建、数据仓库的数据分析统计等。这些业务的计算规模非常庞大,目前网站普遍使用Hadoop及其MapReduce分布式计算框架进行此类批处理计算,其特点是移动计算而不是移动数据,将计算程序分发到数据所在的位置以加速计算和分布式计算。

总之分布式设计思路比较多,还有可以支持网站线上服务器配置实时更新的分布式配置;分布式环境下实现并发和协同的分布式锁;支持云存储的分布式文件系统等。

当前,为推进IT支撑系统集约化建设和运营,进一步发挥集中化能力优势,IT云成为运营商IT支撑系统建设的基础架构。但在IT云资源池部署过程中,服务器技术面临多个新挑战,主要体现在以下3个方面。


在性能方面,人工智能(AI)应用快速扩张,要求IT云采用高性能GPU服务器。AI已在电信业网络覆盖优化、批量投诉定界、异常检测/诊断、业务识别、用户定位等场景规模化应用。AI应用需求的大量出现,要求数据中心部署的服务器具有更好的计算效能、吞吐能力和延迟性能,以传统通用x86服务器为核心的计算平台显得力不从心,GPU服务器因此登上运营商IT建设的历史舞台。


在效率成本方面,IT云部署通用服务器存在弊端,催生定制化整机柜服务器应用需求。在IT云建设过程中,由于业务需求增长快速,IT云资源池扩容压力较大,云资源池中的服务器数量快速递增,上线效率亟需提高。同时,传统通用服务器部署模式周期长、部署密度低的劣势,给数据中心空间、电力、建设成本和高效维护管理都带来了较大的挑战。整机柜服务器成为IT云建设的另一可选方案。


在节能方面,AI等高密度应用场景的快速发展,驱动液冷服务器成为热点。随着AI高密度业务应用的发展,未来数据中心服务器功率将从3kW~5kW向20kW甚至100kW以上规模发展,传统的风冷式服务器制冷系统解决方案已经无法满足制冷需求,液冷服务器成为AI应用场景下的有效解决方案。


GPU服务器技术发展态势及在电信业的应用


GPU服务器技术发展态势


GPU服务器是单指令、多数据处理架构,通过与CPU协同进行工作。从CPU和GPU之间的互联架构进行划分,GPU服务器又可分为基于传统PCIe架构的GPU服务器和基于NVLink架构的GPU服务器两类。GPU服务器具有通用性强、生态系统完善的显著优势,因此牢牢占据了AI基础架构市场的主导地位,国内外主流厂商均推出不同规格的GPU服务器。


GPU服务器在运营商IT云建设中的应用


当前,电信业开始推动GPU服务器在IT云资源池中的应用,省公司现网中已经部署了部分GPU服务器。同时,考虑到GPU成本较高,集团公司层面通过建设统一AI平台,集中化部署一批GPU服务器,形成AI资源优化配置。从技术选型来看,目前运营商IT云资源池采用英伟达、英特尔等厂商相关产品居多。


GPU服务器在IT云应用中取得了良好的效果。在现网部署的GPU服务器中,与训练和推理相关的深度学习应用占主要部分,占比超过70%,支撑的业务包括网络覆盖智能优化、用户智能定位、智能营销、智能稽核等,这些智能应用减少了人工投入成本,提升了工作效率。以智能稽核为例,以往无纸化业务单据的人工稽核平均耗时约48秒/单,而AI稽核平均耗时仅约5秒/单,稽核效率提升达 90%。同时,无纸化业务单据人工稽核成本约15元/单,采用GPU进行AI稽核成本约0048元/单,稽核成本降低达968%。


整机柜服务器发展态势及在电信业的应用


整机柜服务器技术发展态势


整机柜服务器是按照模块化设计思路打造的服务器解决方案,系统架构由机柜、网络、供电、服务器节点、集中散热、集中管理6个子系统组成,是对数据中心服务器设计技术的一次根本性变革。整机柜服务器将供电单元、散热单元池化,通过节约空间来提高部署密度,其部署密度通常可以翻倍。集中供电和散热的设计,使整机柜服务器仅需配置传统机柜式服务器10%的电源数量就可满足供电需要,电源效率可以提升10%以上,且单台服务器的能耗可降低5%。


整机柜服务器在运营商IT云建设中的应用


国内运营商在IT云建设中已经推进了整机柜服务器部署,经过实际应用检验,在如下方面优势明显。


一是工厂预制,交付工时大幅缩短。传统服务器交付效率低,采用整机柜服务器将原来在数据中心现场进行的服务器拆包、上架、布线等工作转移到工厂完成,部署的颗粒度从1台上升到几十台,交付效率大大提升。以一次性交付1500台服务器为例,交付工作量可减少170~210人天,按每天配10人计算,现场交付时间可节省约17~21天。


二是资源池化带来部件数量降低,故障率大幅下降。整机柜服务器通过将供电、制冷等部件资源池化,大幅减少了部件数量,带来故障率的大幅降低。图1比较了32节点整机柜服务器与传统1U、2U服务器机型各自的电源部件数量及在一年内的月度故障率情况。由于32节点整机柜服务器含10个电源部件,而32台1U通用服务器的电源部件为64个,相较而言,整机柜电源部件数减少844%。由于电源部件数量的降低,32节点整机柜服务器相对于32台1U通用服务器的月度故障率也大幅缩减。



三是运维效率提升60%以上。整机柜服务器在工厂预制机柜布线,网络线缆在工厂经过预处理,线缆长度精确匹配,理线简洁,接线方式统一规范,配合运维标签,在运维中可以更方便简洁地对节点实施维护 *** 作,有效降低运维误 *** 作,提升运维效率60%以上,并大幅减少发生故障后的故障恢复时间。


液冷服务器技术发展态势及在电信业的应用


液冷服务器技术发展态势


液冷服务器技术也称为服务器芯片液体冷却技术,采用特种或经特殊处理的液体,直接或近距离间接换热冷却芯片或者IT整体设备,具体包括冷板式冷却、浸没式冷却和喷淋式冷却3种形态。液冷服务器可以针对CPU热岛精确定点冷却,精确控制制冷分配,能真正将高密度部署带到前所未有的更高层级(例如20kW~100kW高密度数据中心),是数据中心节能技术的发展方向之一,3种液冷技术对比如表1所示。




液冷服务器在运营商IT建设中的应用


液冷服务器技术目前在我国仍处于应用初期,产业链尚不完备、设备采购成本偏高、采购渠道少、电子元器件的兼容性低、液冷服务器专用冷却液成本高等问题是液冷服务器尚未大规模推广的重要原因。从液冷服务器在运营商数据中心领域的具体应用案例来看,运营商在IT云资源池规划和建设过程中,通常会对液冷服务器的发展现状、技术成熟度等进行分析论证。


考虑到目前液冷服务器规模化应用尚处于起步阶段,需要3~5年的引入期,因此暂时未在IT云资源池建设中进行大规模落地部署,但在部分地区有小规模应用,如中国移动南方基地数据中心已经开展液冷服务器试点应用,中国联通研究院也在开展边缘数据中心服务器喷淋式液冷系统的开发。未来,随着IT云建设规模、建设密度的继续攀升,以及液冷产业生态体系的逐步成熟,液冷服务器在IT云建设中将有更大的应用空间。


总体来看,运营商IT云资源池建设对服务器计算性能、延迟、吞吐、制冷、定制化、分布式部署等方面都提出了更高要求。未来,GPU服务器、定制化整机柜服务器、液冷服务器等新兴服务器技术将快速迭代,为运营商数据中心服务器技术的发展和演进带来新的思路和路径。

洗纹身的方法很多,推荐激光清洗法,这是所有祛除方法中最安全的。其他的方法对皮肤的伤害太大。激光清洗法不过价格略高一些罢了。

激光清洗法

激光去处纹身是目前治疗纹身的更佳选择,但费用昂贵。原理是通过激光作用于患处,在不引起皮肤灼伤的前提下,将色素颗粒击碎成极微小细粒,通过血液循环逐渐由泌尿系统排出体外。此方法不破坏皮肤活组织,术后不遗留瘢痕,效果良好。一般人认为激光洗纹身,又快又好,而用过的人会知道,有很多事情是激光做不到的,

比如文身的绿色、非化学剂色料等复杂的染色色料,激光都洗不掉,还有用激光洗过三次仍洗不掉的颜色也很难再洗掉,因为激光的工作原理是将光能转换成热能,由于化学合成的黑色和红色染料能吸收更多的相对应波长的能量,所以较容易被洗掉,其他的颜色较难吸收能量,所以洗不掉。激光的能量不足以影响非化合物色素,所以洗不掉含金属原子成分的色料。激光也不能治“文刺色素中毒过敏排异综合征”,因激光的势能会对有毒的色素起催化作用,使有毒色素渗得更深、更难脱。

洗纹身的注意事项

1、刚洗纹身后,小面积的可涂消炎药膏,大面积的需先涂烫伤膏,正常情况下涂2-3天,2次/天即可。

2、洗纹身后会有反色,受各体差异和色素浓淡的影响,反色会在几分钟到几小时后出现,这是正常现象。在洗文身后期修复过程中,颜色会逐浙变浅,直至消失。

3、洗纹身后治疗过程中,受各体和色料影响,部分会出现破皮及流血现象或产生水泡,这均属正常情况,但对于皮肤不易愈合和糖尿病人应当特别注意用药,不能感染,必要时可到诊所治疗。

分布式与集群是不一样的,简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。

如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时。

采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。

而采用集群方案,同样提供10台服务器,每台服务器都能独立处理这个任务。假设有10个任务同时到达,10个服务器将同时工作,10小后,10个任务同时完成,这样,整体来看,还是1小时内完成一个任务。


扩展资料

分布式系统可以分为机体内系统、建筑物内系统、建筑物间系统和不同地理范围的区域系统等,它们的耦合度依次由高到低按应用领域的性质决定耦合度,可以分成三类:

一、是面向计算任务的分布并行计算机系统和分布式多用户计算机系统,它们要求尽可能高的耦合度,以便发展成为能分担大型计算机和分时计算机系统所完成的工作。

二、是面向管理信息的分布式数据处理系统。耦合度可以适当降低。

三、是面向过程控制的分布式计算机控制系统。耦合度要求适中,当然对于某些实时应用,其耦合度的要求可能很高。

Dryad:MapReduce之外的新思路 目前各大软件巨头都搭建了自己的分布式平台解决方案,主要包括Dryad,DynamoSDMapReduce等框架。2010年12月21日,微软发布了Dryad的测试版本,成为谷歌MapReduce分布式并行计算平台的竞争对手。Dryad是微软构建云计算基础设施的重要核心技术之一,它可以让开发人员在Windows或者,NET平台上编写大规模的并行应用程序模型,并能够让在单机上编写的程序运行在分布式并行计算平台上。工程师可以利用数据中心的服务器集群对数据进行并行处理,当工程师在 *** 作数千台计算机时,无需关心分布式并行计算系统方面的细节。
DryadgDDryadLINO是微软硅谷研究院创建的研究项目,主要用来提供一个分布式并行计算平台。DryadLINO是分布式计算语言,能够将LINQ编写的程序转变为能够在Dryad上运行的程序,使普通程序员也可以轻易进行大规模的分布式计算。它结合了微软Dryad和LINO两种关键技术,被用于在该平台上构建应用。Dryad构建在Cluster Service(集群服务)和分布式文件系统之上,可以处理任务的创建和管理、资源管理,任务监控和可视化、容错,重新执行和调度等工作。




Dryad同MapReduce样,它不仅仅是种编程模型,同时也是一种高效的任务调度模型。Dryad这种编程模型不仅适用于云计算,在多核和多处理器以及异构机群上同样有良好的性能。在VisualStudio 2010 C++有一套并行计算编程框架,支持常用的协同任务调度和硬件资源(例如CPU和内存等)管理,通过WorkStealing算法可以充分利用细颗粒度并行的优势,来保证空闲的线程依照一定的策略建模,从所有线程队列中“偷取”任务执行,所以能够让任务和数据粒度并行。Dryad与上述并行框架相似,同样可以对计算机和它们的CPU进行调度,不同的是Dryad被设计为伸缩于各种规模的集群计算平台,无论是单台多核计算机还是由多台计算机组成的集群,甚至拥有数千台计算机的数据中心,都能以从任务队列中创建的策略建模来实现分布式并行计算的编程框架。

Dryad系统架构

Dryad系统主要用来构建支持有向无环图(Directed Acycline Graph,DAG)类型数据流的并行程序,然后根据程序的要求进行任务调度,自动完成任务在各个节点上的运行。在Dryad平台上,每个任务或并行计算过程都可以被表示为一个有向无环图,图中的每个节点表示一个要执行的程序,节点之间的边表示数据通道中数据的传输方式,其可能是文件、TCPPipe、共享内存
用Dryad平台时,首先需要在任务管理(JM)节点上建立自己的任务,每一个任务由一些处理过程以及在这些处理过程问的数据传递组成。任务管理器(JM)获取无环图之后,便会在程序的输入通道准备,当有可用机器的时候便对它进行调度。JM从命名服务器(NS)那里获得一个可用的计算机列表,并通过一个维护进程(PD)来调度这个程序。
Dryad的执行过程可以看做是一个二维管道流的处理过程,其中每个节点可以具有多个程序的执行,通过这种算法可以同时处理大规模数据。在每个节点进程(VerticesProcesses)上都有一个处理程序在运行,并且通过数据管道(Channels)的方式在它们之间传送数据。二维的Dryad管道模型定义了一系列的 *** 作,可以用来动态地建立并且改变这个有向无环图。这些 *** 作包括建立新的节点,在节点之间加入边,合并两个图以及对任务的输入和输出进行处理等。

Dryad模型算法应用

DryadLINQ可以根据工程师给出的LINQ查询生成可以在Dryad引擎上执行的分布式策略算法建模(运算规则),并负责任务的自动并行处理及数据传递时所需要的序列化等 *** 作。此外,它还提供了一系列易于使用的高级特性,如强类型数据、Visual Studio集成调试以及丰富的任务优化策略(规则)算法等。这种模型策略开发框架也比较适合采用领域驱动开发设计(DDD)来构建“云”平台应用,并能够较容易地做到自动化分布式计算。
我们经常会遇到网站或系统无法承载大规模用户并发访问的问题,解决该问题的传统方法是使用数据库,通过数据库所提供的访问 *** 作接口来保证处理复杂查询的能力。当访问量增大,单数据库处理不过来时便增加数据库服务器。如果增加了三台服务器,再把用户分成了三类A(学生)、B(老师),C(工程师)。每次访问时先查看用户属于哪一类,然后直接访问存储那类用户数据的数据库,则可将处理能力增加三倍,这时我们已经实现了一个分布式的存储引擎过程。
我们可以通过Dryad分布式平台来解决云存储扩容困难的问题。如果这三台服务器也承载不了更大的数据要求,需要增加到五台服务器,那必须更改分类方法把用户分成五类,然后重新迁移已经存在的数据,这时候就需要非常大的迁移工作,这种方法显然不可取。另外,当群集服务器进行分布式计算时,每个资源节点处理能力可能有所不同(例如采用不同硬件配置的服务器),如果只是简单地把机器直接分布上去,性能高的机器得不到充分利用,性能低的机器处理不过来。
Dryad解决此问题的方法是采用虚节点,把上面的A、B、C三类用户都想象成一个逻辑上的节点。一台真实的物理节点可能会包含一个或者几个虚节点(逻辑节点),看机器的性能而定。我们可以把那任务程序分成Q等份(每一个等份就是一个虚节点),这个Q要远大于我们的资源数。现在假设我们有S个资源,那么每个资源就承担Q/S个等份。当一个资源节点离开系统时,它所负责的等份要重新均分到其他资源节点上;当一个新节点加入时,要从其他的节点1偷取2一定数额的等份。
在这个策略建模算法下,当一个节点离开系统时,虽然需要影响到很多节点,但是迁移的数据总量只是离开那个节点的数据量。同样,~个新节点的加入,迁移的数据总量也只是一个新节点的数据量。之所以有这个效果是因为Q的存在,使得增加和减少节点的时候不需要对已有的数据做重新哈希(D)。这个策略的要求是Q>>s(存储备份上,假设每个数据存储N个备份则要满足Q>>SN)。如果业务快速发展,使得不断地增加主机,从而导致Q不再满足Q>>S,那么这个策略将重新变化。
Dryad算法模型就是一种简化并行计算的编程模型,它向上层用户提供接口,屏蔽了并行计算特别是分布式处理的诸多细节问题,让那些没有多少并行计算经验的开发 人员也可以很方便地开发并行应用,避免了很多重复工作。这也就是Dryad算法模型的价值所在,通过简化编程模型,降低了开发并行应用的入门门槛,并且能大大减轻了工程师在开发大规模数据应用时的负担。
通过上述的论述,我们可以看到Dryad通过一个有向无环图的策略建模算法,提供给用户一个比较清晰的编程框架。在这个编程框架下,用户需要将自己的应用程序表达为有向无环图的形式,节点程序则编写为串行程序的形式,而后用Dryad方法将程序组织起来。用户不需要考虑分布式系统中关于节点的选择,节点与通信的出错处理手段都简单明确,内建在Dryad框架内部,满足了分布式程序的可扩展性、可靠性和对性能的要求。

使用Drvad LINO

通过使用DryadLINQ编程,使工程师编写大型数据并行程序能够轻易地运行在大型计算机集群里。DryadLINO开发的程序是一组顺序的L_NQ代码,它们可以针对数据集做任何无副作用的 *** 作,编译器会自动将其中数据并行的部分翻译成并行执行的计划,并交由底层的Dryad平台完成计算,从而生成每个节点要执行的代码和静态数据,并为所需要传输的数据类型生成序列化代码;
LINQ本身是,NET引入的组编程结构,它用于像 *** 作数据库中的表一样来 *** 作内存中的数据集合。DryadLINQ提供的是一种通用的开发/运行支持,而不包含任何与实际业务,算法相关的逻辑,Dryad和DryadLINQ都提供有API。DryadLINQ使用和LINQ相同的编程模型,并扩展了少量 *** 作符和数据类型以适用于数据并行的分布式计算。并从两方面扩展了以前的计算模型(SQL,MapReduce,Dryad等)它是基于,NET强类型对象的,表达力更强的数据模型和支持通用的命令式和声明式编程(混合编程),从而延续了LINQ代码即数据(treat codeas data)的特性。
DryadLINQ使用动态的代码生成器,将DryadLINQ表达式编译成,NET字节码。这些编译后的字节码会根据调度执行的需要,被传输到执行它的机器上去。字节码中包含两类代码完成某个子表达式计算的代码和完成输入输出序列化的代码。这种表达式并不会被立刻计算,而是等到需要其结果的时候才进行计算。DryadLINQ设计的核心是在分布式执行层采用了一种完全函数式的,声明式的表述,用于表达数据并行计算中的计算。这种设计使得我们可以对计算进行复杂的重写和优化,类似于传统的并行数据库。从而解决了传统分布式数据库SQL语句功能受限与类型系统受限问题,以及MapReduce模型中的计算模型受限和没有系统级的自动优化等问题。
在Dryad编程模式中,应用程序的大规模数据处理被分解为多个步骤,并构成有向无环图形式的任务组织,由执行引擎去执行。这两种模式都提供了简单明了的编程方式,使得工程师能够很好地驾驭云计算处理平台,对大规模数据进行处理。Dryad的编程方式可适应的应用也更加广泛,通过DryadLINQ所提供的高级语言接口,使工程师可以快速进行大规模的分布式计算应用程序的编写。

Dryad技术的应用

云计算最重要的概念之~就是可伸缩性,实现它的关键是虚拟化。通过虚拟化可以在一台共享计算机上聚集多个 *** 作系统和应用程序,以便更好地利用服务器。当一个服务器负载超荷时,可以将其中一个 *** 作系统的一个实例(以及它的应用程序)迁移到一个新的,相对闲置的服务器上。虚拟化(Virtualization)是云计算的基石,企业实现私有云的第一步就是服务器基础架构进行虚拟化。基础设施虚拟化之后。接下来就是要将现有应用迁移到虚拟环境中。
Dryad结合Hyper-V(Windows Server 2008的一个关键组成部分)虚拟化技术。可以实现TB级别数据的在线迁移。中小型企业也可以针对企业内部小型集群服务器进行分布式应用系统编程,以及制定私有云开发与应用解决方案等设计。Windows Azure是微软的公有云解决方案,但是目前要大规模应用还为时过早。使用现有Windows第三方产品实现私有云,花费成本却很大。然而Dryad技术给我们带来了不错的折中选择,当我们基于Windows Server台运行应用系统或者网站时,便可以基于Dryad分布式架构来开发与设计实现。当公有云时机成熟和各种条件完备时,系统可以很轻易地升级到公有云,企业而无需花费太多成本。

写在最后

云计算可以看成是网络计算与虚拟化技术的结合,利用网络的分布式计算能力将各种IT资源筑成一个资源池,然后结合成熟的存储虚拟化和服务虚拟化技术,让用户实时透明地监控和调配资源。Dryad是实现构建微软云计算基础设施的重要核心技术之一,其具有诸多优点,如DryadLINQ具有声明式编程并将 *** 作的对象封装为,NET类数据,方便数据 *** 作,自动并行化、VisualStudio IDE和,NET类库集成,自动序列化和任务图的优化(静态和动态(主要通过DryadAPI实现)),对J0in进行了优化,得到了比BigTable+MapReduee更快的Join速率和更易用的数据 *** 作方式等。
不过,Dryad和DryadLINQ也同样具有局限性。其一,它更适用于批处理任务,而不适用于需要快速响应的任务;这个数据模型更适用于处理流式访问,而不是随机访问。其二,DryadLINQ使用的是,NET的LINO查询语言模型,针对运行Windows HPC Server的计算机集群设计,而目前高性能计算市场被Einux所占领。此外,和MapReduce的应用时间和实践相比,Dryad的可靠性还明显不足,据了解除了微软AdCenter中的数据分析和Trident项目之外,其它应用Dryad的地方还很少。不过总的来看,Dryad平台在将来仍具有很广泛的发展前景,尤其对NET开发人员来说是―次很重要的技术革新机遇。
名词解释
任务管理器(Job Manager,JM):每个Job的执行被一个Job Manager控制,该组件负责实例化这个Job的工作图,在计算机群上调度节点的执行;监控各个节点的执行情况并收集一些信息,通过重新执行来提供容错:根据用户配置的策略动态地调整工作图。
计算机群(Cluster):用于执行工作图中的节点。
命名服务器(Name Server,Ns):负责维护cluster中各个机器的信息。
维护进程(PDaemon,PD):进程监管与调度工作。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13393933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-27
下一篇 2023-07-27

发表评论

登录后才能评论

评论列表(0条)

保存