基于Netty的HTTP客户端的设计与实现

基于Netty的HTTP客户端的设计与实现#金志国1,2,李炜1,2**(1.北京邮电大学网络与交换技术国家重点实验室,北京(100876);5102.东信北邮信息技术有限公司,北京(100191))摘要:能力开放平台是一个提供电信能力开放的移动互联网开放平台,向开发者提供丰富的业务能力,包括:短信、彩信、地图、定位等。能力开放平台接入系统需要异步处理客户端的HTTP请求,而平台内部各个系统间的消息传递也需要使用大量的异步HTTP请求。Netty是一款异步的事件驱动的网络应用开源框架,用于快速开发可维护的高性能、高扩展性协议服务器和客户端。本文简述了通过对开源框架Netty的源码封装,提供方便易用可以发送异步HTTP请求的客户端的设计思路和具体实现。关键词:Netty框架;NIO技术;异步;HTTP客户端.中图分类号:TP311.515TheDesignandImplementationofHTTPClientBasedonNettyJIZhiguo1,2,LIWei1,2(1.StateKeyLabofNetworkingandSwitchingTechnology,BeijingUniversityofPostsand2025303540Telecommunications,Beijing100876,China;2.EBUPTInformationTechnologyCo.Ltd.,Beijing100191,China)Abstract:OpenMobilePlatformisanOpenPlatformprovidingabilityoftelecommunication.Itprovidesdeveloperswithrichbusinessabilities,including:SMS,MMS,maps,positioning,etc.TheaccesssystemofOpenMobilePlatformrequiresasynchronousprocessingHTTPrequestsfortheclient,andvarioussystemsoftheplatformalsoneedtousealargenumberofasynchronousHTTPrequeststosendmessage.Nettyisanasynchronousevent-drivennetworkapplicationsopensourceframework,isusedforrapiddevelopmentofmaintainablehighperformance,highscalabilityprotocolserversandclients.ThispaperbrieflydescribesthedesignideaandconcreteimplementationofusingopensourceframeworkNettytoprovideaconvenientandeasytousehttpclientwhichcansendanasynchronousHTTPrequest.Keywords:Nettyframework;NIOtechnology;asynchrony;HTTPClient0引言云计算是服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。在云计算技术发展日新月异的今天,业界开始更多的转向云平台[1]。能力开放平台是基于PaaS(platformasaservice,平台即服务)提供电信能力开放的移动互联网开放云平台,向开发者提供丰富的业务能力,包括:短信、彩信、地图、定位等[2]。在能力开放平台的接入系统部分,需要处理海量的请求。在用户体验不断提高的要求下,能力开放平台业务处理日益复杂造成交互延迟,传统的Web请求同步模式下业务处理的阻塞造成的延迟已经满足不了高并发需求[3]。在接入系统内部以及接入系统与其他系统之间,多采用HTTP进行数据传输。由接入系统接受客户传来的请求,进行异步处理,但系统内部的信息传输仍然采用同步模式时,则会基金项目:国家973计划项目(No.2013CB329102);国家自然科学基金资助项目(No.61372120,61271019,61101119,61121001,61072057,60902051);长江学者和创新团队发展计划资助(No.IRT1049)作者简介:金志国(1988-),男,硕士研究生,业务网络智能化通信联系人:李炜(1973-),男,副教授,业务网络智能化.liwei@ebupt.com-1-造成阻塞,异步的Web服务器也失去了意义[4]。所以,在云平台项目开发过程中急需要一个可以支持大并发高效稳定的异步HTTP客户端。4550目前,异步HTTP客户端只有ApacheHttpComponents项目的HttpAsyncClient4.0-beta4,但仍然是对外测试版。其他的异步框架,如Mina[5]、Netty和Grizzly,均是以JAVANIO(Non-BlockingIO非阻塞IO)为基础。本文通过调研,选定采用Netty作为底层源码实现异步HTTP客户端。1Netty概述Netty是一款异步的事件驱动的网络应用框架和工具,用于快速开发可维护的高性能、高扩展性协议服务器和客户端[6]。Netty是一个基于JavaNIO客户端/服务器框架,支持快速、简单地开发网络应用,如协议服务器和客户端[7]。Netty具有以下优势[8]:对阻塞和非阻塞的socket提高统一的API;55高度可定制化的线程模型;基于拦截链模式的事件模型有很高的灵活性和...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?