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

高性能、异步事件驱动的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面试题及答案》的朋友,帮忙点赞+转发,后台回复即可免费获取~


以上是关于4.socket框架netty的使用,以及nio的实现原理,为啥是异步非阻塞的主要内容,如果未能解决你的问题,请参考以下文章

高并发架构系列:Netty的实现原理特点与优势以及适用场景

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

Netty精粹之JAVA NIO开发需要知道的

Java网络编程和NIO详解9:基于NIO的网络编程框架Netty

netty学习总结

Java分布式框架netty之NIO框架区别分析