最近工作中可能需要用到Netty,就了解了一下,发现Netty和mina的关系还是挺紧密的,一起简单了解总结之:
1. 基本概念:
1) Netty 是JBOSS提供的一个基于NIO的网络应用程序框架。使用Netty可以快速简单的开发一个网络应用。官网(https://netty.io/)提供的基础架构图:
2) Mina是apache社区提供的一个基于NIO的网络应用程序框架。用来帮助用户简单的开发高性能和高可靠性的应用程序。官网地址(https://mina.apache.org)
ps:没找到系统架构图,谁有提供一个
3) Netty的主导作者和Mina的主导作者都是 Trustin Lee,Mina比Netty出现的更早,但两者涉及理念基本一致,是很相似的两个网络高性能的编程框架。
2. NettyVS Mina:
1) Mina 将内核和一些特性联系过于紧密,使得用户在不需要这些特性的时候无法剥离,导致性能有所下降,但Netty解决了这个问题,即内置模块耦合度更小(设计更优)
2) Netty和mina相比文档更清晰及更新周期更短,涵盖了了Mina的很多特性且Netty更加轻量级,使用更加简单。
3) Mina对UDP提供更高层次的抽象,将UDP封装成了面向连接的协议。而Netty则直接将UDP无连接特性暴露出来(更轻量级嘛)
4) 虽然官网没有给出Mina的系统架构图,但是经过了解Mina和Netty的架构差别不大。
5) Netty有对google protocol buf提供支持。
6) 在linux下Netty的TPS较Mina稍高一些,但稳定性稍低,总体数据接近(了解自一篇blog(自己没验证过哈))。
7) 在市场中应用中Mina的占有量比Netty高一些(毕竟Mina出现的更早嘛)