
netty
文章平均质量分 87
iteye_11714
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
netty 4.x源码分析
netty 4.x源码分析 服务端需要经过socket、bind、accept、read、write等步骤,客户端需要经过socket、connect、read、write等步骤,后续此系列文章会对每一个步骤如何发生进行分析。 netty4源码分析-线程的创建netty4源码分析-socketnetty4源码分析-bind Netty4源码分...原创 2013-08-12 14:59:48 · 163 阅读 · 0 评论 -
NIO+reactor模式的网路服务器设计方案
NIO+reactor 模式的网路服务器设计方案 1、前言 在前一篇文章中,介绍了基于 BlockingIO +thread-per-connection 的方案,由于该方案为每一个连接分配一个线程,而线程里的大部分操作都是阻塞式的,所以在高并发的情况下,会导致产生大量的线程,线程间的上下文切换会浪费大量的 CPU 时间,而且每个线程是需要占用堆栈空...原创 2012-12-16 16:59:37 · 152 阅读 · 0 评论 -
BlockingIO +thread-per-connection的网络服务器设计方案
BlockingIO +thread-per-connection的网络服务器设计方案 1、 前言 在 java1.4引入 NIO之前,网络服务器的典型实现方案是采用阻塞 IO+多线程模型,后来出现了非阻塞 IO( NIO),常用的实现方案则变成 NIO+Reactor模式,还有 NIO+proactor模式。本文主要是介绍阻塞 IO+多线程模...原创 2012-12-16 16:01:13 · 298 阅读 · 0 评论 -
基于echo例子的netty4通信总结
本文为原创,转载请注明出处基于echo例子的netty4通信总结 在netty4源码分析系列文章中分别详细介绍了echo例子中涉及到网络通讯的每一个环节,本文对echo例子中服务端和客户端依次发生的步骤做个总结: 服务端依次发生的步骤建立服务端监听套接字ServerSocketChannel,以及对应的管道pipeline;启动boss线程,将ServerSock...原创 2013-11-08 17:48:51 · 193 阅读 · 0 评论 -
Netty4源码分析- read
本文为原创,转载请注明出处Netty4源码分析- read 当selector检测到OP_READ事件时,触发read操作://NioEventLoopif ((readyOps & (SelectionKey.OP_READ | SelectionKey.OP_ACCEPT)) != 0 || readyOps == 0) { ...原创 2013-11-07 19:06:46 · 223 阅读 · 0 评论 -
Netty4源码分析-flush
本文为原创,转载请注明出处 Netty4源码分析-flush Netty的写操作由两个步骤组成:Write:将msg存储到ChannelOutboundBuff...原创 2013-11-06 10:40:16 · 323 阅读 · 0 评论 -
netty 4源码分析-write
本文为原创,转载请注明出处netty 4源码分析-write Netty的写操作由两个步骤组成:Write:将msg存储到ChannelOutboundBuffer中Flush:将msg从ChannelOutboundBuffer中flush到套接字的发送缓冲区中。 本文介绍第一个步骤write//DefaultChannelHandlerCont...原创 2013-11-05 11:00:19 · 204 阅读 · 0 评论 -
netty4源码分析-accept
本文为原创,转载请注明出处netty4源码分析-accept 本文分析服务端如何accept客户端的connect请求,首先看下selector的I/O多路复用的分发逻辑://NioEventLoopprivate static void processSelectedKey(SelectionKey k, AbstractNioChannel ch) {...原创 2013-09-13 10:56:17 · 208 阅读 · 0 评论 -
netty4源码分析-connect
本文为原创,转载请注明出处netty4源码分析-connect 客户端向服务端发起connect请求由以下代码触发:ChannelFuture f = b.connect(host, port).sync(); 调用Bootstrap的connect方法://Bootstrappublic ChannelFuture connect(String inetHo...原创 2013-09-06 15:06:25 · 293 阅读 · 0 评论 -
Netty4源码分析-NioEventLoop实现的线程运行逻辑
Netty4源码分析-NioEventLoop实现的线程运行逻辑 在netty服务端启动源码分析-线程创建一文中已分析SingleThreadEventExecutor所持有的线程的运行逻辑由NioEventLoop实现,那么本文就着手分析NioEventLoop实现的线程运行逻辑: // NioEventLoopprotected void run() { ...原创 2013-08-21 16:42:42 · 309 阅读 · 0 评论 -
netty4服务端启动源码分析-线程的创建
本文为原创,转载请注明出处netty4服务端启动源码分析-线程的创建 本文分析Netty中boss和worker的线程的创建过程:以下代码是服务端的启动代码,线程的创建就发生在其中。EventLoopGroup bossGroup = new NioEventLoopGroup(); NioEventLoopGroup的类关系图如下: 构造方法执行过程如下:...原创 2013-08-15 16:14:08 · 285 阅读 · 0 评论 -
netty4源码分析-bind
本文为原创,转载请注明出处netty4源码分析-bind 在前一篇文章中分析了监听套接字ServerSocketChannel的创建过程,本文接着分析绑定IP和端口的过程。 回到之前未分析完的doBind逻辑,前一篇文章已分析到dobind方法中initAndRegister方法,该方法最终触发了对regPromise 的listener的回调,Listener将bind任务加到b...原创 2013-08-13 19:15:03 · 234 阅读 · 0 评论 -
netty4源码分析-socket
本文为原创,转载请注明出处netty4源码分析-socket 服务端启动的第一步必须先创建一个监听套接字ServerSocketChannel,该过程是由ChannelFuture f = b.bind(port)中的bind触发。下面详细分析其过程: Bind源码如下,代码位于ServerBootstrap的父类AbstractBootstrap//A...原创 2013-08-12 15:00:07 · 146 阅读 · 0 评论 -
支持连接池的netty client核心功能实现剖析
支持连接池的netty client核心功能实现剖析 本文为原创,转载请注明出处 源码地址: https://github.com/zhangxianwu/light-netty-client 1、连接池 由于TCP连接的建立和关闭分别会经历三次握手和四次挥手,而三次握手和四次挥手都是系统开销很大的操作。如果每次一个新的请求发起时,都为其新建一个连接,在请求处...原创 2015-01-28 17:15:58 · 880 阅读 · 0 评论