Netty 源码剖析与实战
傅健
Netty 源码贡献者、Cisco 高级软件工程师
32935 人已学习
新⼈⾸单¥59
课程目录
已完结/共 60 讲
第一章:初识Netty:背景、现状与趋势 (7讲)
第三章:Netty源码:从“线”(请求处理)的角度剖析 (8讲)
第六章:成长为Netty的贡献者 (6讲)
Netty 源码剖析与实战
登录|注册
留言
10
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 02 | 内容综述
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | 揭开Netty面纱
04 | 为什么舍近求远:不直接用JDK NIO?
05 | 为什么孤注一掷:独选Netty?
06 | Netty的前尘往事
07 | Netty的现状与趋势
08 | Netty怎么切换三种I/O模式?
09 | 源码剖析:Netty对I/O模式的支持
10 | Netty如何支持三种Reactor?
11 | 源码剖析:Netty对Reactor的支持
12 | TCP粘包/半包Netty全搞定
13 | 源码剖析:Netty对处理粘包/半包的支持
14 | 常用的“二次”编解码方式
15 | 源码剖析:Netty对常用编解码的支持
16 | keepalive与idle监测
17 | 源码剖析:Netty对keepalive与idle监测的支持
18 | Netty的那些“锁”事
19 | Netty如何玩转内存使用
20 | 源码解析:Netty对堆外内存和内存池的支持
21 | Netty代码编译与总览
22 | 源码剖析:启动服务
23 | 源码剖析:构建连接
24 | 源码剖析:接收数据
25 | 源码剖析:业务处理
26 | 源码剖析:发送数据
27 | 源码剖析:断开连接
28 | 源码剖析:关闭服务
29 | 编写网络应用程序的基本步骤
30 | 案例介绍和数据结构设计
31 | 实现服务器端编解码
32 | 实现一个服务器端
33 | 实现客户端编解码
34 | 完成一个客户端雏形
35 | 引入"响应分发"完善客户端
36 | Netty编码中易错点解析
37 | 调优参数:调整System参数夯实基础
38 | 调优参数:权衡Netty核心参数
39 | 调优参数:图解费脑的三个参数
40 | 跟踪诊断:如何让应用易诊断?
41 | 跟踪诊断:应用能可视,心里才有底
42 | 跟踪诊断:让应用内存不“泄露”?
43 | 优化使用:用好自带注解省点心
44 | 优化使用:“整改”线程模型让"响应"健步如飞
45 | 优化使用:增强写,延迟与吞吐量的抉择
46 | 优化使用:如何让应用丝般“平滑”?
47 | 优化使用:为不同平台开启native
48 | 安全增强:设置“高低水位线”等保护好自己
49 | 安全增强:启用空闲监测
50 | 安全增强:简单有效的黑白名单
51 | 安全增强:少不了的自定义授权
52 | 安全增强:拿来即用的SSL-对话呈现表象
53 | 安全增强:拿来即用的SSL-抓包暴露本质
54 | 安全增强:拿来即用的SSL-轻松融入案例
55 | Cassandra如何使用Netty ?
56 | Dubbo如何使用Netty ?
57 | Hadoop如何使用Netty ?
58 | 赏析Netty之美
59 | 如何给Netty贡献代码?
60 | 结课测试&结束语
登录 后留言

全部留言(10)

  • 最新
  • 精选
Robin
想了解一下,用netty实现QUIC的难度和工作量有多大,项目有涉及,但是担心几个月做不完(毕竟有KPI),刚毕业的新手,对此缺乏认识

作者回复: 我没有用netty udp开发过,所以特地上社区看了下,15年就有人想要这个功能了,但是现在也还没有,我觉得你这个任务不太容易,因为没什么太成熟的代码可以抄,但是搞出来肯定很有成就感!

2019-10-11
10
hgf
老师,建议加一节讲讲netty应用开发好后,怎么做性能测试,容量测试。请问在这方面老师有什么实用的工具,案例,或者是方法吗?

作者回复: 看使用的协议,如果是http协议,那测试工具就多了,如果是自己定制的私有协议,只能自己写了,建议自己写工具来测,100%自己能控制,jmeter等等工具还不是完全自由控制的,然后测试上,注意几个方面:测试环境,软硬件和上线的一样,核心用户场景也要尽量模拟出来,然后也可以排除业务,把业务调用的地方给mock掉测测,测试的时候还要注意,最好和自己的场景一致,比如1台机器产生1000tps的压力和1000台机器一起产生1000tps的。课程设计上没加测试是因为测试的结果意义不大,因为脱离真实的业务,我们经常听到很多文章说netty百万链接多少吞吐量,但是我们不定能做到?为什么,业务不同,机器多少也不同。总之,性能测试是个非常大的话题,有点很肯定,尽量自己写工具测,不要依赖工具,特别是gui工具,个人看法

2019-10-11
2
6
新一天
老师问一下问题,NIO为什么有channel 还需要Pipe。

作者回复: 做的事情不一样,pipe是通过包含两个channel一个读一个写(一个本地的tcp连接),来做了一个管道,作用是运输了数据。,你仅仅一个channel做不了这个效果,所以pipe相当于借助了channel来提供了一个好用的功能给大家。所以pipe需要channel.所以你说的问题是为什么还需要pipe.等于说我有晾袜子的小夹子,为什么还需要买那种上面有很多小夹子的那种圆盘式的晾晒的(应该都买了吧),能干掉别的事,比如二个小夹子可以加个小衣服什么的,不知道我可解释清楚了,哈

2019-10-14
4
hi兵哥
请教老师一个实际使用中的问题解决方案,多个jar包中有相同路径的相同class,如何让jvm加载制定包下的class?springcloud中有时引入了多个依赖,譬如引入的包使用@bean 生成了 restTemplate,而我自己项目中同样有要生restTemplate的需求,两个处理逻辑有区别,而我想基于robbin去实现负载均衡。基于上面我大致知道可以通过类加载,classScan方式去做一些处理,请问老师能否给出一些具体的可操作的解决方案,谢谢。

作者回复: 这个问题和netty并无关系,哈哈 1 只能从class loader角度去处理了; 2 你说的这个情况我也遇到过,估计你用的是spring boot,它只有一个rest template,所以你又想搞出2个自定义的rest template,这个时候你就自己定义就行了,不要去用它默认的。spring虽然好,但是面对你这个情况,就要自己去搞了,因为它太约定俗称了。就像一个智能电饭煲,天天全自动,有天想换口味,就不行了,你就参考它的自动配置实现,自己重新搞下就行了。不过心里上,可能觉得怪怪的。但是确实也没有办法。

2019-10-26
2
青青木
老师 我们公司正在使用netty4做tcpserver 客户端是c实现的 又个奇怪的现象是客户端第一次链接是总是收到一个reset 这样导致客户端第一条数据丢失了 后面重新连接上就就好了 没有什么思路 老师有什么建议吗?

作者回复: 你描述的有点宽泛,看起来是server强制断了是的,你可以换些思路排查下,(1)就是写个java的客户端测试下,这样定位下到底是服务器端问题还是c客户端问题。(2)只能debug了

2019-10-10
3
helloworld
希望不仅仅能深入理解Netty的原理,更期待老师课程介绍中说的也可以学习到网络等相关的一些深度知识

作者回复: 后面会有一些

2019-10-10
ran
章节设计感觉挺好的
2020-03-22
1
赵启明
老师你好,有个问题请教一下,如果用netty开发充电桩接入服务是否可行,能不能顶住10万台电桩的并发长连接请求和处理,现在是用go做的,想改写一版用netty或者用c的,老师是否可以给点建议。感谢!
2023-08-29
hola
老师 想问一下 不了解Netty,但是想了解netty能直接学您这门课吗?
2023-07-02
Geek_2327f1
哈哈,我自己用netty写了一个翻强的代理,希望大佬的课能让我对netty的理解和应用更上一层楼。
2023-04-30
收起评论