4.socket框架netty的使用,以及nio的实现原理,为啥是异步非阻塞
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.socket框架netty的使用,以及nio的实现原理,为啥是异步非阻塞相关的知识,希望对你有一定的参考价值。
参考技术A socket框架netty的使用,以及nio的实现原理,为什么是异步非阻塞按Alt+F可进入File菜单, 如图:
File菜单的子菜单共有9项,分别叙述如下:
1. Load:装入一个文件, 可用类似DOS的通配符(如*.C)来进行列表选择。也可装入其它扩展名的文件, 只要给出文件名(或只给路径)即可。该项的热键为F3, 即只要按F3即可进入该项, 而不需要先进入File菜单再选此项。
2. Pick:将最近装入编辑窗口的8个文件列成一个表让用户选择, 选择后将该程序装入编辑区, 并将光标置在上次修改过的地方。其热健为Alt-F3。
3. New:新建文件, 缺省文件名为NONAME.C, 存盘时可改名。
4. Save:将编辑区中的文件存盘, 若文件名是NONAME.C时, 将询问是否更改文件名, 其热键为F2。
5. Write to:可由用户给出文件名将编辑区中的文件存盘, 若该文件已存在, 则询问要不要 覆盖。
6. Directory:显示目录及目录中的文件, 并可由用户选择。
7. Change dir:显示当前默认目录, 用户可以改变默认目录。
8. Os shell:暂时退出Turbo C 2.0到DOS提示符下, 此时可以运行DOS 命令, 若想回到 Turbo C 2.0中, 只要在DOS状态下键入EXIT即可。
9. Quit:退出Turbo C 2.0, 返回到DOS操作系统中, 其热键为Alt+X。本回答被提问者采纳
高性能异步事件驱动的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面试题及答案》的朋友,帮忙点赞+转发,后台回复即可免费获取~
以上是关于4.socket框架netty的使用,以及nio的实现原理,为啥是异步非阻塞的主要内容,如果未能解决你的问题,请参考以下文章
高性能异步事件驱动的NIO框架,结合英雄传说项目深入剖析Netty