李林锋-netty架构剖析和行业应用

李林锋-netty架构剖析和行业应用

ID:15361929

大小:3.27 MB

页数:33页

时间:2018-08-02

李林锋-netty架构剖析和行业应用_第1页
李林锋-netty架构剖析和行业应用_第2页
李林锋-netty架构剖析和行业应用_第3页
李林锋-netty架构剖析和行业应用_第4页
李林锋-netty架构剖析和行业应用_第5页
资源描述:

《李林锋-netty架构剖析和行业应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Netty架构剖析和行业应用!李林锋neu_lilinfeng@sina.com!新浪微博Nettying!微信Nettying!Netty介绍!Netty架构剖析!MinaVSNetty!Netty行业应用!Netty介绍!Netty是一个异步、事件驱动的网络应用框架。基于Netty,可以快速的开发和部署高性能、高可用的网络服务端和客户端应用。!Netty架构剖析-性能模型!通信性能三要素传输协议线程Netty架构剖析-性能模型!!IO模型:异步非阻塞I/O!数据协议:可定制的编解码框架!线程模型:Reactor线程模型!Netty架构剖析-性能模型!JDK1

2、.4开始提供非阻塞I/O(NIO)!JDK1.5_update10版本使用epoll替代了传统的select/poll!!Netty架构剖析-性能模型!零拷贝!Netty的接收和发送ByteBufer采用DIRECTBUFFERS!!Netty提供了组合Bufer对象,可以聚合多个ByteBufer对象,用户可以像操作一个Bufer那样方便的对组合Bufer进行操作!Netty的文件传输采用了transferTo方法!Netty架构剖析-性能模型!内存池!!!执行300万次,采用内存池性能比朝生夕灭的ByteBuf高23倍左右!Netty架构剖析-单线程模型!Reactor单

3、线程模型,指的是所有的IO操作都在同一个NIO线程上面完成!Netty架构剖析-多线程模型!专門一个NIO线程-Acceptor线程用于监听服务端,接收客户端的TCP连接请求;!网络IO操作-读、写等由一个NIO线程池负责!Netty架构剖析-线程模型!!无锁化的串行设计:为了尽可能提升性能,Netty采用了串行无锁化设计,在IO线程内部进行串行操作,避免多线程竞争导致的性能下降。!!Netty架构剖析-协议!影响序列化性能的关键因素总结如下:!1.序列化后的码流大小(网络带宽的占用);!2.列化&反序列化的性能(CPU资源占用)。!!Netty架构剖析-协议!可定制的序列化框架

4、ProtoBufJava序列化Xml用户自定义序列化框架Netty架构剖析-可靠性!心跳检测!读空闲;写空闲;读写空闲!Netty架构剖析-可靠性!Reactor线程的保护!!某个消息的异常不应该导致整条链路不可用;!某条链路不可用不应该导致其它链路不可用;!!JDK epoll 空轮询BUG的检测和修复Netty架构剖析-可靠性!内存保护!!缓冲区的内存泄漏保护:内存检测和释放!缓冲区内存溢出保护:对缓冲区进行上限保护!Netty架构剖析-可靠性!流量整形!流量整形(TraicShaping)是一种主动调整流量输出速率的措施。一个典型应用是基于下游网络结

5、点的TP指标来控制本地流量的输出。!Netty提供全局级和链路级流量整形功能。!Netty架构剖析-安全性!Netty安全性!SSL认证:SSL单向认证、SSL双向认证!IP黑白名单校验!接入认证!!Netty逻辑架构!MinaVSNetty!相同点:!基于Reactor模式的NIO框架!基于链式的Handler编排机制!对JDK的NIO类库进行了封装,屏蔽底层细节!MinaVSNetty!不同点:!ByteBufer的封装和功能不同!I/O线程模型不同!内置的编解码能力不同!内置的应用层协议不同!当前活跃度不同!功能的丰富度不同!未来的前景不同!行业应用-

6、互联网应用!互联网架构演进:由垂直架构向分布式服务框架演进Netty互联网应用-Dubbo!Dubbo的RPC远程服务调用默认使用Netty+Dubbo协议实现:!DubboRCP框架默认推荐使用Dubbo协议进行通信和数据传输,相比于老的Hessian协议性能更高!支持异步I/O通信!!Netty互联网应用-Dubbo!Netty互联网应用-Twitter!Netty在Twitter得到了大量的应用:!!Finagle是Twitter协议无关的RPC框架,用于实现大部分内部服务,如搜索,它的传输层建立在Netty之上!TFE(Twitter前端)是专有的填鸭式反向代理,它使

7、用Netty为大部分面向公众的HTTP和SPDY流量提供服务!Cloudhopper每月使用Netty向遍布世界各地数以百计的运营商发送数十亿条短信息!!Netty互联网应用-FaceBook!!Nifty是facebook公司开源的,基于netty的thrift服务端和客户端实现。!!Thrift是一个可伸缩的跨语言的服务开发框架,利用Nifty可以快速开发基于Netty的thrift服务端和客户端程序。!Netty互联网应用-雅虎!Yahoo工程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。