《Java架构师的第一性原理》26Java基础之Netty源码剖析与实战(极客时间 傅健)
极客时间 98.Netty源码剖析与实战
课程名称:极客时间《Netty源码剖析与实战》
讲师简介
傅健,Netty 源码贡献者。
思科中国研发中心平台软件工程师,毕业后一直在思科工作,已有 9 年。做过很多项目,从移动端应用到文档存储系统、从消息系统到电话接入系统,接触过很多不同类型的开源软件且很喜欢深究原理,所以现在也是 Netty、Jedis、Spring Data Redis、influxdb–java、Jenkins 等很多开源项目的 Contributor 。
第一章 初识Netty
1.1 课程内容
Netty是最易用最强大的Java网络框架
学习netty难点
- Java高阶知识
- 网络知识
- 算法优化策略
学习方法
- 抓住netty的主线
- 带着问题去学习
学习一个技术的过程
- 知道这个技术本质和位置了解过去现在与未来
- 了解原理,会使用这个技术
- 尝试改造这个技术,添砖加瓦
知识点:Cassada、Dubbo源码解析、社区贡献代码
成果:
- 掌握Java网络编程基本知识和原理
- 使用Netty构建一个能推向产品线的Java网络服务器
- 熟悉Netty核心源码以及其深层原理
- 能够熟练诊断、分析并排查netty使用中的各种故障
1.2 内容综述
- [Netty 初识]
- [Netty 源码:领域知识(必备知识) - 7 个]
- [Netty 源码:主线分析(核心逻辑) - 7 个]
- [Netty 优化方案]
- [Netty 实践]
- [Netty 源码深入]
- [Netty 其它问题]
1.3 解开Netty面纱
Netty 由 Trustin Lee(韩国,Line 公司)2004年开发。
Netty是什么?
- 本质:网络应用程序框架
- 实现:异步、事件驱动
- 特性:高性能、可维护、快速开发
- 用途:开发服务器和客户端
两个demo
EchoServer
EchoClient
HttpHelloWorldServer
HttpHelloWorldServerHandler
1.4 为什么不直接用JDK NIO
Netty做的更多:
- 支持常用应用层协议
- 解决传输问题:粘包、半包现象
- 支持流量整形
- 完善的断链、Idle等异常处理等
1.5 为什么独选Netty?
1.6 Netty的前尘往事
1.7 Netty的现状与趋势
第二章 Netty 源码:从“点”(领域知识)的角度剖析
第三章 Netty 源码:从“线”(请求处理)的角度剖析
第四章 Netty实战入门:写一个“玩具项目”
第五章 Netty实战进阶:把“玩具”变成产品
第六章 成长为Netty的贡献者
[Netty 初识]
[1.0 Netty 怎么学]
[1.1 Netty 面试题精选]
[Netty 源码:领域知识(必备知识) - 7 个]
[2.1 三种 I/O 模式:BIO/NIO/AIO]
[2.3 TCP 粘包与拆包:固定长度、固定分隔符、指定长度]
[2.4 二次编解码:protobuf/MessagePack/json/...]
[2.5 空闲监测:keepalive 与 idle 监测]
[2.6 玩转内存:堆内和堆外内存]
[2.7 其它方面:锁粒度、并发类、对象大小...]
[Netty 源码:主线分析(核心逻辑) - 7 个]
3.1 启动服务:NioServerSocketChannel 是什么时候激活的
3.2 构建连接:NioSocketChannel 是什么时候激活的
3.6 关闭连接:本质是取消 Channel 在 Selelctor 的注册
[3.7 关闭服务:如何优雅关闭服务]
[Netty 优化方案]
[4.1.1 参数调优:系统参数和 Netty 参数优化]
[4.2.1 跟踪诊断(上):完善日志]
[4.2.2 跟踪诊断(中):流量数据可视化]
[4.3.1 优化使用:线程整改]
[4.3.2 优化使用:延迟刷新 - 多次写一次刷新]
[4.3.3 优化使用:流量整形]
[4.3.4 优化使用:开启 Native 模式]
[4.3.5 优化使用:其它优化措施]
[4.4.1 安全增强:高低水位线 - 防止 OOM]
[4.4.2 安全增强:空闲检测 - 避免恶意连接只占坑不干活]
[4.4.3 安全增强:黑白名单]
[4.4.4 安全增强:SSL]
...
[Netty 实践]
[5.1 Dubbo 如何使用 Netty]
[5.2 Hadoop 如何使用 Netty]
[5.3 Cassandra 如何使用 Netty]
...
[Netty 源码深入]
[Netty 三大组件(中) ChannelPipleLine]
Netty 工具类(02) FastThreadLocal 框架的设计
[Netty 其它问题]
99 直接读这些牛人的原文
- 网络编程原理目录:https://www.cnblogs.com/binarylei/p/12644126.html
- Netty 之美目录:https://www.cnblogs.com/binarylei/p/10117436.html
- Netty 源码分析 - Netty 最简用法
- 《SOFABolt 源码分析》:https://www.jianshu.com/p/6328b7d11529
- 《JVM的ServerSocket是怎么实现的》:https://www.wang1314.com/doc/topic-17594524-1.html
|
作者:沙漏哟 出处:计算机的未来在于连接 本文版权归作者和博客园共有,欢迎转载,请留下原文链接 微信随缘扩列,聊创业聊产品,偶尔搞搞技术 |