Node.js高效分布式实时的应用的研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Node.js高效分布式实时的应用的研究

Node.js高效分布式实时的应用的研究   摘 要:Node.js应用平台的出现,为大数据实时应用提供了一个很好的可选技术方案。研究了分布式实时应用处理中任务的抢占式处理策略和双路由策略,并探讨了在Node.js平台上利用Redis或ZeroMQ技术实现高效可靠分布式实时应用的方法。   关键词:分布式系统;实时应用;Node.js;Socket.IO;ZeroMQ   DOI:10.11907/rjdk.143703   中图分类号:TP302   文献标识码:A 文章编号:1672-7800(2014)012-0025-04   基金项目:广州大学华软软件学院科研项目(ky201211)   作者简介:刘生建(1972-),男,贵州遵义人,广州大学华软软件学院讲师,研究方向为信息系统设计、移动游戏开发;罗林(1974-),男,四川遂宁人,硕士,广州大学华软软件学院讲师,研究方向为信息系统设计、计算机游戏设计;杜剑(1979-),男,江西丰城人,硕士,广州大学华软软件学院讲师,研究方向为计算机游戏人工智能算法。   0 引言    随着互联网技术的迅速发展,智能手机用户数量不断攀升,云处理大数据时代已经来临。大部分复杂的计算处理和海量数据存取的任务不可避免地集中到云端的数据中心,而各种智能移动终端设备则更多地发挥展示数据结果和接收用户数据输入的作用。原有B/S架构下的JSP、ASP.NET、PHP等主流技术在分布式计算上遇到了一定的技术瓶颈,而Node.js应用平台的适时出现,为针对大量用户的实时服务提供了一个难得的可选技术方案。    传统的网站服务器针对每个连接客户端分配一个线程提供网络服务。由于服务器的内存总会有限,所以随着并发用户数量不断增长,服务器的响应速度将会明显下降。为了保证正常服务,可采用的简单措施有两类:从硬件方面增加服务器内存和CPU数量,而软件方面则主要是通过重复利用线程池中已有的线程来减少线程新建的时间。    Node.js是一个建立在Chrome浏览器的JavaScript运行环境中的快速应用构建平台,容易开发出具有良好扩展性的网络应用程序。Node.js使用一个事件驱动的非阻塞I/O模型,使得它轻量、高效、完美地将数据密集型实时应用程序运行在各种分布式设备上lt;supgt;[1]lt;/supgt;。Node.js可以在所有主流操作系统上顺畅运行。   1 分布式处理策略    分布式应用一般采用C/S(客户端/服务器)通信模式,即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。此模型通常假定的情况是:网络中各设备拥有的资源不均衡,需要互相协作共同完成任务:拥有众多资源的服务主机提供计算、存储、查询等服务,而资源相对较少的客户则发出服务请求,展示处理结果。两端进程通信是异步的,通常使用较为成熟的Socket技术来简化进程间的网络通信。曾开发过分布式应用的程序员都会觉得分布式处理比单机处理复杂很多:既要考虑到服务器本身的软、硬件故障,还要考虑网络不稳定等因素。如果要构建高可靠性的实时应用系统,系统的所有构件都必须满足双系统的冗余要求lt;supgt;[2]lt;/supgt;。    为了简化问题,可以将具体的应用客户端与服务端逻辑进行抽象,本文主要讨论分布式应用的高效可靠的设计策略,同时也考虑这些技术的实现代价,从而使得中小型企业也能采用这些技术来解决实际问题。最简单的分布式处理模型如图1所示。   图1 简单的分布式处理    这是所有分布应用的基础,虽然部署简单,但是只要服务器出现任何故障,一切对外服务就会中断,这对于银行及电信等企业来说是无法接受的。    在银行及电信等企业,会对关键的服务器实行双机热备机制,确保关键服务稳定运行。随着硬件的快速发展,基于Intel处理器的服务器运算能力不断增强,这使得中小型企业不一定要采购中小型机来作为服务器,采用HP或者联想等公司的服务器来也能完成同样任务,还可以降低采购成本。    当采用Node.js平台后,可以使用多台普通配置的服务器去代替那些中小型机或者工作站,图2展示了使用这种策略的分布处理模型。   图2 具备容错能力的分布式处理    在这种模型中,每个特定的服务应该运行在至少两台服务器上,从而避免单点故障的发生。    在Web2.0没有广泛应用之前,有3个主要的分布式处理技术:Sun公司(目前已被Oracle公司收购)的J2EE、微软的DCOM和UNIX厂商联盟的CORBA。不管是哪种模型,开发调试都比较困难。比如基于CORBA开发分布式应用,首先按照接口定义语言(IDL)编写服务接口方法申明,将开发好的服务进行登记注册,运行时由智能代理去发现具体的服务器地址与端口

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档