Netty开发实战

了解Netty开发框架的使用,源码设计以及各类协议(TCP、HTTP 1 ~ 3、SCTP\MQTT

4871人学习

高级87课时2023/11/08更新

二维码下载学堂APP缓存视频离线看

李兴华
    • 畅销套餐
    • 精选套餐
    • 人气套餐
    • 尊享套餐
    • 高薪套餐
Java高级工程师实战课程系列套餐(JSP实战+SSH实战+AJAX异步数据交互)
JSP实战开发视频课程
31995人学习
¥399.00
JSP项目实战-CRM管理系统视频课程
5411人学习
¥699.00
框架开发起源 —— Java反射编程视频课程
10713人学习
¥99.00
更 多 6 门 课 程
高级JAVA工程师必备视频课程套餐
RESTful(Restful设计、Jesey实现WEB服务处理)视频课程
5554人学习
¥299.00
AMR项目实战视频课程(Spring MVC + MyBatis)
7993人学习
¥599.00
MyBatis开发框架视频课程
5650人学习
¥599.00
更 多 7 门 课 程
互联网集群架构系列套餐(Redis+Dubbo+单点登录+Zookeeper协调组件)
Dubbo开发框架视频课程
18036人学习
¥998.00
Redis数据库视频课程
18288人学习
¥199.00
企业项目开发中协调一致性组件之ZooKeeper视频课程
6761人学习
¥499.00
更 多 5 门 课 程
Java高级工程师实战课程系列套餐(SSO单点登录+Shiro开发框架)
SSO单点登录(CAS+Shiro+Redis)实战视频课程
7827人学习
¥999.00
【李兴华】Shiro开发框架视频课程(采用Eclipse + Maven进行开发)
9692人学习
¥699.00
【SSM】报名预约系统实战开发视频课程
4932人学习
¥699.00
更 多 3 门 课 程
Java高级工程师实战课程系列套餐(SSO单点登录+Shiro开发框架)
SSO单点登录(CAS+Shiro+Redis)实战视频课程
7827人学习
¥999.00
【李兴华】Shiro开发框架视频课程(采用Eclipse + Maven进行开发)
9692人学习
¥699.00
【SSM】报名预约系统实战开发视频课程
4932人学习
¥699.00
更 多 3 门 课 程
  • 课程介绍
  • 课程大纲

适合人群:

适合于有Java编程开发基础的人员,并且尝试进行底层架构设计的Java系统架构师。

你将会学到:

了解Netty开发框架的使用,源码设计以及各类协议(TCP、HTTP 1 ~ 3、SCTP\MQTT

课程简介:

Java语言在其最初发展时,受到同一时代硬件技术发展的限制,并没有提供良好的IO处理方案,而为了解决这一设计缺陷,JDK 1.4后开始支持了Java NIO编程开发,虽然从技术层次上给予了强大的帮助,但是由于Reactor模型之中的各类处理限制,以及各类通信协议的开发难度较高,所以并没有过多的开发人员涉足于此,大部分的Java程序员都会使用已经成熟的中间件产品,并围绕着中间件进行编程开发,图为读者列出了NettyJava编程技术的关系,同时也阐述了其与中间件开发之间的关联。

a.png

虽然全世界互联网技术的兴起,程序人员所编写的项目,已经不再是仅仅满足基础的业务逻辑了,还应该更多的考虑到高并发的处理性能,而除了使用集群这种简单的方式之外,提升单体服务的性能就成为了行业的主流,而Java作为行业之中使用频率最为广泛的开发技术,就亟待一种更加简化的Java NIO开发模式,因此Netty诞生了。Netty诞生之后,各类的RPC开发技术也随之增加,包括国内的阿里、京东以及国外的TwitterFacebook等也都先后基于Netty进行了各自技术产品线的研发,连带着当前的技术招聘来讲,也都已经将Netty作为了Java从业者必备的核心技术。如果你现在为止还仅仅停留在数据库层次上的基础CRUD开发,就真的需要考虑升级自己的技术栈了,否则会面临离开行业的风险。

b.png

Netty技术最为成熟的一点,是在于其可以结合JavaNIO提高通讯性能,并且使用统一标准的流程来进行各类通信协议的处理,这一点如图所示,所以在本书的讲解过程中除了会涉及到TCPUDP以及HTTP等常用协议之外,还包含有RESPUDTSCTPDNSMQTT等协议的开发,而通过本书详细的讲解,读者也会慢慢的感受到Netty开发的简洁性以及其所拥有的魅力。可以这么讲,掌握了Netty框架后,基本上就已经掌握了打开各类网络通信协议的金钥匙。

当然如果你已经熟悉计算机专业的操作系统、计算机网络等课程内容,那么对于Netty的学习可谓是事倍功半,因为在全书的讲解中你会发现有很多科班专业课程的知识在里面,所以这也是我一直在不断跟很多学生强调的,永远不要忽视基础专业课程的重要性,因为这些基础专业知识是为你的发展打下了牢不可破的根基,所以我们为Java学习者规划了基本的学习路线

c.png

本系列课程的全部内容分为如下几个核心章节:

第1章:Netty与网络编程

该章作为序章,主要是大家介绍了网络应用开发之中的常见问题,由于TCP是当前应用的核心协议,所以本章也对TCP协议结构进行了分析,并为读者介绍了Netty技术架构。


第2章:Netty缓冲区

Java NIO编程中为了提高缓存的分配性能,提供了ByteBuffer设计,同时也涉及到了Unsafe的直接内存分配处理,因此在本章进行Netty讲解时,首先对ByteBuf结构进行了全面的分析,解释了Netty中两种缓存的分配机制,以及对于ThreadLocal设计问题的改进,在后续的所有开发中ByteBuf是一个核心结构,也是Netty开发的基础所在。


第3章:TCP与UDP编程

Netty开发框架遵从Reactor开发模型,因此对于线程池的控制就较为严格,在本章中重点分析了Netty的工作流程,并给出了完整的Netty处理架构,随后基于该结构分析了TCP协议开发中常见的问题(粘包与拆包、序列化传输等)。考虑到实际开发与设计的需要,为读者讲解了一个手工RPC技术的实现,该技术基于Protobuf与Spring Boot完成,同时基于Spring内置的代理模式进行了实现,之所以安排这样的案例,核心目的是为了阐述RPC框架的涉及原理。


第4章:HTTP服务开发

HTTP协议是当前系统架构中的核心协议,所以在本章中会基于JakartaEE技术标准的操作,讲解HTTP服务端的开发,同时使用了Redis完成分布式Session缓存,进一步解释了Netty开发与传统Web开发的区别。最后详细的分析了HTTP1、HTTP2以及HTTP3不同版本之间的差别与具体实现。


第5章:Netty应用编程

Netty已经足够高效了,但是高性能的追求者永远都在自我突破,于是Netty的内部提供了Affinity亲和线程支持,同时也可以基于不同的操作系统平台来选择处理通道。而对于常用的服务组件,例如Redis、Memcached、DNS等,Netty也都提供了与之匹配的编解码器,所以本章本着Netty应用为核心为读者讲解了各类协议的开发,并且分析了协议的特点,包括UDT、SCTP、WebSocket以及物联网开发中常用的MQTT协议。


使用Netty构建分布式开发架构,可以进行定制化处理,这样不仅安全性高,同时可维护性也较高,考虑本书所涉及到的协议较多,为了便于读者理解,给出了图所示的分布式开发架构,读者可以先以此为参考进行技术的学习。

d.png

常见问题:

问:Java NIO在那里?

答:我们提供了专门的Java基础课程内容,可以在课程列表中搜索到

问:如何获取课程源码

答:在附录之中提供了本课程的源码,可以打包下载,但是不提供课程笔记,笔记内容受到出版社版权制约,可以购买相应的实体图书。

展开更多

课程大纲-Netty开发实战

  • 第1章Netty与网络编程(55分钟4节)

  • 1-1

    网络程序开发网络程序是当今的主流开发模式,本课程总结了当前网络应用的开发模型,总结了BIO、NIO以及AIO的区别,并分析了IO多路复用模型、线程池以及零拷贝技术在高并发网络应用开发环境下的使用。

    「仅限付费用户」点击下载“Netty代码.rar”

    [10:42]
  • 1-2

    TCP协议TCP是当前主流的通讯协议,也是众多网络协议开发与设计的基础,本课程为读者详细分析了TCP协议的连接与关闭流程,并分析了TCP报文结构的定义。

    [21:36]
  • 1-3

    Netty简介Netty框架拥有众多的支持,本课程带领读者浏览了Netty项目的官方站点以及帮助文档,同时讲解了Netty框架的组成结构以及相关支持项。

    [13:05]
  • 1-4

    构建Netty项目考虑到Netty项目中会包含有各类通讯服务的开发,本次将基于父项目与子模块的管理方式进行项目管理,本课程基于IDEA与Gradle操作实例演示了项目构建与配置。

    [09:49]
  • 第2章ByteBuf(2小时5分钟5节)

  • 2-1

    ByteBufNetty提供了自己的缓冲区操作,并且将这一操作封装在了ByteBuf类中,本课程为读者分析了ByteBuf类中的主要方法,同时讲解了其与JavaNIO中的ByteBuffer之间的操作关联,并通过具体的代码分析了ByteBuf结构中内置指针的使用。

    [36:00]
  • 2-2

    Netty整合NIO缓冲区操作Netty与JavaNIO紧密且不可分割,所以Netty缓冲区提供了JavaNIO的结构支持,本课程为读者分析了相关方法的定义,并实现了不同类型缓冲区之间的数据读写。

    [15:44]
  • 2-3

    ByteBufUtilByteBufUtil是一个常用的缓冲区数据处理类,本课程通过该类的定义结构对该类的使用进行说明,并讲解了十六进制传输的意义以及直接缓冲区的开辟与读写。

    [22:28]
  • 2-4

    PlatformDependentPlatformDependent是一个简化JVM信息处理操作的工具类,也是理解Netty内部处理机制的核心类,本课程为读者分析了该类的组成结构,并实现了直接内存数据读写。

    [32:42]
  • 2-5

    FastThreadLocalFastThreadLocal是Netty提供的一个高性能的数据存储工具类,本课程基于源代码的方式,为读者分析了该类与ThreadLocal的实现区别与结构关联。

    [18:39]
  • 第3章ByteBufAllocator(56分钟4节)

  • 3-1

    ByteBufAllocator为了提高缓冲区的处理性能,Netty提供了缓冲区的分配管理器的支持,本课程为读者分析了ByteBufAllocator接口的实例化以及继承结构,并通过JVM参数实现了池化管理与非池化管理的切换以及复合缓冲区数据读取操作的实现。

    [13:14]
  • 3-2

    UnpooledByteBufAllocator非池化的缓冲区管理是一种简洁管理模式,本课程通过UnpooledByteBufAllocator源代码结构为读者分析了相关内部类的继承结构以及内存分配的具体实现。

    [19:39]
  • 3-3

    ByteBufAllocatorMetric高并发编程中,需要创建大量的缓存空间,为了有效的监控缓存使用率,Netty框架提供了ByteBufAllocatorMetric接口,本课程为读者分析了该接口的使用结构,并基于UnpooledByteBufAllocator实现了监控实例的获取以及内存使用信息的读取。

    [14:31]
  • 3-4

    UnpooledUnpooled是Netty提供的一个非池化缓冲区工具类,本课程为读者分析了该类中的核心组成结构,并通过案例对一些常用的方法进行了分析。

    [09:00]
  • 第4章PooledByteBufAllocator(1小时15分钟3节)

  • 4-1

    PooledByteBufAllocatorPooledByteBufAllocator是Netty中较为常用的缓冲区分配器,本课程为读者分析了该类在使用结构上的核心架构,并通过缓冲区分配方法源代码结构进行了流程分析。

    [55:12]
  • 4-2

    ReferenceCounted为了便于缓冲区的重复使用,Netty提供了ReferenceCounted接口,本课程为读者分析了该接口的继承结构,并通过源代码分析了引用计数的相关实现类的作用。

    [06:01]
  • 4-3

    ResourceLeakDetectorNetty中为了便于内存泄漏的检测,提供了ResourceLeakDetector接口,本课程为读者讲解了Netty中内存监控的四个级别,并且基于自定义的类结构的形式,为读者分析了ResourceLeakDetector与ResourceLeakTracker追踪结构的使用。

    [13:50]
  • 第5章Netty线程模型(1小时26分钟4节)

  • 5-1

    Netty线程模型JavaNIO提供了Reactor网络模型,同时结合多线程的处理机制可以极大的提升网络应用的并发性能,本课程为读者分析了Netty框架支持的三种网络模型的工作原理。

    [12:14]
  • 5-2

    EventLoopNetty的核心实现中需要提供事件轮询的支持,为了便于Selector结构的包装,提供了专属的EventLoop结构,本课程为读者分析了该结构的主要作用,并通过源代码解读的方式解释了其与JavaNIO设计之间的关联。

    [27:42]
  • 5-3

    Mpsc队列NioEventLoop中采用了任务队列的方式实现请求的排列,并基于线程安全的设计需要整合了Mpsc队列结构,本课程为读者讲解了相关队列作用以及Mpsc基本原理。

    [34:17]
  • 5-4

    EventLoopGroup为便于EventLoop线程的管理,Netty又提供了EventLoopGroup线程池结构,本课程为读者分析了J.U.C线程池与Netty线程池的实现关联,并基于Runnable接口实现了线程池执行的调度处理。

    [12:24]
展开更多
在线
客服
APP
下载

下载Android客户端

下载iphone 客户端

官方
微信

关注官方微信

返回
顶部