高性能异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty
Posted 小迁不秃头
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高性能异步事件驱动的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小结
第2章你的第一款Netty应用程序
2.1设置开发环境
2.2 Netty客户端/服务器概览
2.3编写Echo服务器
2.4编写Echo客户端
2.5构建和运行Echo服务器和客户端
2.6小结
第3章Netty的组件和设计
3.1 Channel. EventLoop和ChannelFuture
3.2 ChannelHandler和ChannelPipeline
3.3 引导
3.4小结
第4章传输
4.1案例研究:传输迁移
4.2传输API
4.3内置的传输
4.4传输的用例
4.5小结
第5章ByteBuf
5.1 ByteBuf的API
5.2 ByteBu类一 Netty的数据容器
5.3字节级操作
5.4 ByteBufHolder接口
5.5 ByteBuf分配
5.6引用计数
5.7小结
第6章ChannelHandler和 ChannelPipeline
6.1 ChannelHandler家族
6.2 ChannelPipeline接口
6.3 ChannelHandlerContext接口
6.4异常处理
6.5小结
第7章EventLoop和线程模型
7.1线程模型概述
7.2 EventLoop接口
7.3任务调度
7.4实现细节
7.5小结
第8章引导
8.1 Bootstrap类
8.2引导客户端和无连接协议
8.3引导服务器
8.4从Channe引导客户端
8.5在引导过程中添加多个ChannelHandler
8.7引导DatagramChannel
8.8关闭
8.9小结
第9章单元测试
9.1 EmbeddedChannel概述
9.2使用EmbeddedChannel测试ChannelHandler
9.3测试异常处理
9.4小结
第二部分 编解码器
第10章编解码器框架
10.1什么是编解码器
10.2解码器
10.3编码器
10.4抽象的编解码器类
10.5 小结
第11章预置的ChannelHandler和编解码器
11.1 通过SLL/TLS保护Netty应用程序
11.2构建B基于tyHTPTTPS应用程序
11.3空闲的连接和超时
11.4解码基于分隔符的协议和基于长度的协议
11.5写大型数据
11.6序列化数据
11.7小结
第三部分 网络协议
第12章WebSocket
12.1 WebSocket简介
12.2我们的WebSocket示例应用程序
12.3添加WebSocket支持
12.4测试该应用程序
12.5小结
第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 小结
第四部分 案例研究
第14章案例研究,第一部分
14.1 Droplr——构建移动服务
14.2 Firebase——实时的数据同步服务
14.3 Urban Airship——构建移动服务
14.4小结
第15章案例研究,第二部分
15.1 Netty在Facebook的使用:Nifty和SwiftOF
15.2 Netty在Twitter的使用:Finagle
15.3 小结
Netty是Java开发中必不可少的一部分,当然除了实战还会有一份英雄传说多人在线网游服务器的白皮书,结合起来可以更好的理解,由于篇幅限制,LZ就将主要内容截图出来了,需要完整内容的朋友,帮忙关注+点赞此文章,后台回复即可免费获取~
英雄传说游戏项目白皮书
Netty面试专题及答案
由于篇幅限制,LZ就将主要内容截图出来了,需要领取《Netty实战》+《英雄传说项目白皮书》+《Netty面试题及答案》的朋友,帮忙点赞+转发,后台回复即可免费获取~
以上是关于高性能异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty的主要内容,如果未能解决你的问题,请参考以下文章