价格: 30 学币

分类: Java

发布时间: 2020-10-23 09:12:16

最近更新: 2020-10-23 09:12:16

资源类型: VIP

优惠: 开通VIP/SVIP免费获取此资源

开通VIP享受更多优惠 网盘下载地址

 

Java读源码之Netty深入剖析

课程介绍

Java读源码之Netty深入剖析 解析netty各大组件细节/百万级性能调优/设计模式实际运用 Netty的横空出世让Java开发者眼前一亮,数据流处理、应用程序开启、处理协议编码等工作因为Netty都变得更加简单,也正因如此,掌握Netty也成为了抢手Java开发的必备素质。本次课程从Socket例子入手,一步步深入探究Netty源码,剖析代码背后的原理,解决面试中遇到的Netty问题,彻底掌握Netty。

深度解析Netty源码 让你怎么面试都不怕

想要高薪职位,首先你要深入理解框架源码

=====

1 服务的socket在哪里初始化?在哪里accept连接?

理顺服务端启动流程

ServerBootstrap外观,NioServerSocketChannel创建,初始化,注册selector,绑定端口,接受新连接

2 默认情况下,Netty服务端启动多少线程?何时启动?Netty如何解决JDK空轮询bug?Netty如何保证异步串行无锁化?

吃透高并发线程模型

深入理解Netty无锁化串行设计,精心设计的reactor线程模型将榨干你的cpu,打满你的网卡,让你的应用程序性能爆表

3 Netty在哪里检测有新连接接入的?新连接是怎样注册到NioEventLoop线程的?

通晓新连接接入流程

boos reactor线程,监测新连接,创建NioSocketChannel,IO线程分配,selector注册事件

4 Netty是如何判断ChannelHandler类型的?对于ChannelHandler的添加应遵循什么顺序?用户手动触发事件传播,不同触发方式的区别?

明晰事件传播机制脉络

大动脉pipeline,处理器channelHandler,inbound、outbound事件传播,异常传播

5 Netty内存类别有哪些?如何减少多线程内存分配之间的竞争?不同大小的内存是如何进行分配的?

攻破内存分配机制

ByteBufAllocator分类,ByteBuf分类,堆内堆外,池化非池化,Unsafe非Unsafe,area、chunk、page、subpage,内存分级,内存缓存片段等概念一网打尽

6 解码器抽象的解码过程是什么样的?Netty里面有哪些拆箱即用的解码器?如何把对象变成字节流,最终写到Socket底层?

掌握编解码原理

编解码顶层抽象,定长解码器,行解码器,分隔符解码器,基于长度域解码器全面分析,编码抽象,writeAndFlush深入分析

读完源码,也许你也能像老师一样,给框架作者提Issue,并被采纳

只要你有Netty的使用经验,就能入手跟着读源码

从未读过任何框架源码也不慌,勇敢迈出第一步,老师带你一起飞

=====

类比Socket通信流程,降低学习难度,搞清Netty源码

想写出好代码先看好代码怎么写

深入分析Netty设计模式使用带你迅速提高编码技能让代码变得优雅、可靠、高质量

真实百万级调优策略,带你玩转性能调优

单机百万连接调试,应用级调优演示

晓悟通用性能工具类

FastThreadLocal,比jdk的ThreadLocal更快轻量级对象池Recycler,对象复用,减少gc

高并发长连生产环境调优技能

从系统层面和应用层面通过多种手段来提高单机连接数,提升应用程序性能

学员专享增值服务

问答专区

关于课程的问题都可在问答区随时提问,讲

师会进行集中答疑

源码开放

课程案例代码完全开放给你,你可以根据

所学知识自行修改、优化

适合人群

有Netty编程经验,想了解Netty底层实现的小伙伴,IDE不熟悉的小伙伴可以学习老师的《IntelliJ IDEA神器使用技巧》课程

 

课程目录

  • 第1章 课程介绍
  • 1-1 Netty深入剖析试看<input type="hidden" value="15013">

  • 第2章 Netty基本组件

使用一个简单的socket例子概括Netty里面的基本组件,包括NioEventLoop,Channel,ByteBuf,Pipeline,ChannelHandler

  • 2-1 一个简单的socket例子
  • 2-2 Netty对于socket的抽象
  • 2-3 Netty组件简单介绍
  • 第3章 Netty服务端启动

分析服务端启动流程,包括服务端Channel的创建,初始化,以及注册到selector

  • 3-1 服务端启动demo
  • 3-2 服务端Channel的创建试看<input type="hidden" value="14880">
  • 3-3 服务端Channel的初始化
  • 3-4 注册selector
  • 3-5 服务端口的绑定
  • 3-6 服务端启动总结
  • 第4章 NioEventLoop

分析Netty reactor线程处理过程,包括事件监听,事件处理,常规任务处理和定时任务处理

  • 4-1 NioEventLoop概述
  • 4-2 NioEventLoop创建概述
  • 4-3 ThreadPerTaskThread
  • 4-4 创建NioEventLoop线程
  • 4-5 创建线程选择器
  • 4-6 NioEventLoop的启动
  • 4-7 NioEventLoop执行概述
  • 4-8 检测IO事件
  • 4-9 处理IO事件
  • 4-10 -reactor线程任务的执行
  • 4-11 -NioEventLoop总结
  • 第5章 新连接接入

分析新连接接入以及绑定reactor线程,绑定到selector的过程

  • 5-1 新连接接入概述
  • 5-2 新连接检测试看<input type="hidden" value="14908">
  • 5-3 NioSocketChannel的创建
  • 5-4 Channel的分类
  • 5-5 新连接NioEventLoop的分配和selector注册
  • 5-6 NioSocketChannel读事件的注册
  • 5-7 新连接接入总结
  • 第6章 pipeline

分析pipeline的创建,初始化,添加和删除ChannelHandler,事件传播机制,异常传播机制

  • 6-1 pipeline概述
  • 6-2 pipeline初始化
  • 6-3 添加ChannelHandler
  • 6-4 删除ChannelHandler
  • 6-5 inBound事件的传播
  • 6-6 outBound事件的传播
  • 6-7 异常的传播
  • 6-8 pipeline总结.mp4
  • 第7章 ByteBuf

详细分析ByteBuf种类,如何减少多线程内存分配竞争,不同大小内存是如何分配的

  • 7-1 内存分配概述
  • 7-2 ByteBuf结构以及重要api
  • 7-3 ByteBuf分类
  • 7-4 内存分配器ByteBufAllocator分析
  • 7-5 UnPooledByteBufAllocator分析
  • 7-6 PooledByteBufAllocator概述
  • 7-7 directArena分配direct内存的流程
  • 7-8 内存规格的介绍
  • 7-9 缓存数据结构
  • 7-10 命中缓存的分配流程
  • 7-11 arena、chunk、page、subpage概念
  • 7-12 page 级别内存分配
  • 7-13 subpage 级别的内存分配
  • 7-14 ByteBuf的回收
  • 7-15 总结
  • 第8章 Netty解码

详细分析Netty解码原理,解码器抽象,以及几种常见的解码器

  • 8-1 Netty解码概述
  • 8-2 抽象解码器ByteToMessageDecoder
  • 8-3 基于固定长度解码器分析
  • 8-4 行解码器分析
  • 8-5 基于分隔符解码器分析
  • 8-6 基于长度域解码器参数分析
  • 8-7 基于长度域解码器分析
  • 8-8 解码器总结
  • 第9章 Netty编码及writeAndFlush()

writeAndFlush传播流程,编码器抽象,writeAndFlush详细流程

  • 9-1 Netty编码概述
  • 9-2 writeAndFlush()抽象步骤
  • 9-3 抽象编码器MessageToByteEncoder
  • 9-4 写buffer队列
  • 9-5 刷新buffer队列
  • 9-6 总结
  • 第10章 Netty性能优化工具类解析

详细分析Netty里面最高频使用的两个性能优化类FastThreadLocal以及轻量级对象池Recycler

  • 10-1 性能优化工具类概述
  • 10-2 FastThreadLocal的使用
  • 10-3 FastThreadLocal的创建和get()实现
  • 10-4 FastThreadLocal的set实现
  • 10-5 Recycler的使用
  • 10-6 Recycler的创建
  • 10-7 从Recycler中获取对象
  • 10-8 同线程回收对象
  • 10-9 异线程回收对象
  • 10-10 异线程收割对象
  • 10-11 性能优化工具类总结
  • 第11章 Netty设计模式应用

分析各类常见设计模式以及在Netty中的应用

  • 11-1 单例模式在Netty里面的应用
  • 11-2 策略模式在Netty里面的应用
  • 11-3 装饰者模式在Netty里面的应用
  • 11-4 观察者模式在Netty里面的应用
  • 11-5 迭代器模式在Netty里面的应用
  • 11-6 责任链模式在Netty里面的应用
  • 第12章 Netty高性能并发调优

系统层面单机如何支持百万连接,如何提升应用层面性能

  • 12-1 性能调优概述
  • 12-2 单机百万连接模拟与瓶颈
  • 12-3 单机百万连接调优过程
  • 12-4 Netty应用级别性能瓶颈
  • 12-5 Netty应用级别性能调优过程
  • 第13章 课程总结

对本课程做一个回顾总结

  • 13-1 课程回顾和总结