vlambda博客
学习文章列表

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

写在前面

Netty是高性能Java NIO网络框架,在很多开源系统里都有它的身影,而在绝大多数互联网公司所实施的服务化,以及最近流行的MicroService中,她都作为基础中的基础出现。

Netty的出现让我们可以简单容易地就可以使用NIO带来的高性能网络编程的潜力。她用一种统一的流水线方式组织我们的业务代码,将底层网络繁杂的细节隐藏起来,让我们只需要关注业务代码即可。并且用这种机制将不同的业务划分到不同的handler里,比如将编码,连接管理,业务逻辑处理进行分开。Netty也力所能及的屏蔽了一些NIO bug,比如著名的epoll cpu 100% bug。而且,还提供了很多优化支持,比如使用buffer来提高网络吞吐量

但是,和所有的框架一样,框架为我们屏蔽了底层细节,让我们可以很快上手。但是,并不表示我们不需要对框架所屏蔽的那一层进行了解。本文所涉及的几个地方就是Netty与底层网络结合的几个地方,看看我们使用的时候应该怎么处理,以及为什么要这么处理。

Netty实战


第一部分 Netty的概念及体系结构

第1章Netty——异步和事件驱动

  • 1.1 Java网络编程

  • 1.2 Netty简介

  • 1.3 Netty的核心组件

  • 1.4小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第2章你的第一款Netty应用程序

  • 2.1设置开发环境

  • 2.2 Netty客户端/服务器概览

  • 2.3编写Echo服务器

  • 2.4编写Echo客户端

  • 2.5构建和运行Echo服务器和客户端

  • 2.6小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第3章Netty的组件和设计

  • 3.1 Channel. EventLoop和ChannelFuture

  • 3.2 ChannelHandler和ChannelPipeline

  • 3.3 引导

  • 3.4小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第4章传输

  • 4.1案例研究:传输迁移

  • 4.2传输API

  • 4.3内置的传输

  • 4.4传输的用例

  • 4.5小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第5章ByteBuf

  • 5.1 ByteBuf的API

  • 5.2 ByteBu类一 Netty的数据容器

  • 5.3字节级操作

  • 5.4 ByteBufHolder接口

  • 5.5 ByteBuf分配

  • 5.6引用计数

  • 5.7小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第6章ChannelHandler和 ChannelPipeline

  • 6.1 ChannelHandler家族

  • 6.2 ChannelPipeline接口

  • 6.3 ChannelHandlerContext接口

  • 6.4异常处理

  • 6.5小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第7章EventLoop和线程模型

  • 7.1线程模型概述

  • 7.2 EventLoop接口

  • 7.3任务调度

  • 7.4实现细节

  • 7.5小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第8章引导

  • 8.1 Bootstrap类

  • 8.2引导客户端和无连接协议

  • 8.3引导服务器

  • 8.4从Channe引导客户端

  • 8.5在引导过程中添加多个ChannelHandler

  • 8.7引导DatagramChannel

  • 8.8关闭

  • 8.9小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第9章单元测试

  • 9.1 EmbeddedChannel概述

  • 9.2使用EmbeddedChannel测试ChannelHandler

  • 9.3测试异常处理

  • 9.4小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第二部分 编解码器

第10章编解码器框架

  • 10.1什么是编解码器

  • 10.2解码器

  • 10.3编码器

  • 10.4抽象的编解码器类

  • 10.5 小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第11章预置的ChannelHandler和编解码器

  • 11.1 通过SLL/TLS保护Netty应用程序

  • 11.2构建B基于tyHTPTTPS应用程序

  • 11.3空闲的连接和超时

  • 11.4解码基于分隔符的协议和基于长度的协议

  • 11.5写大型数据

  • 11.6序列化数据

  • 11.7小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第三部分 网络协议

第12章WebSocket

  • 12.1 WebSocket简介

  • 12.2我们的WebSocket示例应用程序

  • 12.3添加WebSocket支持

  • 12.4测试该应用程序

  • 12.5小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第13章使用UDP广播事件

  • 13.1 UDP的基础知识

  • 13.2 UDP广播

  • 13.3 UDP示例应用程序

  • 13.4消息POJO: LogEvent

  • 13.5 编写广播者

  • 13.6编写监视器

  • 13.7运行LogEventBroadcaster和LogEventMonitor

  • 13.8 小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第四部分 案例研究

第14章案例研究,第一部分

  • 14.1 Droplr——构建移动服务

  • 14.2 Firebase——实时的数据同步服务

  • 14.3 Urban Airship——构建移动服务

  • 14.4小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

第15章案例研究,第二部分

  • 15.1 Netty在Facebook的使用:Nifty和SwiftOF

  • 15.2 Netty在Twitter的使用:Finagle

  • 15.3 小结

高性能、异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty

Netty是Java开发中必不可少的一部分,当然除了实战还会有一份英雄传说多人在线网游服务器的白皮书,结合起来可以更好的理解,由于篇幅限制,LZ就将主要内容截图出来了,需要完整内容的朋友,帮忙关注+点赞此文章,后台回复即可免费获取~

英雄传说游戏项目白皮书


Netty面试专题及答案

由于篇幅限制,LZ就将主要内容截图出来了,需要领取《Netty实战》+《英雄传说项目白皮书》+《Netty面试题及答案》的朋友,帮忙点赞+转发,后台回复即可免费获取~