我们为什么呢要学习Netty通信呢?其实业内我们有很多大型架构都是Netty作为底层通信,异步非阻塞。如:Duddo,RocketMQ,Spark,Elasticsearch,Cassandra,Flink,Netty-SocketIO,Spring5,Play,Grpc。
所以那Netty到底是什么?
1.异步事件驱动框架,用于快速开发高性能服务端和客户端。
2.封装了JDK底层BIO(同步阻塞式IO)和NIO(同步非阻塞式IO)模型,提供高可用的API.
3.自带解码器解析拆包粘包问题,用户只关心业务逻辑。
4.精心设计的reactor线程模型支持高并发海量连接
5.自带各种协议栈让你处理然后我一种通用协议都几时不用亲自动手。
有必要学吗?
1.各大开源项目选择Netty作为底层通信框架
2.更好的使用,少走弯路
3.遇到bug?单机连接数上不去?性能遇到瓶颈?如何调优?
4.讲解reactor线程模型,实践中举一反三
5.庞大的项目是如何组织的,设计模式,体验优秀的设计
6.阅读源码其实没那么苦难。
怎么学?
1.自己摸索不如前人指路。
2.对应socket编程,逐一切入。
3.踩过的坑,积累的经验总结毫无保留的分享,节省大量的时间。
4.调式,分析技巧。
最后可以达到什么水平?
1.掌握Netty底层原理,轻松解决各类疑难杂症,深度调优
2.面试加分,互联网各大框架师的职位,升值加薪,以一档三
3.给官方提issue
4.实现一个简易版的Netty
5.开启阅读源码之旅,根本停不下来。
知识储备
1.熟悉java基础,熟悉多线程
2.熟悉TCP原理,NIO
3.使用过Netty
4.maven,idea工具等。
跟着我一起学Netty源码,你并不孤单,一起进步,