11月29日 19:30-20:30 在华为云视界举办了一场《Netty和Vert.x在Apache顶级项目ServiceComb中的应用》直播,线上听众提了很多关于Netty实践相关的问题,由于线上互动时间有限,很多问题没有在线答疑,现将典型问题整理出来,供大家参考。
1、问题1:Netty和Mina有哪些区别?公司的老项目是基于Mina构建的,有必要迁移到Netty吗?
答复:
1)两者相同点:
-
都是一个高性能的NIO通信框架,历史上两者有一些渊源
-
都提供了编解解码扩展机制和协议定制能力,可以方便的构建各种协议栈
2)两者差异:
-
功能差异,相比较而言,Netty的功能更丰富,提供了HTTP/2、MQTT,支持OpenSSL等
-
社区活跃度差异,Netty目前应用的范围、版本发布速度等更胜一筹
-
学习成本,Mina的API更加简洁和清晰,源码学习和维护成本更低一些,Netty的整个架构和代码更复杂一些,学习成本相对较高
如果公司其它一些项目中使用到了Netty,或者需要使用HTTP/2等Netty独有的新特性,可以考虑切换到Netty;如果是遗留项目,功能上没太多新需求,没有重构的必要性,则不建议切换。
2、问题2:Netty的高性能体现在哪些方面?
答复:请参考2014年我在infoQ发表的文