1.2 分布式系统的例子

本节给出能激发读者学习积极性的当代分布式系统的例子,用于说明分布式系统所扮演的无处不在的角色和相关应用的多样性。
如1.1节所提及的那样,网络无处不在,成为我们现在认为理所当然的日常服务(互联网和相关的万维网、Web搜索、在线游戏、电子邮件、社会网络、电子商务,等等)的基础。为了进一步说明这一点,可参考图1-1,它描述了一系列所选的关键商务或社会应用部门,强调了相关的分布式系统技术已公认或新出现的应用。

正如所看到的,分布式系统包含近些年许多最重要的技术发展,因此理解底层技术绝对是现代计算知识的核心。图1-1也展示了当前广泛的应用,从相对本地化的系统(例如汽车或飞机中的系统)到全球范围的涉及上百万结点的系统,从以数据为中心的服务到处理器密集型任务,从由非常小相对原始的传感器构建的系统到那些包含强大计算元素的系统,从嵌入式系统到那些支持复杂交互式用户体验的系统,等等。
下面给出分布式系统更特定的例子,进一步说明今天分布式系统的多样性和复杂性。

1.2.1 Web搜索

在过去的10年,Web搜索已经成为一大迅速发展的行业,最近的数字表明每个月的全球搜索量已经超过100亿。Web搜索引擎的任务是为万维网的3
~4所有内容建立索引,其中含有各种信息类型,包括Web页面、多媒体资源和(扫描后的)书。这是一个非常复杂的任务,因为当前的估计是Web由超过630亿个页面组成,包含1万亿个Web地址。考虑到大多数搜索引擎是分析整个Web内容,并在这个巨大的数据库上完成复杂的处理,那么这个任务自身就是对分布式系统设计的一个巨大挑战。
Google,Web搜索技术上的市场领导者,在支持用于搜索(与其他Google应用和服务,如Google Earth)的复杂的分布式系统基础设施的设计上已做出了巨大的努力。它代表了计算历史上最大和最复杂的分布式系统设施之一。该基础设施最突出的亮点包括:

  • 一个底层物理设施,它由超大数目的位于全世界多个数据中心的联网计算机组成;
  • 一个分布式文件系统,支持超大文件,并根据搜索和其他Google应用的使用方式(特别是在文件中以快速而持久的速度读取)进行了深度优化;
  • 一个相关的结构化分布式存储系统,它提供对超大数据集的快速访问;
  • 一个锁服务,它提供诸如分布式加锁和协定等分布式系统功能;
  • 一个编程模式,它支持对底层物理基础设施上的超大并行和分布式计算的管理。
    关于Google分布式系统服务和底层通信支持的进一步细节可以参见第21章,该章研究了在线运行的现代分布式系统。

1.2.2 大型多人在线游戏

大型多人在线游戏(Massively Multiplayer Online Game,MMOG)提供了一种身临其境的体验,超大数目的用户通过互联网在一个持久的虚拟世界中交互。此类游戏的主要例子包括Sony的EverQuest Ⅱ和芬兰CCP Games公司的EVE Online。这种游戏的复杂性迅速增加,现在包括复杂的游戏舞台(例如,EVE Online由一个超过5000个星系的宇宙组成)以及多种社会和经济系统。玩家的数目也在上升,而系统能支持超过50000个并发在线用户(玩家的总数目可能是这个数字的10倍)。
MMOG工程体现了分布式系统技术面临的巨大挑战,尤其是它对快速响应时间的需求,唯有如此,才能维持较好的用户体验。其他挑战包括事件实时传播给多个玩家和维护对共享世界的一个一致的视图。因此,这是一个很好的例子,能说明现代分布式系统设计者要面对的挑战。
针对大型多人在线游戏,提出了许多解决方案:

  • 可能有点出人意料,最大的在线游戏EVE Online,采用了客户-服务器体系结构,在一个集中式服务器上维护了游戏世界状态的单个拷贝,5供运行在玩家终端或其他设备上的客户程序访问。为了支持大量客户,服务器自身是一个复杂的实体,拥有由上百个计算机结点组成的集群结构(该客户-服务器方法在1.4节详细讨论,集群方法将在1.3.4节讨论)。从虚拟世界的管理看,集中式体系结构有极大的益处,单个拷贝也简化了一致性问题。接着,目标是通过优化网络协议和快速响应到达事件来确保快速的响应。为了支持这点,对负载进行了分区,把单个“星系”分配给集群中指定的计算机,这样,高负载星系会拥有自己的专用计算机而其他星系则共享一台计算机。通过跟踪玩家在星系之间的移动,到达的事件被导向集群中正确的计算机上。
  • 其他MMOG采用更多的分布式体系结构,宇宙被划分到大量(可能是超多)服务器上,这些服务器可能地理上分散部署。接着,用户基于当前的使用模式和到服务器的网络延迟(例如基于地理最近)被动态地分配到一个特定服务器。这种体系结构风格被EverQuest采用,它通过增加新的服务器,可自然地扩展。
  • 大多数商业系统采用上述两个模型中的一个,但研究者现在也在寻找更极端的体系结构,即不基于客户-服务器原理而是基于对等技术采用完全分散的方法。采用对等技术,意味着每个参与者贡献(存储和处理)资源来容纳游戏。对对等解决方案的进一步研究将推迟到第2章和第10章。

1.2.3 金融交易

最后一个例子,我们看一下金融交易市场的分布式系统支持。金融行业以其需求一直处在分布式系统技术的最前沿,特别是在实时访问大范围的信息源方面(例如,当前的股票价格和趋势,经济和政治发展)。金融行业采用自动监控和交易应用。
注意,此类系统的重点是对感兴趣数据项的通信和处理。感兴趣数据项在分布式系统中称为事件,在金融行业中的需求是可靠和及时地传递事件给可能是大量对此信息有兴趣的客户。此类事件的例子包括股价的下跌,最新失业数据的发布,等等。这要求底层的体系结构具有与前述风格(例如客户-服务器)完全不同的风格,这样的系统通常采用分布式基于事件的系统。我们下面给出此类系统的一个典型应用,第6章再对这个重要的话题进行深入讨论。
图1-2举例说明了一个典型的金融交易系统。它显示了一系列事件进入一个指定的金融机构。这样的事件输入具有下列特征。6首先,事件源通常具有多种格式,例如路透社的市场数据事件和FIX事件(符合金融信息交换协议特定格式的事件),事件源还来自不同的事件技术,这说明了在大多数分布式系统中会遇到的异构性问题(参见1.5.1节)。图中使用了适配器,它把异构格式转换成一个公共的内部格式。其次,交易系统必须处理各种各样的事件流,这些事件流高速到达,经常需要实时处理来检测表示交易机会的模式。这在过去曾经是手工处理的,但在竞争压力下变成自动处理,这就是所谓的复杂事件处理(Complex Event Processing,CEP),它提供了一种方法来将一起发生的事件组成逻辑的、时序的或空间的模式。

这种方法主要用于开发定制的算法的交易策略,包括股票的买入和卖出,特别是可以寻找表示交易机会的模式,然后通过下单和订单管理系统自动地回复。作为一个例子,考虑下面的脚本:

这个脚本基于Apama[www.progress.com]提供的功能,Apama是金融领域的一个商业产品,最初是根据剑桥大学的研究工作开发的。脚本根据微软、HP的股价和一组其他股价检测一个复杂的时序序列,决定买入或卖出特定的股票。
在金融系统的其他领域,包括通过监控交易活动来管理风险(特别是跟踪曝光),这种类型的技术的使用也在增加,用于确保遵从规则和监控有诈骗交易倾向的活动模式。在这种系统中,事件在处理之前通常会被截获,然后通过一个合规的防火墙(参见下面1.3.1节关于防火墙的讨论)。

《分布式系统:概念与设计》一1.2 分布式系统的例子相关推荐

  1. 分布式系统概念和设计 第十五章 (1)

    COORDINATION AND AGREEMENT http://www.cdk5.net/wp/ 背景知识点:Reliable failure detector 实际系统中没有reliable f ...

  2. 分布式系统概念和设计-操作系统中的支持和设计

    分布式系统概念和设计 操作系统支持 中间件和底层操作系统的关系,操作系统如何满足中间件需求. 中间件需求:访问物理资源的效率和健壮性,多种资源管理策略的灵活性. 任何一个操作系统的目标都是提供一个在物 ...

  3. 分布式系统概念和设计——特征,实例,Web,Future

    分布式系统概念和设计 分布式系统的特征 关于分布式系统的定义产生的结论 并发性,如何协调并发执行的共享资源型的程序 缺乏全局时钟,程序协作需要通过交换信息完成,紧密的协调依赖于对程序动作发生时的时间共 ...

  4. 分布式系统概念和设计——分布式多媒体系统

    分布式系统概念和设计 分布式多媒体系统 QoS QoS(Quality of Service,服务质量)是一种网络管理和控制技术,可以对网络流量进行管理和调度,以确保网络对不同类型的数据流的传输可以提 ...

  5. 分布式系统概念与设计分布式实例

    一.分布式系统的挑战 分布式系统的挑战,其实就是某种意义上分布式系统研究的重点内容. 1.异构性 分布式系统的运行环境,存在下列异构性(即存在多样性和差别):网络.计算机硬件.操作系统.编程语言.由不 ...

  6. 深度介绍分布式系统原理与设计

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 1 概念 1.1 模型 1.2 副本 1.3 衡量分布式系 ...

  7. 《大规模分布式系统架构与设计实战》

    <大规模分布式系统架构与设计实战> 基本信息 作者: 彭渊 丛书名: 大数据技术丛书 出版社:机械工业出版社 ISBN:9787111455035 上架时间:2014-2-21 出版日期: ...

  8. 深入理解分布式系统原理与设计

    本文来重点说下分布式系统原理与设计 文章目录 概述 模型 副本 副本一致性 衡量分布式系统的指标 分布式系统原理 数据分布方式 哈希方式 按数据范围分布 按数据量分布 一致性哈希 副本与数据分布 本地 ...

  9. 分布式系统原理与设计

    概念 一.模型 节点:在具体的工程项目中,一个节点往往是一个操作系统上的进程.在本文的模型中,认为节点是一个完整的.不可分的整体,如果某个程序进程实际上由若干相对独立部分构成,则在模型中可以将一个进程 ...

最新文章

  1. [120_移动开发Android]005_android开发之数据存储之文件操作
  2. 计算机操作系统:存储器的管理
  3. 成功解决在Eclipse中出现的can not find declarration to go to
  4. 雅虎团队经验:网站页面性能优化的 34条黄金守则
  5. 在一个字符串中找到第一个只出现一次的字符
  6. JWT.NET的使用
  7. 怎么爬before after之间的内容_关于伪元素::before和::after的用法
  8. js 斐波那契数列(兔子问题)
  9. inline在C99以及Gcc中的处理方式[转]---很好的一篇总结
  10. 网站个人站长会失败的原因
  11. html屏幕共享,屏幕共享
  12. 模电_第六章_负反馈电路
  13. react hooks子给父传值
  14. 深入Java内存区域与OOM
  15. 【读论文】基于深度学习的铁路道岔转辙机故障诊断(2INTRO)
  16. 浅谈四轴PID调试心得
  17. Kingbase数据库实验五 PL/SQL程序设计
  18. pd安装win10错误-安全启动功能发现未经授权更改固件
  19. 微信指数批量采集、导出
  20. 【夯实Dubbo】Dubbo的核心特性

热门文章

  1. C语言 关于素数的程序
  2. 计算机组成原理自学初学笔记整理
  3. CTFshow_萌新(隐写)
  4. vmware 快照用关机吗_vmware安装安卓
  5. .NET Reactor使用教程(11)——命令行参数:保护设置
  6. 九天鸟p2p网贷系统的架构设计
  7. 【Docker入门使用】
  8. Tiledmap基本使用教程
  9. 素材管理神器 Eagle 下载安装使用教程
  10. 283个地级及以上城市地理距离、经济距离和引力模型空间权重矩阵