Netty面试题
文章树列

Netty

1.4.1为什么选择Netty

Netty是业界最流行的NIO框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都是首屈一指的,它已经得到成百上千的商用项目验证,例如Hadoop的RPC框架Avro使用Netty作为通信框架。很多其它业界主流的RPC和分布式服务框架,也使用Netty来构建高性能的异步通信能力。

1.4.2Netty的优点总结如下:

API使用简单,开发门槛低;

功能强大,预置了多种编解码功能,支持多种主流协议;

定制能力强,可以通过ChannelHandler对通信框架进行灵活的扩展;

性能高,通过与其它业界主流的NIO框架对比,Netty的综合性能最优;

社区活跃,版本迭代周期短,发现的BUG可以被及时修复,同时,更多的新功能会被加入;

经历了大规模的商业应用考验,质量得到验证。在互联网、大数据、网络游戏、企业应用、电信软件等众多行业得到成功商用,证明了它完全满足不同行业的商用标准。

正是因为这些优点,Netty逐渐成为JavaNIO编程的首选框架。

说说业务中,Netty的使用场景

有关为何选择Netty”11个疑问及解答

一.1.2 原生的NIOJDK1.7版本存在epollbug

它会导致Selector空轮询,最终导致CPU100%。官方声称在JDK1.6版本的update18修复了该问题,但是直到JDK1.7版本该问题仍旧存在,只不过该BUG发生概率降低了一些而已,它并没有被根本解决。该BUG以及与该BUG相关的问题单可以参见以下链接内容。

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6403933

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=2147719

异常堆栈如下

java.lang.Thread.State:RUNNABLE

atsun.nio.ch.EPollArrayWrapper.epollWait(NativeMethod)

atsun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)

atsun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)

atsun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)

-locked<0x0000000750928190>(asun.nio.ch.Util$2)

-locked<0x00000007509281a8>(ajava.util.Collections$UnmodifiableSet)

-locked<0x0000000750946098>(asun.nio.ch.EPollSelectorImpl)

atsun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)

atnet.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:217)

atnet.spy.memcached.MemcachedConnection.run(MemcachedConnection.java:836)

一.1.3 什么是TCP粘包/拆包

参考:

TCP粘包,拆包及解决方法

一.1.4 TCP粘包/拆包的解决办法

参考:

TCP粘包,拆包及解决方法

一.1.5 Netty线程模型

参考:

Netty4实战第十五章:选择正确的线程模型

一.1.6 说说Netty的零拷贝

参考:

理解Netty中的零拷贝(Zero-Copy)机制

一.1.7 Netty内部执行流程

参考:

Netty:数据处理流程

Netty重连实现

参考:

NettyClient重连实现

http://www.importnew.com/25046.html

 

新版下载
本文原创,商业转载请联系作者获得授权,非商业转载请注明出处。

评论

发送评论 编辑评论


                        

后端技术分类热门文章

标签热门文章排行

☛免责声明 ☛本站使用教程
Theme Argon With Ry-Plus By 清欢
我的第21230位朋友,历经124059次回眸才与你相遇