当前播放: 01 | 课程介绍
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:初识Netty:背景、现状与趋势 (7讲)
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 揭开Netty面纱
免费
04 | 为什么舍近求远:不直接用JDK NIO?
免费
05 | 为什么孤注一掷:独选Netty?
免费
06 | Netty的前尘往事
07 | Netty的现状与趋势
第二章:Netty源码:从“点”(领域知识)的角度剖析 (13讲)
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对堆外内存和内存池的支持
第三章:Netty源码:从“线”(请求处理)的角度剖析 (8讲)
21 | Netty代码编译与总览
22 | 源码剖析:启动服务
23 | 源码剖析:构建连接
24 | 源码剖析:接收数据
25 | 源码剖析:业务处理
26 | 源码剖析:发送数据
27 | 源码剖析:断开连接
28 | 源码剖析:关闭服务
第四章:Netty实战入门:写一个“玩具”项目 (8讲)
29 | 编写网络应用程序的基本步骤
30 | 案例介绍和数据结构设计
31 | 实现服务器端编解码
32 | 实现一个服务器端
33 | 实现客户端编解码
34 | 完成一个客户端雏形
35 | 引入"响应分发"完善客户端
36 | Netty编码中易错点解析
第五章:Netty实战进阶:把“玩具”变成产品 (18讲)
37 | 调优参数:调整System参数夯实基础
38 | 调优参数:权衡Netty核心参数
39 | 调优参数:图解费脑的三个参数
40 | 跟踪诊断:如何让应用易诊断?
41 | 跟踪诊断:应用能可视,心里才有底
42 | 跟踪诊断:让应用内存不“泄露”?
43 | 优化使用:用好自带注解省点心
44 | 优化使用:“整改”线程模型让"响应"健步如飞
45 | 优化使用:增强写,延迟与吞吐量的抉择
46 | 优化使用:如何让应用丝般“平滑”?
47 | 优化使用:为不同平台开启native
48 | 安全增强:设置“高低水位线”等保护好自己
49 | 安全增强:启用空闲监测
50 | 安全增强:简单有效的黑白名单
51 | 安全增强:少不了的自定义授权
52 | 安全增强:拿来即用的SSL-对话呈现表象
53 | 安全增强:拿来即用的SSL-抓包暴露本质
54 | 安全增强:拿来即用的SSL-轻松融入案例
第六章:成长为Netty的贡献者 (6讲)
55 | Cassandra如何使用Netty ?
56 | Dubbo如何使用Netty ?
57 | Hadoop如何使用Netty ?
58 | 赏析Netty之美
59 | 如何给Netty贡献代码?
60 | 结课测试&结束语
01 | 课程介绍

01 | 课程介绍

傅健
Netty 源码贡献者、Cisco 高级软件工程师
全集10188
60

30人觉得很赞给内容提建议

登录 后留言

精选留言(30)

  • tracy
    为什么select poll epoll这么重要的原理不讲?

    作者回复: 因为偏底层了,然后课程设计的时候选取的是最重要的点,所以没有讲这块,怕跑偏,后面我会根据您的意见,把一些类似没提到然后大家觉得重要的问题做成一个小册子,单独再发出来,这样可能会更好点。回头我做好了,找个地方放下,再来想办法通知您!

    2019-11-05
    2
    21
  • 学习
    很棒的课程,老师准备也充分,问一下老师可以推荐一下netty的书籍吗

    作者回复: 网络知识:《TCP/IP详解》、《图解TCP/IP》、《Wireshark网络分析就这么简单》

    Java 网络编程:《Java 网络编程》、《Java TCP/IP Socket编程》

    Netty 相关:《Netty权威指南》《Netty实战》(译自《Netty in action》: Norman Maurer)《Netty进阶之路:跟着案例学Netty》

    2019-11-10
    3
    18
  • 约书亚
    看到就买了。
    目前看到极客时间的课程里,和源码相关的效果并不是太完美,希望这门课能成功。
    Netty水深,希望能多在评论区交流

    作者回复: 最近也在思考这个问题,就是有限得时间怎么能讲解那么多细枝末节,所以觉得还是把主线交代清楚,然后剩下的大家一起讨论交流,找出大家都关心的,然后一起研究下,看看可能整理出来比如:netty常见问题100问什么的,这样也是很好的一种方式。

    2019-10-10
    5
    16
  • Fly55
    最近用netty,做图片双中心同步,主中心启动一个线程池,异步的去链接另一中心的nettyServer,做图片的落地。图片以字节流读取以及落地。老师你认为这样的设计好吗?目前我们再做双中心(1000公里外的)非结构化数据同步,老师有好的建议吗?

    作者回复: 既然你都用netty做了,单从你的设计来看,没有什么问题,但是你可能需要考虑一些额外的问题,比如你写备份的那个请求和你的主业务之间是同步还是异步?如果失败怎么补偿等等?我们做过类似的事情,都是另外搞了一个独立服务来单独做的,因为这种需求对实时性要求不高。然后补偿也好做,怎么做,也都不影响主服务。另外对于图片这种特别的文件类型,大多都不大,所以可以做一些聚合,比如文件存储成100M,然后里面有很多小文件,这样减小文件碎片,另外文件目录,要分散点,避免1个目录存无数个,不然会很慢,等等了,扯远了;
    回正题,你这个问题上来就这样问,我只能说没有问题,肯定也能做通,但是你可以考虑更多的问题,就像开始说的,独立出一个服务专门做这个事情。

    2019-12-10
    9
  • 李远正
    听这口音很熟悉哈,老师是合肥的嘛?

    作者回复: 👍

    2019-10-11
    2
    8
  • 浅夏
    先来占个坑,就应该多补补底层通信框架,通信协议,感谢老师

    作者回复: 尽量做到,但是反思下,有的时候,讲的时候有的以为大家都知道,就一笔带过了,如果以后发现哪里讲的太粗略,可以留言反馈下,然后一起梳理。

    2019-10-10
    2
    6
  • Simba
    Java工程师必备,咬着牙也要学完~~

    作者回复: 一起努力!

    2019-10-10
    5
  • helloworld
    刚接触Netty那会儿,对Java NIO的各种概念和繁琐的API搞得头疼,现在终于能了了Netty的心结了。期待中

    作者回复: 谢谢支持,最开始我也选了jdk来做,发现确实繁琐,虽然学到了知识,但是工程实践还是用大众方案好。只能说java nio也不是白学,第三章就能看出来本质还是java nio编程,只是netty更好用

    2019-10-10
    4
  • 糖醋🏀
    我去,太巧了吧,正准备学习netty呢。

    作者回复: 来的早不如来的巧

    2019-10-10
    2
  • Zend
    立flag 我来了 老师!

    作者回复: 谢谢,希望能坚持下去,有所收获!

    2019-10-10
    2
  • 空白格
    看到有优惠就买了 ,也买了Netty实战的书籍 ,希望能对这一框架有深入的了解和掌握相应的知识

    作者回复: 希望如此!

    2020-01-12
    1
  • ezekiel
    老师您好!

    关于netty典型的生产场景,能介绍几个吗?

    作者回复: 只要是使用java语言,且需要网络通信,都可以用,覆盖tcp.udp.也支持常用应用层协议,所以都能用,但是假设你不追求高性能,直接基于现有的框架(大多也都基于netty)之类写写业务不涉及通信层,那你可能只需要了解它就行了。

    2019-11-28
    1
  • CKLogic
    这门课只限有netty使用经验对netty和NIO比较熟悉的工程师来提升自己,因为像我这种没怎么用过netty的人听得不知所云,还是习惯helloWord开始,然后一步一步来,上来就讲一堆原理,接着开始debug源码,源码跳来跳去的。。。。

    作者回复: 嗯,因为设计课程的时候,是期望有一点基础的,至少对NIO有一点点了解,否则的话,60讲根本没有办法讲完。你说的先讲Helloworld的方式,个人感觉不是太适合netty,因为netty的hello world太简单了,因为大多netty自己做好了,所以当时改了顺序,先讲原理,再讲案例。如果不太习惯的话,可以尝试先实践后原理再结合来看。谢谢

    2019-10-31
    1
  • 小怪
    你好,请问使用netty的ws无法连接外网的问题是如何处理的?本地是在代理,不使用netty的ws是可以通,如果把程序部署到阿里云香港也是可以通

    作者回复: 单从问题的描述(描述的不是很清晰)看,不像netty的问题,倒像网络互通性问题,既然提到代理,那你也可以使用netty提供的一些代理handler(Socks5ProxyHandler等)来试试。

    2019-10-30
    1
  • 旺旺
    全部看了一遍,应该是经过精心准备的,大赞!
    再问下,是在思科中国研发中心的哪个分公司呢?

    作者回复: 谢谢支持,本身不算隐私问题,但不知道这里可方便说那么具体,不好意思啊

    2019-10-10
    1
  • 嘻嘻哈哈
    希望老师能从底层操作系统原理逐渐向上层抽丝剥茧。

    作者回复: 这点重口难调,怕讲多了跑题

    2019-10-10
    1
  • maeiei
    有个问题请问下:在集成Netty时报错,说是平台没有提供低级别API,这是什么原因呢?
     io.netty.util.internal.PlatformDependent - Your platform does not provide complete low-level API for accessing direct buffers reliably. Unless explicitly requested, heap buffer will always be preferred to avoid potential system instability.

     io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: unavailable
    java.lang.NoClassDefFoundError: sun/misc/Unsafe
            at io.netty.util.internal.PlatformDependent0$1.run(PlatformDependent0.java:87)
            at java.base/java.security.AccessController.doPrivileged(Native Method)
            at io.netty.util.internal.PlatformDependent0.<clinit>(PlatformDependent0.java:83)
            at io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:272)
            at io.netty.util.internal.PlatformDependent.<clinit>(PlatformDependent.java:92)
            at io.netty.channel.nio.NioEventLoop.newTaskQueue0(NioEventLoop.java:284)
            at io.netty.channel.nio.NioEventLoop.newTaskQueue(NioEventLoop.java:155)
            at io.netty.channel.nio.NioEventLoop.<init>(NioEventLoop.java:137)
            at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:138)
            at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:37)
            at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:84)
            at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:58)
            at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:52)
            at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:88)
            at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:83)
            at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:64)
            at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:52)
    2021-12-14
  • 扫地僧
    老师 我问下 如果是字符串类型的长度域 8位 编解码怎么处理 现在是能接收到 当时要停顿个30秒才有返回 特别慢 是什么原因
    2020-09-15
  • 南北少卿
    学习netty第一天
    2020-06-16
  • ∷鹰击长空
    start mark
    2020-05-23
收起评论
看过的人还看
数据结构与算法之美
王争
前 Google 工程师

81讲 | 120173 人已学习

¥68¥199
MySQL 实战 45 讲
林晓斌
网名丁奇,腾讯云数据库负责人

49讲 | 85084 人已学习

¥68¥199
Java 核心技术面试精讲
杨晓峰
前 Oracle 首席工程师

44讲 | 54998 人已学习

¥59¥129
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家,骨灰级程序员

118讲 | 60016 人已学习

¥98¥399