最新文章列表

Netty4源码分析- read

本文为原创,转载请注明出处 Netty4源码分析- read    当selector检测到OP_READ事件时,触发read操作: //NioEventLoop if ((readyOps & (SelectionKey.OP_READ | SelectionKey.OP_ACCEPT)) != 0 || readyOps == 0) { u ...
海浪儿 评论(0) 有5927人浏览 2013-11-07 19:06

Netty4源码分析-flush

本文为原创,转载请注明出处                                                                                                          ...
海浪儿 评论(0) 有9541人浏览 2013-11-06 10:40

第一个netty4的例子

这个例子参与http://netty.io/wiki/user-guide-for-4.x.html文档实现,主要是服务器接收并打印命令行输入的字符,例子简单直接上代码: import io.netty.bootstrap.ServerBootstrap; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelFutur ...
bzhjian 评论(1) 有2063人浏览 2013-11-05 17:35

Netty 4 源码分析——EventExecutor

先从EventExecutor开始,因为它是一个很基础的工具类,是对I/O线程的包装。先了解下它的源码会对后面的分析有更好的理解。 先看下EventExecutor的类关系图,这里只是简单的画出了类和接口的继承和实现关系,还有其他的聚合关系没有画出来,为的是便于分析思路的清晰。 说到Executor,很容易联想到jdk中 java.util.concurrent.Executor 接口,这个 ...
berdy 评论(1) 有15851人浏览 2013-10-26 12:15

Netty 4 源码分析——结构概览

看了两天的netty源码,现在总算有了些眉目了。下面是用excel画的一个简单的结构图 Channel是对最终I/O处理的封装 EventExecutor 封装了负责处理I/O 事件的线程 ChannelHandler 处理相关I/O Event的扩展接口,分为ChannelInboundHandler和[*]ChannelOutboundHandler,分别处理不同流向的事件 Channel ...
berdy 评论(2) 有3733人浏览 2013-10-25 15:37

使用Netty传输大文件内容

最近又开始需要使用netty进行网络通信方面的编程开发了。于是遇到了一些问题通过查找好多资料记录下来。   做的内容大致是:客户端向服务端发送一条命令,服务端接收到之后,根据命令里面的一些信息去读取服务器上的一些文件并把文件内容(文件的内容类似于数据库中的一行一行的数据,是以行存储的,每个字段值以\t分割,每条数据为一行)发送给客户端处理(我这里的样例暂以获取数据之后按行保存入文件中)。 ...
irfen 评论(2) 有12120人浏览 2013-10-25 13:44

Netty+Kryo实现高性能网络通信

netty 是 开源的基于java的网络通信框架,其中java对象的传输,netty使用的是java原生的序列化/反序列化实现的,而Kryo是性能更好的java序列化框架,能否让netty和kryo结合,实现高性能的数据通信呢?下面就是如何实现。   首先,模仿Netty自带的ObjectEncoder,写一个kryo序列化的ObjectEncoder: import static org ...
dreamworker 评论(0) 有3616人浏览 2013-09-23 19:44

netty4服务端启动源码分析-线程的创建

本文为原创,转载请注明出处 netty4服务端启动源码分析-线程的创建   本文分析Netty中boss和worker的线程的创建过程: 以下代码是服务端的启动代码,线程的创建就发生在其中。 EventLoopGroup bossGroup = new NioEventLoopGroup();   NioEventLoopGroup的类关系图如下:  构造方法执行过程如下:   ...
海浪儿 评论(8) 有19499人浏览 2013-08-15 16:14

netty4源码分析-bind

本文为原创,转载请注明出处 netty4源码分析-bind  在前一篇文章中分析了监听套接字ServerSocketChannel的创建过程,本文接着分析绑定IP和端口的过程。  回到之前未分析完的doBind逻辑,前一篇文章已分析到dobind方法中initAndRegister方法,该方法最终触发了对regPromise 的listener的回调,Listener将bind任务加到bo ...
海浪儿 评论(5) 有6490人浏览 2013-08-13 19:15

netty4源码分析-socket

本文为原创,转载请注明出处 netty4源码分析-socket        服务端启动的第一步必须先创建一个监听套接字ServerSocketChannel,该过程是由ChannelFuture f = b.bind(port)中的bind触发。下面详细分析其过程:        Bind源码如下,代码位于ServerBootstrap的父类AbstractBootstrap //Ab ...
海浪儿 评论(6) 有8717人浏览 2013-08-12 15:00

Netty源码分析 之 NioServerSocketChannelFactory

NioServerSocketChannelFactory 是ChannelFactory的实现接口之一,负责创建并管理服务端Channel。 先来看下它的周边类图是怎样       下面针对核心的类做下讲解,然后就开始跟踪源码一步一步分析 NioServerSocketPipelineSink 接受和处理终端的下游ChannelEvent事件.   AbstractNio ...
xsh5324 评论(0) 有7970人浏览 2013-07-31 11:08

Netty源码分析 之 实现原理

开门见山,在此我就不介绍Netty,关于Neety的介绍、用法我在此推荐一篇文章http://www.kafka0102.com/2010/06/167.html,关于Java NIO网络编程的知识请Google。   Netty版本:3.6.6   个人觉得Netty之所以高性能主要是因为它的多路I/O复用模型和零拷贝的Buffer。 Netty中有两大核心组件ChannelFact ...
xsh5324 评论(5) 有5037人浏览 2013-07-26 17:00

Netty server端执行的各个阶段源码简单分析

简单过一下Netty3.6.6.Final源码,让自己对各个流程有个稍微清晰的理解,只是文字描述,尽量描述简单,有时间再画画图 Server启动: 1.new ServerBootstrap    ...
budairenqin 评论(2) 有3014人浏览 2013-07-01 15:16

Netty源码分析之handler decoder

ChannelHandler是处理业务逻辑的代码所在。下面首先分析下ChannelHandler的体系结构,然后重点分析几个有意思的Handler:IdleStateHandler、ExceptionHandler1.ChannelHan ...
xklin04 评论(0) 有2994人浏览 2013-05-27 14:30

netty做Pipe一端快一端慢时防止内存溢出进行的操作

前段时间用netty3.x做了一个pipe的功能,读的速度很快,写的速度很慢,结果读总是把内存耗光(来不及写写到pipe的另一端),后面解决了这个问题。 ...
OpenMind 评论(0) 有5939人浏览 2013-05-23 17:12

Netty源码分析之消息的收发

在前面已经说明了在接收新连接时,将向worker注册默认的READ事件。然后worker开始阻塞select监听事件。 发送消息的情况。 这种情况常常是由DownstreamHandler主动发起,在对接收的消息处理后主动发送消息ctx.sendMessage,由内向外经过由DownstreamHandler和encode组成的过滤链,在链的尽头由NioServerSocketPipelineSin ...
xklin04 评论(0) 有2744人浏览 2013-05-22 13:31

Netty源码分析之accept

处理客户端新连接请求的方法从org.jboss.netty.channel.socket.nio.AbstractNioSelector.run()开始分析。 NioServerBoss是AbstractNioSelector的子类,处理服务器端接收新请求 ...
xklin04 评论(0) 有1355人浏览 2013-05-21 11:29

Netty源码分析之Server bindAsync

下文将剖析ServerBootstrap.bindAsync()方法所涉及到的流程。 1.概念 ChannelHandler分ChannelUpstreamHandler和ChanneldownstreamHandler,前者指向服务器接收事件的调用处理器,后者是服务器由内而外发送事件的事件处理器。 上下行消息传递方法介绍 sendUpstream()方法表发由外向内传递事件, public vo ...
xklin04 评论(0) 有2252人浏览 2013-05-17 16:10

java.lang.OutOfMemoryError: unable to create new native thread

bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory( Executors.newCachedThreadPool(), Executors.newCachedThreadPool())); 异常 java.lang.OutOfMemoryError: unable to create new nat ...
pcpig 评论(0) 有1688人浏览 2013-05-16 19:50

初识Netty3.6

今天开始接触Netty这个NIO框架,由与MINA同一作者创作的框架,在看过User Guide 3.6之后,API风格与使用方式与MINA2大致类似。作为学习新框架的起始,先来几个Hello World程序吧。 看API依然是基于Reactor模型,程序分三部分 1.事件处理程序 主要包括对具体业务消息的处理,对各种连接状态的响应    public class TimeServerH ...
xklin04 评论(0) 有2422人浏览 2013-05-16 16:55

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics