一起来读Netty In Action(一)】的更多相关文章

Netty是一款异步事件驱动的网络应用程序框架,支持快速的开发可维护的高性能的面向协议的服务器和客户端.在网络编程中,阻塞.非阻塞.同步.异步经常被提到.同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别? 常见的I/O模型有如下几种: 我们举一个场景来说明上面各是什么意思: 周末我和宝宝逛街,中午饿了,我们准备去吃饭.周末人多,吃饭需要排队,我和宝宝有以下几种方案: (1…
当我们的应用程序需要接受比预期多很多的并发连接的时候,我们需要从阻塞传输切换到非阻塞传输上去,如果是我们的网络编程是基于jdk提供的API进行开发地的话,这种传输模式的切换几乎要我们重构整个网络传输相关的代码,然而,Netty为它所有的传输实现了一个通用的API,这使得我们能更加简单的从阻塞传输切换到非阻塞传输的编程方式上去. 1.传输迁移 首先,我们来看一下一个使用netty去实现阻塞传输的例子,这个应用程序简单的接受连接,向客户端写hi,然后再关闭连接.代码如下: public class…
在上一篇博客中,我们给出了java高性能网络编程的技术基础,也简单的介绍了netty的核心构件,在这一篇博客中,我们将更加详细的研究netty的各个组件,并且密切关注它们是如何通过协作来支撑这些体系结构上的最佳实践的. 首先,我们会对Channel,EventLoop和ChannelFuture类进行讨论,这些类结合在一起,可以被认为是netty网络抽象的代表: (1)Channel - Socket 表示基本的I/O操作,在基于java的网络编程中,基本构造是class socket.nett…
本章介绍 ByteBuf ByteBufHolder ByteBufAllocator 使用这些接口分配缓冲和运行操作 每当你须要数据传输时,它必须包括一个缓冲区.Java NIO API自带的缓冲区类是相当有限的,没有经过优化,使用JDK的ByteBuffer操作更复杂.缓冲区是一个重要的组建,它是API的一部分. Netty提供了一个强大的缓冲区实现用于表示一个字节序列,并帮助你操作原始字节或自己定义的POJO.Netty的ByteBuf相当于JDK的ByteBuffer,ByteBuf的作…
声明:这篇文章是记录读书过程中的知识点,并加以归纳总结,成文.文中图片.代码出自<Netty in action>. 1. 为什么用Netty? 每个框架的流行,都一定有它出众的地方.Netty就是为了网络编程使用,它封装了大量的通讯的底层内容,简化开发者的工作量,让开发者的精力全都放于业务上,而且它能高效的处理网络通讯的东西.很多大的公司都使用Netty作为通讯框架,因此,使这个框架更加完善. 2. OIO(阻塞I/O)与NIO(非阻塞I/O)与AIO(异步I/O) 2.1 阻塞I/O 为什…
http://blog.csdn.net/abc_key/article/details/38041143 本章介绍 Codec,编解码器 Decoder,解码器 Encoder,编码器 Netty提供了编解码器框架,使得编写自己定义的编解码器非常easy,而且也非常easy重用和封装. 本章讨论Netty的编解码器框架以及使用. 7.1 编解码器Codec         编写一个网络应用程序须要实现某种编解码器.编解码器的作用就是讲原始字节数据与自己定义的消息对象进行互转.网络中都是以字节码…
目录 前言 1. Java 网络编程 1.1 Javs NIO 基本介绍 1.2 缓冲区 Buffer 1.2 通道 Channel 1.3 选择器 Selector 1.4 NIO 非阻塞网络编程原理分析 2. 线程模型概述 2.1 传统阻塞 IO 服务模型 2.2 Reactor 模式 2.3 单 Reactor 单线程模式 2.4 单 Reactor 多线程模式 2.5 主从 Reactor 多线程模式 2.6 Netty 模型 最后 前言 参考资料: <Netty In Action>…
最近准备开始阅读一下<Netty in action>并且准备构架设计一个分布式系统.用于新项目. 貌似压力很大啊.压力就是东西.希望自己能够调节好. Netty in action是Netty现在的主要开发者写的一本讲述Netty的书籍.主要内容是基于4.x版本的.当前已经是第五版了. 书籍主要是讲述Java中的NIO和Netty的设计是如何而来的.作者出自自己的开发经历,来编写了这本书.我感觉蛮有用处的. 不愿意花钱的盆友.可以去百度一下pdf电子版的.电子版的版面显示错误.总章节是10个…
本章介绍 获得Netty4最新的版本号 设置执行环境,以构建和执行netty程序 创建一个基于Netty的server和client 拦截和处理异常 编制和执行Nettyserver和client 本章将简介Netty的核心概念,这个狠心概念就是学习Netty是怎样拦截和处理异常.对于刚開始学习netty的读者.利用netty的异常拦截机制来调试程序问题非常有帮助.本章还会介绍其它一些核心概念.如server和client的启动以及分离通道的处理程序.本章学习一些基础以便后面章节的深入学习. 本…
本章介绍 Netty介绍 为什么要使用non-blocking IO(NIO) 堵塞IO(blocking IO)和非堵塞IO(non-blocking IO)对照 Java NIO的问题和在Netty中的解决方式 Netty是基于Java NIO的网络应用框架,假设你是Java网络方面的新手,那么本章将是你学习Java网络应用的開始:对于有经验的开发人员来说,学习本章内容也是非常好的复习.假设你熟悉NIO和NIO2,你能够随时跳过本章直接从第二章開始学习.在你的机器上执行第二章编写的Netty…