开发&语言 - Java NIO 12
作者 王新栋  发布于 2017年11月07日  阅读 1995
一、I/O复用模型解读Tomcat的NIO是基于I/O复用来实现的。对这点一定要清楚,不然我们的讨论就不在一个逻辑线上。下面这张图学习过I/O模型知识的一般都见过,出自《UNIX网络编程》,I/O模型一共有阻塞式I/O,非阻塞式I/O,I/O复用(select/poll/epoll),信号驱动式I/O和异步I/O。这篇文章讲的是I/O复用。这里先来说下用户态和内核态,直白来讲,如果线程执行的是用户...
作者 郑杭进  发布于 2017年09月26日  阅读 3915
引言:众所周知,Nginx 服务器是一个高性能的 Web 和反向代理服务器。Nginx 在激烈的 Web 服务器竞争中依旧保持良好的发展势头,一度成为 Web 服务器市场的后期之秀,这一切跟 Nginx 的架构设计是分不开的。一. Nginx 模块化设计高度模块化的设计是 Nginx 的架构基础。Nginx 服务器被分解为多个模块,每个模块就是一个功能模块,只负责自身的功能,模块之间严格遵循“高内...
作者 张松然  发布于 2016年12月07日  阅读 9033
Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Ne...
文章 发布于 2016年10月06日  阅读 555
本章包含ChannelHandler和ChannelPipeline APIs检测资源泄露异常处理在前一章,你学习了Netty的数据容器ByteBuf。在这一章我们会在你已经学过的知识的基础上探讨Netty的数据流和处理模块。你会开始看到这个框架的一些重要元素被组合到一起了。你已经了解到,ChannelHandler在一个ChannelPipeline中被链在一起,将所有的处理逻辑组织起来。我们会...
文章 发布于 2016年10月05日  阅读 396
本章包含线程模型概览Event Loop的概念和实现Task调度实现详解简单来说,线程模型定义了操作系统,编程语言,框架或者应用程序线程管理的关键部分。线程是如何,并且何时被创建,显然对代码的执行有很大的影响。因此,开发者需要理解不同线程模型中存在的权衡利弊。无论他们是直接为自己选择模型,还是通过用一种语言或者框架隐性地来选择模型,这一点都是毋庸置疑的。在这一章我们会详细探讨Netty的线程模型。...
文章 发布于 2016年10月03日  阅读 372
本章包含OIO—阻塞传输NIO—异步传输本地传输—JVM内部的异步通信嵌入式传输—测试你的ChannelHandler经过一个网络的数据通常是同一种类型:字节。这些数据是如何移动的基本上取决于被我们称之为网络传输的概念,这个概念帮我们抽象了底层的数据传输机制。用户不关心细节,他们只关心他们的字节数据被可靠地传送和接收。如果你有Java网络编程的经验,你也许会在某个时刻发现,你需要支持比预料还要多的...
文章 发布于 2016年10月02日  阅读 1122
无处不在的C/S架构在这个充斥着云的时代,我们使用的软件可以说99%都是C/S架构的你发邮件用的Outlook,Foxmail等你看视频用的优酷,土豆等你写文档用的Office365,googleDoc,Evernote等你浏览网页用的IE,Chrome等(B/S是特殊的C/S)......C/S架构的软件带来的一个明显的好处就是:只要有网络,你可以在任何地方干同一件事。例如:你在家里使用Offi...
文章 发布于 2016年09月25日  阅读 952
理解零拷贝零拷贝是Netty的重要特性之一,而究竟什么是零拷贝呢? WIKI中对其有如下定义:"Zero-copy" describes computer operations in which the CPU does not perform the task of copying data from one memory area to another.从WIKI的定义中,我们看到“零拷贝”是...
文章 发布于 2016年09月25日  阅读 1156
Java 内存模型堆外内存 / 直接内存(Direct Memory)JDK1.4 中引入的NIO类,基于 channel 和 Buffer 的 I/O 方式,可用 Native 库直接分配堆外内存,然后利用一个存储在堆中的 DirectByteBuffer 对象作为这块内存引用来操作。避免了在 Java 堆 和Native 堆中来回复制数据。直接内存并不是虚拟机运行时数据区的一部分也不是 Jav...
文章 发布于 2015年09月01日  阅读 474
与 Socket & ServerSocket 对应,Java NIO 提供了 ServerSocketChannel & SocketChannel 对应。SocketChannel & ServerSocketChannelJava NIO 中的 SocketChannel 是一个连接 TCP 网络套接字的通道,ServerSocketChannel 是一个TCP 管道的监听器。SocketC...
共12条记录 共2页 上一页 首页 1