Netty深入剖析
1、底层使用了Netty的框架
- Dubbo
- RocketMQ
- Spark
- Elasticsearch
- Cassandra
- Flink
- Netty-SocketIO
- Spring5
- Play
- Grpc
常见的底层使用了Netty的框架如下图(其实还有很多框架底层也是使用Netty):
2、Netty是什么?
(1)异步事件驱动框架,用于快速开发高性能服务端和客户端
学了Netty之后,基本不用担心性能问题
(2)封装了JDK底层BIO和NIO模型,提供了高度可用的API
我们只需要更改几个参数,就能轻松实现NIO模型,如果是自己实现socket编程,基本上是不可能做到的。
Netty提供了非常多的扩展点,API更加灵活丰富,满足各类业务场景
(3)自带编解码器解决拆包粘包问题,用户只需要关心业务逻辑
解决了socket编程拆包粘包问题
(4)精心设计的reactor线程模型支持高并发海量连接
少量的线程就可以支持几十万的连接
(5)自带各种协议栈让你处理任何一种通用协议都不用亲自动手
可以处理Http、WebSocket等协议,比同等产品更加可靠高效
所以各大开源框架纷纷投入到Netty怀抱
3、Netty有必要学吗?
(1)各大开源框架选择Netty作为底层通信框架
(2)更好的使用,少走弯路
(3)遇到bug?单机连接数上不去?性能遇到瓶颈?如何调优?
(4)详解reactor模型,实践中举一反三
(5)庞大的项目是如何组织的,设计模式,体验优秀的设计
(6)阅读源码,其实没有那么苦难
4、Netty怎么学?
(1)自己摸索不如前人指路
(2)对应socket编程,逐个切入
(3)踩过的坑,积累的经验总结毫无保留的分享,节省大量的时间
(4)调试、分析技巧
5、Netty好不好学?
(1)手把手从零开始带领你进入源码世界
(2)各章节按独立模块拆分,各章节基本可以独立学习
(3)按照总分总的方式渐进式分解,既关深林,又见草木
(4)实例演示,图示教学,调试学习
6、Netty能达到什么水平?
(1)掌握Netty底层原理,轻松解决各种疑难杂症,深度调优
(2)面试加分,互联网各大架构师职位,升职加薪,以一档三
(3)给官方提issue
(4)实现一个简易版的Netty
(5)开启阅读源码之旅,根本停不下来
7、Netty适合人群
(1)系统掌握Netty底层核心原理
(2)加速掌握基于Netty的各类中间件框架
(3)对技术有追求,对优秀代码有执念开发者
(4)从未阅读过源码,有勇气迈出第一步的开发者