分布式项目实战(实战高性能分布式RPC)(1)

前言:这里整合了三套精品的Netty课程,已经涵盖了该技术的方方面面,看完其他netty资料不用再看。

系列一:《2018最新netty深入解析Java读源码》

第1章 课程介绍

介绍本课程需要的前提知识和内容概要

1-1 Netty深入剖析

第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的创建

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 新连接检测

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 总结

分布式项目实战(实战高性能分布式RPC)(2)

第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 课程回顾和总结

系列二:《精通并发与Netty编程思维》

第1讲:学习的要义

第2讲:Netty宏观理解

第3讲:Netty课程大纲深度解读

第4讲:项目环境搭建与Gradle配置

第5讲:Netty执行流程分析与重要组件介绍

第6讲:Netty回调与Channel执行流程分析

第7讲:Netty的Socket编程详解

第8讲:Netty多客户端连接与通信

第9讲:Netty读写检测机制与长连接要素

第10讲:Netty对WebSocket的支援

第11讲:Netty实现服务器端与客户端的长连接通信

第12讲:Google Protobuf详解

第13讲:定义Protobuf文件及消息详解

第14讲:Protobuf完整实例详解

第15讲:Protobuf集成Netty与多协议消息传递

第16讲:Protobuf多协议消息支援与工程最佳实践

第17讲:Protobuf使用最佳实践与Apache Thrift介绍

第18讲:Apache Thrift应用详解与实例剖析

第19讲:Apache Thrift原理与架构解析

第20讲:通过Apache Thrift实现Java与Python的RPC调用

第21讲:gRPC深入详解

第22讲:gRPC实践

第23讲:Gradle Wrapper在Gradle项目构建中的最佳实践

第24讲:gRPC整合Gradle与代码生成

第25讲:gRPC通信示例与JVM回调钩子

第26讲:gRPC服务器流式调用实现

第27讲:gRPC双向流式数据通信详解

第28讲:gRPC与Gradle流畅整合及问题解决的完整过程与思考

第29讲:Gradle插件问题解决方案与Nodejs环境搭建

第30讲:通过gRPC实现Java与Nodejs异构平台的RPC调用

第31讲:gRPC在Nodejs领域中的静态代码生成及与Java之间的RPC调用

第32讲:IO体系架构系统回顾与装饰模式的具体应用

第33讲:Java NIO深入详解与体系分析

第34讲:Buffer中各重要状态属性的含义与关系图解

第35讲:Java NIO核心类源码解读与分析

第36讲:文件通道用法详解

第37讲:Buffer深入详解

第38讲:NIO堆外内存与零拷贝深入讲解

第39讲:NIO中Scattering与Gathering深度解析

第40讲:Selector源码深入分析

第41讲:NIO网络访问模式分析

第42讲:NIO网络编程实例剖析

第43讲:NIO网络编程深度解析

第44讲:NIO网络客户端编写详解

第45讲:深入探索Java字符集编解码

第46讲:字符集编解码全方位解析

第47讲:Netty服务器与客户端编码模式回顾及源码分析准备

第48讲:Netty与NIO系统总结及NIO与Netty之间的关联关系分析

第49讲:零拷贝深入剖析及用户空间与内核空间切换方式

第50讲:零拷贝实例深度剖析

第51讲:NIO零拷贝彻底分析与Gather操作在零拷贝中的作用详解

第52讲:NioEventLoopGroup源码分析与线程数设定

第53讲:Netty对Executor的实现机制源码分析

第54讲:Netty服务端初始化过程与反射在其中的应用分析

第55讲:Netty提供的Future与ChannelFuture优势分析与源码讲解

第56讲:Netty服务器地址绑定底层源码分析

第57讲:Reactor模式透彻理解及其在Netty中的应用

第58讲:Reactor模式与Netty之间的关系详解

第59讲:Acceptor与Dispatcher角色分析

第60讲:Netty的自适应缓冲区分配策略与堆外内存创建方式

第61讲:Reactor模式5大角色彻底分析

第62讲:Reactor模式组件调用关系全景分析

第63讲:Reactor模式与Netty组件对比及Acceptor组件的作用分析

第64讲:Channel与ChannelPipeline关联关系及模式运用

第65讲:ChannelPipeline创建时机与高级拦截过滤器模式的运用

第66讲:Netty常量池实现及ChannelOption与Attribute作用分析

第67讲:Channel与ChannelHandler及ChannelHandlerContext之间的关系分析

第68讲:Netty核心四大组件关系与构建方式深度解读

第69讲:Netty初始化流程总结及Channel与ChannelHandlerContext作用域分析

第70讲:Channel注册流程深度解读

第71讲:Channel选择器工厂与轮询算法及注册底层实现

第72讲:Netty线程模型深度解读与架构设计原则

第73讲:Netty底层架构系统总结与应用实践

第74讲:Netty对于异步读写操作的架构思想与观察者模式的重要应用

第75讲:适配器模式与模板方法模式在入站处理器中的应用

第76讲:Netty项目开发过程中常见且重要事项分析

第77讲:Java NIO Buffer总结回顾与难点拓展

第78讲:Netty数据容器ByteBuf底层数据结构深度剖析

第79讲:Netty的ByteBuf底层实现大揭秘

第80讲:Netty复合缓冲区详解与3种缓冲区适用场景分析

第81讲:Netty引用计数的实现机制与自旋锁的使用技巧

第82讲:Netty引用计数原子更新揭秘与AtomicIntegerFieldUpdater深度剖析

第83讲:AtomicIntegerFieldUpdater实例演练与volatile关键字分析

第84讲:Netty引用计数注意事项与内存泄露检测方式

第85讲:Netty编解码器剖析与入站出站处理器详解

第86讲:Netty自定义编解码器与TCP粘包拆包问题

第87讲:Netty编解码器执行流程深入分析

第88讲:ReplayingDecoder源码分析与特性解读

第89讲:Netty常见且重要编解码器详解

第90讲:TCP粘包与拆包实例演示及分析

第91讲:Netty自定义协议与TCP粘包拆包问题解决之道

第92讲:精通并发与Netty课程总结与展望

系列三:《2018年Netty实战高性能分布式RPC》

一、课程用到的软件

netty4.1.6.Final

Spring Tool Suite 3.8.2.RELEASE

Maven3.1

Spring4

zookeeper3.4.6

JDK1.8.0_111

二、课程目标

1、快速学习netty的使用

2、自己学会构建高性能服务器

3、熟练使用多线程之间交互数据

4、学会如何构建分布式系统

5、构建比dubbo更轻巧的分布式rpc

三、适合人群

1、想学习netty在互联网公司真正的使用

2、对分布式系统的底层构建很感兴趣

3、想自己学会编写比tomcat,jetty性能好几倍的服务器

课程目录:

课时1:Netty实现高性能分布式RPC架构介绍

课时2:分布式rpc架构的整个架构图

课时3:采用netty编写java服务器

课时4:zookeeper安装与操作

课时5:服务器注册到zookeeper上

课时6:netty客户端编写

课时7:netty长连接心跳包设置

课时8:netty客户端长连接异步获取响应

课时9:netty长连接异步得到响应结果

课时10:与最新版spring整合

课时11:服务器架构实现

课时12:客户端与服务器架构通信

课时13、优化服务器

课时14、客户端新增动态代理

课时15、优化netty客户端

课时16、Netty客户端加上ZK,监听服务器变化

课时17、Netty客户端动态管理连接

课时18、演示分布式RPC连接管理以及实现服务器加权管理

课时19、课程总结以及下期预告(需要资料的程序员们可直接点击加群获取)

分布式项目实战(实战高性能分布式RPC)(3)

,