netty
方_小_白
求其上者得其中;求其中者得其下;求其下者无所得。越努力,越幸运。
展开
-
netty实战笔记
《 Netty in action 》netty实战笔记目录第一章 netty – 异步和事件驱动第二章 第一个Netty程序第三章 Netty的组件和设计原创 2018-12-04 21:58:47 · 1161 阅读 · 0 评论 -
netty实战笔记 第八章 引导
8.1 bootstrap类先看下引导类的层次结构服务器端使用一个父Channel来接受来自客户端的连接,并创建子Channel用于他们之间的通信。客户端将最可能只需要一个单独的,没有父Channel的Channel来用于所有的网络交互。为什么引导类是Cloneable的?AbstractBootStrap类的完成声明:public abstract class Abstract...原创 2018-12-16 16:57:52 · 366 阅读 · 0 评论 -
netty实战笔记 第七章 EventLoop和线程模型
7.1 线程模型概述java5 随后引入了Executor API, 其线程池通过缓存和重用Thread极大的提高了性能。基本的线程池话模型描述为:1.从池的空闲线程列表中选择一个Thread,并且指派它去运行一个已提交的任务(一个Runnable的实现)2.当任务完成的时候,将该Thread返回给该列表,使其可被重用。线程频繁的切换带来的是上下文切换的开销。随着线程数量的增多变得极其明...原创 2018-12-16 16:56:08 · 266 阅读 · 0 评论 -
netty实战笔记 第六章 ChannelHandler和ChannelPipeline
6.1 ChannelHandler家族6.1.1 Channel的生命周期Channel有四种状态.如下;状态描述channelUnregisteredchannel已经被创建,但还未注册到EventLoopChannelRegisteredChannel已经被注册到了EventLoopChannelActiveChannel处于活动状态(已经连接到它...原创 2018-12-16 16:54:58 · 451 阅读 · 0 评论 -
netty实战笔记 第五章 netty的数据容器--ByteBuf
Netty的字节容器ByteBuffer使用过于复杂,使用ByteBuf替代。5.1 ByteBuf的API详见 abstract class ByteBuf 和 interface ByteBufHolder.5.2网络通信涉及到字节序列的移动,所以高效易用的数据结构是很重要的。Netty的ByteBuf满足并超越了这些需求。5.2.1 工作原理ByteBuf维护了两个不同的索引,一...原创 2018-12-09 17:55:50 · 278 阅读 · 0 评论 -
netty实战笔记 第三章 Netty的组件和设计
从类库的视角以及框架的视角来探讨Netty、。3.1 Netty 网络的抽象 Channel,EventLoop,ChannelFutureChannel — SocketEventLoop – 控制流,多线程处理,并发。ChannelFuture – 异步通知3.1.1 Channel接口EmbeddedChannelLocalServerChannelNioDatagra...原创 2018-12-07 21:02:43 · 220 阅读 · 0 评论 -
netty实战笔记 第四章 传输
探索Netty所提供的不同类型的传输,以及如何选择一个最适合你的应用程序的传输。本章主要内容OIO 阻塞传输NIO 异步传输Local jvm内部的通信机制Embedded 测试你的Channelhandler写一个案例:java 写一个应用程序简单地接收连接,向客户端写Hi,然后关闭连接。我们分为java的阻塞IO(OIO),NIO,netty的OIO和NIO分别来实现。j...原创 2018-12-07 21:01:35 · 245 阅读 · 0 评论 -
netty实战笔记 第二章 第一个Netty程序
2.1 编写Echo服务器所有的Netty服务器都需要一下两个部分:至少一个ChannelHandler该组件实现了服务器对客户端接收的数据的处理,即他的业务逻辑。引导这是配置服务器的启动代码. 至少,他会将服务器绑定到它要监听连接请求的端口上.2.1.1 ChannelHandler 业务处理逻辑接口ChannelInboundHandler用来响应入站事件的方法。使用的时候...原创 2018-12-04 22:01:20 · 272 阅读 · 2 评论 -
netty实战笔记 第一章 异步和事件驱动 笔记
Netty是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端。Java BIO:首先,早期我们java里面使用BIO(Block IO),编写网络通信相关的程序时候,往往都是使用Socket编程。会为每个连接创建一个线程,当连接数少的时候,还可以,但是当连接数多的时候,我们就会发现这很不理想。另外,有些线程会长时间处在休眠状态,资源浪费。需要为每个...原创 2018-12-04 22:00:37 · 249 阅读 · 0 评论 -
netty实战笔记 第九章 单元测试
9.1 EmbeddedChannel 概述netty提供了Embedded传输,用于测试ChannelHandler. 这个服传输是一种特殊的Channel实现,EmbeddedChannel的功能,这个实现提供了通过ChannelPipeline传播事件的简便方法。具体的思路是:将入站数据或者出站数据写到EmbeddedChannel中,然后检查是否有任何东西到达了ChannelPipel...原创 2018-12-16 16:58:33 · 191 阅读 · 0 评论