




已阅读5页,还剩99页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学校代码:10255学号:2101472数据交换平台中消息中间件的研究与实观Study and Implementation of a Message Middleware OH aData Exchange Platform学科专业:计算机软件与理论0 者:周乐钦 指导教师:燕彩蓉副教授答辩日期:2013年1月东华大学计算机科学与技术学院二零一三年一月一苓一二平一JH东闺7fa年学所己文论本月日D弓日期位写经中文人:论的发己,郑尔文内表明是重华作容或确本声者负撰注人明钦签责写明在:名,过和导我大:并的引师恪完作用的守全品的指学意及内导术学识成容下道到果外,德本的,独声内本立崇学明容论进尚的。文行严法论不研谨律文包究位结为含工风果本任作。由人何所本亲其取呈燃人自他得交承撰个的担写人成学。,或果位创我集。对体除性棚煳指学日7不保制部许意本期手分论位密保期位:段内文校论口导位论加保容被文密,:2文侈存编查留作在属年和入阅并者教论于f汇有或向完。月编关借国全l师文年本数阅家了伊解学据。有密位库本关学签作后论进人部校月适文行授门有名者。检权或关用7索东机保本,华构留:签版可大送、日权以学交使书多名采可论用。用以文学影将的位车:印本复论、学印文f闭缩位件的印论和规荔或文电定矛扫的子,描全版同、等部,复或允够乏数据交换平台中消息中间件的研究与实现摘要随着信息技术在各行各业的广泛应用,大多数企业、事业单位和医疗机构等都先后建设了信息化系统。但是,由于信息化系统建设过程中采用的技术和数据结构定义的差异性,使得企事业单位之间、医疗机构之间的信息共享极其困难,进而产生了一个个“信息孤岛。为了解决数据交换的技术难题,实现信息共享,需要一种能够高效、稳定地传递消息的消息中间件软件系统,以支持构建一个数据交换平台。本文作者在参与数据交换平台研发过程中,研究并实现了适用于数据交换平台的一个消息中间件软件系统。本文主要的研发工作概述如下:1)分析和总结了当前分布式系统的研究现状,重点考察了消息中间件的研究现状、原理与实现机制;2)深入分析了异步事件驱动型构架风格的网络应用程序框架Netty,对其工作机制进行了深入剖析;3)然后以Netty框架为基础,设计和实现了一个适用于数据交换平台的消息中间件软件系统。该软件系统实现了消息队列模型,支持三种消息类型的传送,包括指令消息、数据消息和文件消息。针对大文件消息的传输,本文采用了文件消息与文件内容传输通道分离的方式;4)设计和实现了消息中间件的消息传输协议、文件传输组件的文件传输协议,以及基于WebSocket协议的服务器推送技术的消息中间件运行监控组件。部署和测试表明,本文设计与实现的消息中间件软件系统能够满足数据交换平台的消息收发应用要求,可应用于搭建各企事业单位的数据交换平台。关键词:数据交换平台,消息中间件,消息协议,文件传输,WebSocket,监控iS designed and implemented based on3)Then aneed for all effiSTUDY AND耵PLEMENTATION oF A MESSAGE MIDDLEWARE ON A DATA EXCHANGE PLATFORMABSTRACTWith the extensive applications development of information technology in a various ofindustry,information systems have been e、stablished in almost of every area such as enter-prises,affair office departments,institutions,and hospital organizations and etcHowever, the information sharing among enterprises,affair office departments or hospital organizationsis very difficulty,thereby information island has been produced one by one due to the dif-ferences produced by adopting between technologies and definition of data structureIn orderto solve the technique problem of the data exchange platform,there is锄argentcient and reliablemessageoriented middleware softwaresystemwhich is used to construct an ex-change platformThe author designed andimplemented a message oriented middleware systemwhich is very suitable for the data exchangeplatformThe main research and development work ofthis paper is described below:1)The current research status of the distributed system is analyzed and summarizedSpecifi eally,the current research status、principal and implementation mechanism of the message oriented middleware system is analyzed and summarized2)The network application framework Netty with the style of asynchronous event-drivensoRware architecture is analyzed,and the mechanism ofthe framework is analyzed in deep detailmessage oriented middleware systemtheNetty framework,A message queue model is implemented in this system,and it supports three type of message including command message,data message,and file messageFor the file rues-sage,this paper adopt the strategy oftransferring file contents and messages in different channel4)The message transfer protocol and file content仃锄sfer protocol for the message orientedmiddleware system is designed and implementedThe monitor system which is responsible for monitoring the runtime status ofthis system is also designed based on WebSocket protoc01Deployment and Test show that the message oriented middleware software system which isproposed in this paper call meet the application demand of the data exchange platform and is suit-able for constructing the data exchange platform of enterprisesL曼gin圣bQ坠(Computer Science and Technology)Supervised by垒iQ娶g至垫WORDS:dataKEYprotocol,ientedmiddleware,messageexchangelalVform目录摘蓦巨 IABSTRACT 川第一章绪论 111研究背景意义 112国内外研究现状 113研究的主要内容 614课题的创新点 615论文组织结构 6第二章Netty网络应用程序框架分析 821缓冲区 822通道及通道状态 。1123通道事件 。1324通道事件处理器及处理器流水线架构 。1325 Netty框架主线程 1526 IO-worker线程及数据结构 1627本章小结 18第三章消息中间件的总体设计与实现 1931消息中间件总体设计 1932消息接口层 1933消息地址与队列 一2434消息发送器 。2s35消息接收器 。2636消息传输线协议 。2637客户端会话 。2938服务器端会话 。2939节点管理器 。30310消息中间件配置 3031 1本章小结 32第四章消息中间件文件传输组件设计与实现 3341文件传输组件总体介绍 。3342文件传输协议设计及实现 。3443断点续传机制 3544服务器端实现 。3645客户端实现 。3746本章小结 38第五章消息中间件监控组件设计与实现 3951 WebSocket协议 。3952基于WebSocket协议的监控系统软件构架设计 4253监控系统核心工作流程 。4354本章小结 44V第六章消息中间件的部署与测试 4561数据交换平台 4562应用部署拓扑结构 。4s63部署与测试 一4664本章小结 。49第七章总结与展望 5071总结 5072展望 。50参考文献 52攻读硕士学位期间发表的学术论文 54致谢 55第一章绪论11研究背景意义在企业和政府部门的信息化过程中,各企业和政府部门在不同时期分别构建了不同的信息化系统。企业有ERP系统(企业资源管理系统)、CRM系统(客户端关系管理系统)等,医院有HIS系统(指收费管理系统、药房管理系统、财务管理系统等)、CIS系统(临床诊疗系统)、LIS系统(实验室检查检验信息系统)、PACSRIS系统(医学影像存储与传输系统)等,以及政府部门建设有电子政务系统等。而这些信息化系统都有各自的技术特点,各企业之间,甚至企业内部门之间,医院之间,政府各部门之间的系统很难直接连通,这就导致“信息孤岛”现象的存在。为了解决此问题,支持异构数据源之间交换数据的数据交换系统成为研究的热点问题【l吲。本课题以本人参与研发的数据交换平台软件为背景,研究消息中间件软件系统,它是构建分布式系统数据交换平台的核心应用软件。12国内外研究现状12。1分布式系统分布式系统是指由计算机网络将分布在不同的计算节点组织在一起,通过传递消息实现通信和协作,共同完成一个目标的系统141。以下介绍几种不同的分布式系统的实现方式。1)RPC远程过程调用协议(Remote Procedure Call,I心C)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPCI5-61采用客户机服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。2)CORBA东华大学硕士研究生学位论文公共对象请求代理体系结构(Common Object Request Broker Architecture,CORBA)r7】是由OMG组织制订的一种标准的面向对象应用程序体系规范。或者说CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)qb,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。OMA由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成,其核心部分是对象请求代理ORB(Object RequestBroker)。对象服务是为使用和实现对象而提供的基本服务集合;公共设施是向终端用户应用程序提供的一组共享服务接口;域接E1是为应用领域服务而提供的接口:应用接口是由开发商提供的产品,用于它们的接口,不属于OMG标准的内容。ORB提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。分布的、可以互操作的对象可以利用ORB构造可以互操作的应用。3)MOM基于消息中间件(Messageoriented Middleware,MOM)的分布式系统,是 一种以消息为核心的分布式系统【8】。分布式系统的节点之间不再以同步通信来协 作,节点之间的耦合度下降。分布在不同节点的程序可在不同的时间运行:程序 不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直 接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本 不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。基于 MOM的分布式系统对应用程序的结构没有约束:在复杂的应用场合中,通讯程 序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述 多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。程序与网 络复杂性相隔离:程序将消息放入消息队列或从消息队列中取出消息来进行通 讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处 理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其它程 序通话,并且它们不涉及网络通讯的复杂性。122中间件技术软件是为解决人类社会的各种问题而被人类创造出来的一种物件,它的发展伴随着人类社会的发展。随着人类对物理世界、自身世界认识的不断加深,软件的需求也不断增加。有一类软件是为了屏蔽系统的复杂性而生,例如操作系统就是为了屏蔽硬件的复杂性和异构性,以统一的接口对用户提供硬件资源的使用,webservice技术是为屏蔽操作系统之间以及编程语言之间的异构性而出现的一种中间件技术等。图11描述了中间件的地位。中间件是基础软件的一大类,属于可复用软件的范畴,是一种介于应用软件和操作系统之间的独立的系统软件或服务程序。它能屏蔽操作系统和网络协议的,东华大学硕士研究生学位论文差异,帮助管理各种复杂的异构的分系统,并为处于上层的应用程序提供一个标准的开发与运行环境,使得分布式应用软件能够独立于特定的硬件和操作系统平台,帮助用户灵、高效地开发和集成复杂的应用软件。在中间件产生以前,应用软件都是直接与操作系统交互,直接处理通信协议、直接访问数据库,而操作系统、通信协议、数据库这些都是计算机的底层东西,应用软件与这些底层的东西交互越多,应用软件开发的复杂性越高,开发者需要处理的棘手问题越多,软件开发的效率越低。应用程序应用程序应用程序jEE 尊物理资源(CPIJ、内存、磁盘)、操作系统、网络资源 图11中问件的地位最早具有中间件技术思想及功能的软件是mM的CICS(Customer Infor-mation Control System),但由于CICS不是分布式环境的产物,因此人们一般把 Tuxedo作为第一个严格意义上的中间件产品。Tuxedo是1984年在当时属于 AT&T的贝尔实验室开发完成的,但由于分布式处理当时并没有在商业应用上 获得像今天一样的成功,Tuxedo在很长一段时期里只是实验室产品,后来被 Novell收购,在经过Novell并不成功的商业推广之后,1995年被现在的BEA公 司收购,BEA公司现已被Oracle公司收购。从此,国内外科研机构、公司对中 间件的研究开发不断向前发展,并且竞争十分激烈。目前来看,中间件市场有国 外厂商占主导地位,主流厂商包括IBM、BEA、Oracle、HI、Iona等,还有一 些新兴的中间件公司,如Tibeo、WebMethod、Vitria也开始携其应用集成中间 件或业务流程管理中间件进入中国市场。国内一些规模较大的企业也开始进入中 间件领域,形成了包括中创软件商用中间件、金蝶Apusic、东方通科技等一批中 间件专业厂商。而且,国产中间件在不断增强,目前国产中间件己广泛应用于我 国政府、交通、金融、证券、保险、税务、电信、移动、教育、军事等行业或领东华大学硕士研究生学位论文域的信息化建设,并成为大型应用系统建设不可或缺的一环。如今,中间件已经与操作系统、数据库一起构成了基础软件的“三驾马车!不同应用领域对中间件有各种不同的需求,因此中间件的种类众多。根据中间件在系统中所起的作用和采用的技术不同,中间件大致可以划分为:数据访问 中间件【9】、远程过程调用中间件【101、面向消息中间件【14-16、交易中间件【ll】、对象 中间件【12】、应用服务器中间件【131、网络中间件七种类型。123消息中间件面向消息的中间件(Messageoriented Middleware,MOM),简称为消息中 间件【l6l,是为应用系统在不同平台不同环境下提供安全高效的消息传递的系统 软件。消息中间件屏蔽了操作系统、硬件、网络协议和数据库的异构性,为上层 应用系统提供可靠的数据交换,并且具有很高的移植性和软件复用性。消息中间 件的工作流程是客户端产生消息,并且将消息发送给消息中间件,消息中间件再 同步或异步地将消息发向消息的接收者。消息中间件中转消息,管理消息发送时 间和流向。产生消息的客户端和接收消息的客户端不再直接参与消息的传递,只 需要将消息丢给消息中间件,它会按时按接收地点将消息发送给消息接收者。一 般消息中间件存放消息的是队列(Quene)或者主题(Topic)。消息中间件能够 对不同平台的客户端使用相同的接口来进行消息传送,增加系统开发的效率。消 息中间件支持客户端之间的一对一、一对多、多对多的模式。消息中间件按照部 署拓扑结构分为两种类型。图12中的消息中间件采用集中式拓扑结构,消息中间件的使用者和消息中间分布在不同的节点上,应用程序使用消息中间件的客户端与消息中间件进行通信,消息生产者往消息中间件发送消息,消息消费者从消息中间件接收消息。应用程序A消息中闻件客户端通信吣消息中间件一通信 图12集中式拓扑结构消息中间件应用程序B消息中间件客户端图13的消息中间件采用分布式拓扑结构,消息中间件作为应用程序的一个组件与应用程序处于同一个节点,应用程序与消息中间件的通信是本地调用,消息中间件之间的通信是网络通信。消息生产者将消息发送给本地的消息中间件,消息消费者从本地的消息中间件接收消息。4东华大学硕士研究生学位论文应用程序A应用程序B消息中间件夺消息中间件图13分布式:拓扑结构清息中间件124消息传送模型消息传送模型分为点对点模型和发布订阅模型【17】。点对点模型:点对点消息传送模型允许JMS客户端通过队列(Quene)这个虚拟通道同步和异步发送、接收消息。在点对点模型中,消息生产者成为发送者,而消息消费者则称为接收者。传统上,点对点模型是一个基于拉取或基于轮询的消息传送模型,这种模型从队列中请求消息,而不是自动地将消息推送到客户端。点对点消息传送模型的一个突出特点就是,发送到队列的消息被一个而且仅仅一个接收者所接收,即使可能有多个接收者在一个队列中侦听同一消息是,也是如此。此模型见图14。图14消息队列桢匿发布问阅模型:在发布订阅模型中,消息会被发布到一个名为主题(Topic)的虚拟通道中。消息生产者称为发布者,消息消费者则称为订阅者。与点对点模型不同,使用发布订阅模型发布到一个主题的消息,能够由多个订阅者所接受。有时候,也称这项技术为广播消息。每个订阅者都会接受到每条消息的一个副本。总地来说,发布订阅消息传送模型基本上是一个基于推送的模型,其中消息自动地向消费者广播,它们无需请求或轮询主题来获得最新消息。此模型见图15。东华大学硕士研究生学位论文13研究的主要内容数据交换平台的目标是为企业内外各种业务系统提供一个统一的、规范的、遵循数据规范的数据交换平台,解决因应用系统不同、数据库不同、数据定义不同和运行环境不同等导致的“信息孤岛”问题。数据交换平台具有分布式系统的特性,分布式系统节点之间具有指令通信和文件传输的需求,本课题针对分布式系统之间指令通信和文件传输的需求,研究了消息中间件。本文的主要研究内容概述如下: 1)分析和总结当前分布式系统的研究现状,重点考察了消息中间件的研究现状。 2)深入分析异步事件驱动型构架风格网络应用程序框架Netty,对其工作机制进行深入的剖析。 3)设计和实现一个既适合短消息传输又适合大文件消息传输的消息中间件软件系统。 4)设计消息中间件的消息传输协议和文件传输协议。5)基于WebSoeket协议的服务器推送技术设计一个消息中间件运行监控系统。14课题的创新点本文的主要创新点概述如下:1)采用异步事件驱动的软件架构风格设计,整个消息中间件系统建立在异步事件驱动型构架风格网络应用程序框架Netty之上。2)消息中间件以组件的形式提供给应用程序,消息消费者与消息生产者的操作都是本地操作。3)文件消息的文件内容采用独立的文件传输通道传输,文件消息作为一个文件传输己完成的通知。4)对消息中间件的运行时监控采用了基于WebSoeket协议的服务器推送技术。15论文组织结构论文公分7章,各章内容概述如下:第一章绪论。本章介绍了消息中间件研究的意义、课题来源等课题背景知识,同时阐述了分布式系统的概念及其一些实现技术、然后阐述了中间件技术相关知识、重点介绍了消息中间件。6东华大学硕士研究生学位论文第二章Netty网络应用程序框架分析。这一章深入分析了构建高性能网络应用程序的网络应用程序框架Netty,对其核心数据结构及其软件架构进行了深入的剖析。第三章消息中间件的总体设计与实现。这一章详述了消息中间件的总体设计,包括消息格式、消息队列、消息发送器、消息接收器、消息传输协议及服务器端和客户端实现。第四章消息中间件文件传输组件设计与实现。这一章详述了消息中间件中文件传输组件的设计,包括文件传输协议、断点续传机制及服务器端和客户端实现。第五章消息中间件监控组件设计与实现。这一章详述了消息中间件运行监控系统的设计,阐述了基于WebSocket协议的服务器推送技术在监控系统中的应用。第六章消息中间件的部署与测试。这一章介绍了消息中间件在数据交换平台中的实际应用。第七章总结与展望。这一章总结了本文的主要内容,对未来研究工作做出了一些展望。东华大学硕士研究生学位论文第二章NetI),网络应用程序框架分析N嘶【18】是一个用于开发可维护性、可扩展性、高可用性协议服务器和客户端的异步事件驱动型网络应用程序框架,采用了异步事件驱动型构架风格【19。2叭。Nctty框架为阻塞型套接字和非阻塞型套接字【2lJ提供了一个统一的应用程序编程接口(Application Programming Interface,API),对底层套接进行了一个统一的抽象,方便上层应用程序的开发。Netty框架提供了一个可伸缩性、可扩展性的事件驱动模型,这一点对于开发高性能、不同协议的服务器非常重要。图21显示了Netty的架构图,Nctty框架实现了Reactor22模式。网络请求接收器接受网络请求,接受网络请求后,将其交给反应器,反应器负责监听每个连接的所有事件,并将事件委托给事件分发器,事件分发器根据事件的类型对事件做出反应,即将事件分发到正确的事件处理器处理,如读数据、对数据解码、进行运算、对数据编码、写数据。21缓冲区缓冲区是一个可以随机和顺序存取的字节序列,是整个框架中最基本的数据载体。从网络套接字收到的数据最先进入缓冲区,随后程序其它组件从缓冲区获东华大学硕士研究生学位论文取数据进行后续处理;发送到网络套接字的数据在发给网络套接字之前最终被写入缓冲区,然后程序将缓冲区数据写入套接字。211缓冲区接口此框架为缓冲区设计了一个缓冲区接13,即ChannelBuffer接13,该接El为一个或多个原始字节数组(byte【】)和JDKl5“23】中的ByteBuffer提供了一个抽象的视图,框架的其他组件可以通过该接13存取缓冲区中的数据。212缓冲区的创建缓冲区的创建由缓冲区工厂【24】负责创建。缓冲区工厂不仅负责创建具体的缓冲区,而且负责缓冲区的预先分配、缓冲区的缓存和重用,尽可能减少分配资源的开销。图22显示了缓冲区工厂类的接口、类层次图,根部是一个缓冲区工厂接口,定义了缓冲区工厂具有的行为,其实现者实现该接口,根据实现的不同给缓冲区的创建提供不同的机制。213缓冲区的存取缓冲区提供了两种存取方法,分别为随机存取和顺序存取。(a)随机存取:就像字节数组一样,ChannelBuffer提供从0开始到容量减l结束的索引存取每个字节,这样,我们可以快速地存取ChannelBuffer缓冲区的任意一个字节或者迭代访问一部分字节。(b)顺序存取:ChannelBuffer缓冲区提供了两个变量支持顺序读入和写出操作,分别为读者索引和写者索引。图23给出了支持顺序存取的ChannelBuffer缓冲区视图结构。读者索引和写者索引将ChannelBuffer缓冲区分解成三块,分别为可丢弃字节区,可读出字节区,可写入字节区。可丢弃字节区是读者已经读过的字节区,可以丢弃来增加可写空间,ChannelBuffer缓冲区提供了相应的方q东华大学硕士研究生学位论文法。可读出字节区代表ChanneIBuffer缓冲区当前具有的实际内容,读操作可以从这一个可读出字节区读出一些数据,同时修改读者索引指示新的可读出字节区。可写入字节区代表缓冲区的空闲空间,写入操作可以往这一个可写入字节区写入相应的数据,同时修改写者索引指示新的写者索引。214缓冲区的具体实现图24为缓冲区的接口、类层次图。interface) ChsnnelBufferAbst,ractCImm,eBuf强er伞伞lByteBafferBackedChannelBuffer腩印凸锄聃如物 DynmicChannelBuffer CcapositeChannelBuffer0 IBt邱ndtanHeapChannelButferLittleEndianHeapChannelBuffer图24 buffer类层次图一个抽象基类AbstractChannclBuffcr提供了缓冲区的框架实现,各种缓冲区的具体实现由这个抽象类的具体子类完成。为了给已经存在的缓冲区提供另一种 视图或添加额外的功能, WrappcdChannelBuffcr接口为包装类提供了一个统一 的包装接口, 便于对已经存在的缓冲区进行包装。ByteBuffcrBackcdChannclBuffcr类提供了一种基于JDK中ByteBuffer的缓冲区类。HeapChannelBuffer提供了基于Java堆的缓冲区的框架实现,其具体子类BigEndianHeapChannelBuffer和LittleEndianHeapChannelBuffer分别提供了大端1f1堆缓冲区和小端堆缓冲区。DynarnicChannelBuffcr提供了一种能够根据实际需要动态增长的缓冲区实现。CompositeChannelBuffer为多个缓冲区合并为一个缓冲区,提供单一缓冲区视图。22通道及通道状态通道是一个网络套接字或者具备读入、写出、连接、绑定等IO操作的组件的枢纽。通道从使用功能角度可以分为服务器监听通道和数据传输通道两种,前者只工作在服务器端,此通道建立成功后随后被打开、绑定到一个本地P地址,监听远程网络连接,一旦接受到一个网络连接,此通道创建一个数据传输通道与远程的主机进行通信。数据传输通道或者是由服务器通道接受到连接请求后创建出来或者是由客户端主动创建。221通道的状态一个通道从创建到销毁会经历一系列状态转换。服务器通道有4种状态,分别为通道己关闭、通道已打开但未绑定、通道已绑定但未连接、通道己连接。客户端通道有3中状态,分别为通道已关闭、通道己打开、通道已连接。图25显示了服务器通道状态之间的转换。图26显示了客户端通道状态之间的转换。图25服务霉酒囝雠昀翻掀图在图25中,通道创建后的初始状态为通道已关闭,即未打开状态,随后通道被打开,状态变为通道已打开状态,但此时通道还未绑定一个口地址,接下来将通道绑定到一个口地址,绑定成功后,通道就变成已绑定但未连接状态,准备接受网络连接,接收到连接后,通道就变成己连接状态。11在图26中,新建的通道处于通道已关闭状态,随后通过打开进入通道已打开状态,与服务器端建立连接后就进入通道己连接状态。222通道的工作模式所有的IO操作都是异步的。这意味着任何IO调用在不保证请求的IO操作完成就立即返回,返回一个延迟结果对象,调用者可以通过查看这个延迟结果对象获知IO请求是否已成功、失败或取消。223通道的兴趣选项OP READ 是否立即读,如果置位,则立即读,否则,悬挂读操作。OP WRITE一是否立即写,如果置位,则悬挂写操作,否则,立即写。OP READ WRITE OP READ和OP WRITE的组合,只悬挂写请求。OP_NONE 非OPREAD和非OPWRITE的组合,只悬挂读操作。224通道配置通道具有多个配置选项可以配置,表21显示了Netty框架提供的一些配置选项及其含义。表21通道配置选顼配置选项作用适用通道类型timeout连接超时时间套接字通道keepAlive是否保持长连接套接字通道reuseAddress是否重用口地址套接字通道和服务器套接字通道soLinger是否支持异常关闭套接字通道tcpNoDelay是否禁用Nagles算法套接字通道receiveBufferSize接受缓冲区大小套接字通道和服务器套接字通道sendBufferSize发送缓冲区大小套接字通道traf丘cClass服务类型套接字通道backlog服务器套接字允许请求队列长度服务器套接字通道23通道事件Netty框架是一个事件驱动型的框架,提供了一个良好的事件模型。一个通道事件或者表示一个的通道中已经发生的事件,或者表示对IO通道的一个请求。通道事件根据传递的方向分为入站事件和出站事件。如果一个通道事件从通道处理器流水线里的第一个处理器流向最后一个处理器,我们称这个事件为入站事件。如果一个通道事件从通道处理器流水线的最后一个处理器反向流向第一个处理器,我们称这个事件为出站事件。当你的服务器从客户端接收到一个消息后,与接收到的消息相关联的事件就是一个入站事件。当你的服务器发送一个消息相应客户端,与写请求相关联的事件就是一个出站事件。上述规则同样适用于客户端。当你的客户端发送一个请求道服务器,这意味着你的客户端触发了一个出站事件。如果你的客户端从服务器接收到一个响应,这意味着你的客户端将会得到一个入站事件通知。入站事件通常是入站操作如InputStreamread(byte)的结果,出站事件通常是出站操作如OutputStreamwrite(byte),Socketconnect(SocketAddress),和SocketcloseO的结果。通道事件从类型上可以分为通道状态事件、孩子通道状态事件、空闲状态事件、异常事件、消息事件、写完成事件。通道状态事件又分为入站通道状态事件和出站通道状态事件。消息事件也分为入站消息事件和出站消息事件。通道状态事件表示通道状态的改变。入站通道状态事件表示通道状态发生改变的一个通知,出站通道状态事件表示改变通道状态的一个请求。孩子通道状态事件表示孩子通道状态发生改变的通知,仅有入站通道状态事件。空闲状态事件表示通道已闲置一段时间的一个通知。异常事件表示通道发生异常的一个通知。消息事件表示通道上一个消息的发送或者接受。入站消息事件表示通道已接受到一个消息的通知,出站事件表示通道接受到一个消息发送请求。写完成事件表示通道上写请求已经完成的一个通知。24通道事件处理器及处理器流水线架构图27显示了通道处理器流水线架构。I0请求通道处理器流水线、入站处理器N出站处理器lJ 上入站处理器N1出站处理器2t土中间的入站处理器中间的出站处理器Ti入站处理器1出站处理器ML从网络套接字读出数据往网络套接字写入数据ioworker线程通道事件处理器负责处理或拦截一个通道事件,然后发送一个通道事件到通道处理器流水线上的下一个通道处理器。根据通道事件流动的方向,通道事件处理器分为入站通道事件处理器和出站通道事件处理器。从IO-worker线程产生的一个通道事件属于一个入站通道事件,IOworker线程将此入站通道事件传递到跟此通道关联的通道事件处理器流水线的第一个入站通道事件处理器,第一个入站通道事件处
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡村振兴头雁计划培训学习心得体会
- 低温轴承采购合同范本
- 第三章培训与开发(人力资源三级)案例分析题及答案
- 关于督查工作的心得体会【四篇】
- 第八章 解析几何2026年高三数学第一轮总复习
- 职测信息处理题目及答案
- 短视频营销推广方案计划
- 2025年趣味益智游戏题库及答案
- 2025年山东省政府采购评审专家考试经典试题及答案
- CN120108096A 基于多模态融合算法的火灾最优逃生路线规划方法及系统 (无锡学院)
- 交通规划中智能交通信号控制技术应用2025年研究报告
- 公共空间设计培训课件
- 2025年汽车维修高级技师能力认证考试试卷及答案解析
- 2025年保险理赔员执业资格考试试题及答案解析
- 板绘插画师基础知识培训课件
- 2025至2030年中国分时度假行业市场运营现状及投资规划研究建议报告
- 孕期甲状腺功能课件
- 2025年版《煤矿安全规程》考试题库(含答案)
- 押运员持枪证考试试题及答案
- 医药代表一院一策工作汇报
- 居民健康档案管理服务规范解读
评论
0/150
提交评论