引言
通信框架其实有很多,再不济可以使用JDK NIO
。为什么很多框架以及自己做项目开发的会使用Netty
作为通信框架呢?本文将就此展开阐述。
- 为什么不直接使用
NIO
Netty
现状- 总结
一、为什么不直接使用NIO
(1)Netty
支持的功能比JDK NIO
更多,如以下:
- 支持多种常用的通信协议(HTTP、 WebSocket 、Protobuf、 Binary TCP |和UDP),不需要自己实现相关协议的编解码;
- 解决网络传输问题,如半包、粘包现象;
- 完善的异常处理,如断连重试等;
- 实现更多的定制功能,如流量控制,黑白名单等;
(2)Netty
规避了很多JDK NIO
存在的Bug
;
(3)Netty
框架中的相关实现API
更加友好以及易用;
(3)Netty
框架屏蔽了底层通信实现细节,兼容JDK NIO
的版本变化;
二、Netty
现状
Netty
的Github
地址:Netty
目前使用的版本是4.1版本,4.1支持Android。
使用Netty的框架:
- Spark
- RocketMQ
- ElasticSearch
- Dubbo
- Zookepper
- Spring5
三、Netty
特性
四、总结
本文主要介绍了使用Netty的好处与原因,它支持的协议越来越多,紧随JDK更新。从下文开始我们要对Netty的使用以及源码进行介绍。