E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Netty源码分析
netty源码分析
之揭开reactor线程的面纱(三)
上两篇博文(
netty源码分析
之揭开reactor线程的面纱(一),
netty源码分析
之揭开reactor线程的面纱(二))已经描述了netty的reactor线程前两个步骤所处理的工作,在这里,我们用这张图片来回顾一下
爱传文档
·
2018-11-29 10:58
Java
Netty
Netty源码分析
系列--4. JDK的Future接口和Netty的ChannelFuture接口
JDKFuture接口publicinterfaceFuture{booleancancel(booleanmayInterruptIfRunning);booleanisCancelled();booleanisDone();Vget()throwsInterruptedException,ExecutionException;Vget(longtimeout,TimeUnitunit)thro
ted005
·
2018-11-08 00:08
Netty源码分析
(六) DelimiterBasedFrameDecoder
我们之前介绍了Netty的解码器ByteToMessageDecoder,那Netty具体的解码器有哪几种呢,Netty提供的解码器主要有以下几个:DelimiterBasedFrameDecoder解决TCP的粘包解码器StringDecoder消息转成String解码器LineBasedFrameDecoder自动完成标识符分隔解码器FixedLengthFrameDecoder固定长度解码器
skyguard
·
2018-11-07 15:32
Netty源码分析
之pipeline
承接题意,平铺直叙。Netty中每个channel都有一个pipeline,可以看下channel的层次结构:其实在之前的客户端和服务端初始化的时候已经说过了,在初始化Channel的时候,同时初始化pipeline;//AbstractChannelprotectedAbstractChannel(Channelparent){this.parent=parent;id=newId();unsa
xiehongm_信陵
·
2018-11-06 14:18
netty源码分析
之服务端启动
ServerBootstrap与Bootstrap分别是netty中服务端与客户端的引导类,主要负责服务端与客户端初始化、配置及启动引导等工作,接下来我们就通过netty源码中的示例对ServerBootstrap与Bootstrap的源码进行一个简单的分析。首先我们知道这两个类都继承自AbstractBootstrap类接下来我们就通过netty源码中ServerBootstrap的实例入手对其
小杨Java
·
2018-11-04 18:54
netty
:源码分
java
Netty源码分析
系列--7. Reactor模式与Netty
多Reactor模式除了上文中介绍的Reactor基础模式,还有多Reactor模式,如下图:多reactor模式mainReactor和subReactor使用各自的Selector、线程和事件循环。mainReactor通过acceptor将事件分发给subReactor。Netty的Reactor模式实现对应关系:ReactorNettyMainReactorBossNioEventLoop
ted005
·
2018-11-03 22:21
netty源码分析
之服务端启动
ServerBootstrap与Bootstrap分别是netty中服务端与客户端的引导类,主要负责服务端与客户端初始化、配置及启动引导等工作,接下来我们就通过netty源码中的示例对ServerBootstrap与Bootstrap的源码进行一个简单的分析。首先我们知道这两个类都继承自AbstractBootstrap类接下来我们就通过netty源码中ServerBootstrap的实例入手对其
bigfan
·
2018-11-03 17:00
Netty源码分析
系列--6. 初识Reactor模式
传统Socket网络编程模式通常有一个服务器server循环等待客户端的连接,每接受一个连接,生成对应的socket对象并新起一个线程,在新线程中的I/O操作使用该socket对象。例如:publicclassClassicSocket{publicstaticvoidmain(String[]args)throwsException{ServerSocketserverSocket=newSer
ted005
·
2018-11-02 19:21
Netty源码分析
系列--5.ServerBootStrap绑定端口号
前文
Netty源码分析
系列--3.服务器启动ServerBootStrap分析中介绍了对ServerBootStrap的多个变量赋值后,下一步就要绑定端口号启动服务器。
ted005
·
2018-11-01 00:40
2-
netty源码分析
之Client
2-
netty源码分析
之Client其实记录netty客户端的启动过程基本跟server端相似,无非是借助Bootstrap组装组件,然后通过connect发起连接。
致虑
·
2018-09-20 11:15
1-
netty源码分析
之Server
1-
netty源码分析
之Server看netty源码之后进行总结的第一篇笔记,无非帮助自己对于看代码的一个总结,方便自己回顾学习;依然保持从demo出发,服务端、客户端、线程模型、管道四篇核心点记录;一
致虑
·
2018-09-20 11:59
Netty源码分析
-终结篇
原文链接:https://www.yuque.com/charjay/distribution/rt2pk71.Promise与Futurehttps://docs.scala-lang.org/zh-cn/overviews/core/futures.html2.Handler的各种姿势2.1.ChannelHandlerContext每个ChannelHandler被添加到ChannelPip
左耳听风
·
2018-09-16 17:11
netty
Netty 源码分析-EventLoop
NioEventLoopGroup在
Netty源码分析
-客户端章节中我们已经知道了,一个Netty程序启动时,至少要指定一个EventLoopGroup(如果使用到的是NIO,那么通常是NioEventLoopGroup
左耳听风
·
2018-09-16 17:30
netty
Netty源码分析
先说结论,Netty服务端启动和交互的逻辑的底层实现是借助于JavaNIOServerSocketChannel来实现,JavaNIOServerSocketChannel作为服务端的绑定端口、接受客户端的连接的样式代码如下:/**既然是服务器端,肯定需要一个ServerSocketChannel来监听新进来的TCP连接。**/ServerSocketChannelserverSocketChan
god_love_hlq_xff
·
2018-09-15 20:11
java
netty
netty源码分析
-客户端启动
最近的开发工作中使用到了netty,对比jdk原生的NIO写法,netty简单了很多,而且性能也是很不错,就对netty如何做到的比较感兴趣,就开始对源码进行了研究和学习。这也是我第一次比较系统的学习一种优秀框架的源代码,为了加强记忆和梳理逻辑,对这次源代码的分析做一下记录。源代码的分析首先从下载源码开始,进入到netty的github复制地址,在git上执行gitclonehttps://git
liuvlun
·
2018-08-08 22:29
netty源码分析
1-1 Netty深入剖析
我们为什么呢要学习Netty通信呢?其实业内我们有很多大型架构都是Netty作为底层通信,异步非阻塞。如:Duddo,RocketMQ,Spark,Elasticsearch,Cassandra,Flink,Netty-SocketIO,Spring5,Play,Grpc。所以那Netty到底是什么?1.异步事件驱动框架,用于快速开发高性能服务端和客户端。2.封装了JDK底层BIO(同步阻塞式IO
yulongguang
·
2018-06-17 16:31
java
【Netty 专栏】
Netty源码分析
之ChannelPipeline
点击上方“芋道源码”,选择“置顶公众号”技术文章第一时间送达!源码精品专栏中文详细注释的开源项目Java并发源码合集RocketMQ源码合集Sharding-JDBC源码解析合集SpringMVC和Security源码合集MyCAT源码解析合集本章节分析Netty中的ChannelPipeline模块。每个channel内部都会持有一个ChannelPipeline对象pipeline.pipel
芋道源码
·
2018-05-31 07:00
Netty源码分析
----PoolArena
(*文章基于Netty4.1.22版本)整体介绍前面介绍了PoolSubpage,PoolChunk,PoolChunkList,这在这之上还有个PoolArena,在这里面管理了前面3个结构,结构图如下:PoolArena结构.png包含了前面说的6个PoolChunkList,还有两个PoolSubpage数组,数组中的每个元素都是一个链表的头节点,在讲PoolSubpage的时候涉及的Hea
_六道木
·
2018-05-20 14:17
Netty源码分析
----PoolSubpage
(*文章基于Netty4.1.22版本)整体介绍分析PoolChunk的时候,讲到大于等于8KB走Chunk,否则走PoolSubpage,为什么要这么做呢?假如我们需要分配1KB的内存,那么如果还是用Chunk来分配,那么由于Chunk是默认8KB,那么就有7KB的空间浪费了,无法分配,因为一个Chunk是一个整体,所以Netty在Chunk之下拆分了大小相等的内存段,即PoolSubpage,
_六道木
·
2018-05-20 14:04
Netty源码分析
-服务端启动流程
接上一节eventLoopGroup初始化过程,本节分析服务端启动的流程。//配置服务端的NIO线程组EventLoopGroupbossGroup=newNioEventLoopGroup();EventLoopGroupworkGroup=newNioEventLoopGroup();try{ServerBootstrapbootstrap=newServerBootstrap();boots
G-罗
·
2018-05-11 19:58
Netty
Netty源码分析
之eventLoop和eventLoopGroup
转:https://blog.csdn.net/lz710117239/article/details/77414726Reactor单线程模型1.作为NIO服务端,接收客户端的TCP连接2.作为NIO客户端,向服务端发起TCP连接3.读取通信对端的请求或者应答消4.向通信对端发送消息请求或者应答消息Reactor单线程模型如下图所示:图片.png由于Reactor模式使用的是异步非阻塞I/O,所
faunjoe
·
2018-05-11 15:21
下周任务
1.spark
netty源码分析
2.spark对外内存使用3.sparkshuffle流程分析4.presto安装,kylin安装5.kafka管理源码分析6.kafkastream使用7.elkfilebeat
TonyChai
·
2018-02-26 09:28
Netty源码分析
之Reactor线程模型
一、背景最近在研究netty的源代码,今天发表一篇关于netty的线程框架--Reactor线程模型,作为最近研究成果。如果有还不了解Reactor模型请自行百度,网上有很多关于Reactor模式。研究netty的时候,先看了下《netty权威指南》,里面讲解不错,从原理到源码均有介绍,那为什么要写本篇博客呢?《netty权威指南》在介绍线程模型时候,介绍不够细腻,流程没有打通。我个人认为,这部分
xxb249
·
2017-12-21 18:56
网络
java并发与NIO
工作一到五年的Java程序员遇到瓶颈应该如何提升自己突破
具有一到五年开发经验需要学习内容很多JVM/分布式/高并发/性能优化/SpringMVC/SpringBoot/SpringCloud/MyBatis/
Netty源码分析
等等等01、透彻理解Tomcat
OSET我要编程
·
2017-12-18 11:03
netty源码分析
之服务端
一、前言上篇简单分析了下future、promise,由于这个在netty源码中用的实在太多,不得不提前了解下,这篇就开始分析源码了,先从server端开始~~~二、源码分析首先简单贴下server端的代码,这里只贴了核心代码publicvoidstartServer()throwsException{//只监听一个端口,因此只需要设置成线程数为1即可EventLoopGroupboss=newN
隔壁老王的隔壁啊
·
2017-12-11 05:29
Netty源码分析
-ChannelPipeline
Netty的ChannelPipeline和ChannelHandler机制类似于Servlet和Filter过滤器,在设计模式中是一种责任链模式。ChannelPipeline持有一系列ChannelHandler的链表,每个ChannelHandler可以对I/O事件进行拦截和处理。这样,I/O事件消息在ChannelPipeline中流动和传递时,可以根据配置的ChannelHandler实
yunkai_zhang
·
2017-12-10 01:08
RPC入门总结(四)RPC IO基础:Netty原理和使用
转载:Java编程思想(七)BIO/NIO/AIO的区别(Reactor和Proactor的区别)转载:Java编程思想(八)BIO/NIO/AIO的具体实现转载:源码之下无秘密──做最好的
Netty源码分析
教程转载
Zenhobby
·
2017-11-21 20:05
分布式
netty源码分析
之服务端启动全解析
netty是一个异步事件驱动的网络通信层框架,其官方文档的解释为NettyisaNIOclientserverframeworkwhichenablesquickandeasydevelopmentofnetworkapplicationssuchasprotocolserversandclients.Itgreatlysimplifiesandstreamlinesnetworkprogramm
u010154380
·
2017-11-01 23:00
netty-mina源码分析
Netty源码分析
之ChannelPipeline详解
作者:一字马胡转载标志【2017-11-03】更新日志日期更新内容备注2017-11-03添加转载标志持续更新ChannelHandlerNetty线程模型及EventLoop详解
Netty源码分析
之服务端
一字马胡
·
2017-10-18 21:58
Netty源码分析
:服务端启动全过程(篇幅很长)
Netty源码分析
:服务端启动全过程先说结论,Netty服务端启动和交互的逻辑的底层实现是借助于JavaNIOServerSocketChannel来实现,JavaNIOServerSocketChannel
HelloWorld_EE
·
2017-09-24 15:59
netty源码分析
Netty源码分析
源码分析NIOEventLoopGroupNioEventLoopGroup(其实是MultithreadEventExecutorGroup)内部维护一个类型为EventExecutorchildren[],默认大小是处理器核数*2,这样就构成了一个线程池,初始化EventExecutor时NioEventLoopGroup重载newChild方法,所以children元素的实际类型为NioEv
jiangmo
·
2017-09-20 20:00
Netty源码分析
-如何解决TCP粘包拆包问题
在实际网络应用中,我们接收和发送的数据都是以实际应用数据类型为单位的(比如一个Http数据体,或者一个ThriftObject)。而对于Socket而言,它处理的是TCP传输层的数据,在它接收或发送的一个TCP包中,可能正好对应一个ThriftObject,或者多个ThriftObject、ThriftObject的一部分,甚至可能由多个ThriftObject的多个部分组成。这就是TCP的粘包半
yunkai_zhang
·
2017-09-08 16:00
Netty源码分析
笔记之运行Netty 源码自带的例子example时,编译不通过
主要分享下,在运行netty源码自带的例子时,遇到的问题:主要步骤如下:1、从git上下载好netty源码【netty-netty-4.1.6.Final】2、直接导入到Intellijidea里,3、运行example模块下的echo例子报以下错误:很明显,缺少依赖包,当时感觉很纳闷,netty这么优秀的框架,为什么会缺少依赖包呢?解决措施:在handler模块的pom文件里添加依赖 org.
故新
·
2017-08-31 14:23
netty
Netty
【Netty4.X】
Netty源码分析
之ByteBuf(七)
ByteBuf是一个缓冲区,用于和NIO通道进行交互。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIOBuffer对象,并提供了一组方法,用来方便的访问该块内存。每当你需要传输数据时,它必须包含一个缓冲区。虽然JavaNIO为我们提供了原生的多种缓冲区实现,但是使用起来相当复杂并且没有经过优化,有着以下缺点:1、不能进行动态的增长或者收缩。如果写入的数据大于缓冲区
会编程的小毛驴
·
2017-07-05 16:58
NIO框架(Netty
Mina)
Netty源码分析
【Netty4.X】
Netty源码分析
之NioEventLoop(六)
继承关系:NioEventLoop初始化NioEventLoop(NioEventLoopGroupparent,ThreadFactorythreadFactory,SelectorProviderselectorProvider){super(parent,threadFactory,false);if(selectorProvider==null){thrownewNullPointerEx
会编程的小毛驴
·
2017-06-16 15:17
NIO框架(Netty
Mina)
Netty源码分析
【Netty4.X】
Netty源码分析
之NioEventLoopGroup(五)
NioEventLoopGroup实际是NioEventLoop的线程组,主要负责管理EventLoop的生命周期,EventLoop的默认大小是2倍的CPU核数,但这并不是一个恒定的最佳数量,为了避免线程上下文切换,只要能满足要求,这个值其实越小越好。继承关系如下:首先看NioEventLoopGroup构造方法:publicNioEventLoopGroup(){this(0);}public
会编程的小毛驴
·
2017-05-24 17:47
Netty
Netty源码分析
netty源码分析
之九 handler
学习完前面的channel,回头来学习handler会感觉到很简单的.handler这个包里面的类实现ChannelHandlerAdaptercodec我们最后来看,先看其他loggingLoggingHandler为log的输出类,定义模板,具体实现为InternalLogger这个接口,log4jlogback之类的可以实现接口sslSslHandler这个类有点不一样,继承自ByteToM
akfly
·
2017-01-09 22:05
netty学习笔记
netty源码分析
之pipeline(二)
前言
netty源码分析
之pipeline(一)中,我们已经了解了pipeline在netty中所处的角色,像是一条流水线,控制着字节流的读写,本文,我们在这个基础上继续深挖pipeline在事件传播,异常传播等方面的细节主要内容接下来
简书闪电侠
·
2017-01-03 08:28
netty源码分析
之pipeline(一)
通过前面的源码系列文章中的nettyreactor线程三部曲,我们已经知道,netty的reactor线程就像是一个发动机,驱动着整个netty框架的运行,而服务端的绑定和新连接的建立正是发动机的导火线,将发动机点燃netty在服务端端口绑定和新连接建立的过程中会建立相应的channel,而与channel的动作密切相关的是pipeline这个概念,pipeline像是可以看作是一条流水线,原始的
简书闪电侠
·
2016-12-26 06:14
netty源码分析
之新连接接入全解析
本文收获通读本文,你会了解到1.netty如何接受新的请求2.netty如何给新请求分配reactor线程3.netty如何给每个新连接增加ChannelHandler其实,远不止这些~前序背景读这篇文章之前,最好掌握一些前序知识,包括netty中的reactor线程,以及服务端启动过程下面我带你简单地回顾一下1.netty中的reactor线程netty中最核心的东西莫过于两种类型的reacto
简书闪电侠
·
2016-12-19 06:45
netty源码分析
之揭开reactor线程的面纱(三)
上两篇博文(
netty源码分析
之揭开reactor线程的面纱(一),
netty源码分析
之揭开reactor线程的面纱(二))已经描述了netty的reactor线程前两个步骤所处理的工作,在这里,我们用这张图片来回顾一下
简书闪电侠
·
2016-12-05 07:55
netty源码分析
之揭开reactor线程的面纱(二)
如果你对netty的reactor线程不了解,建议先看下上一篇文章
netty源码分析
之揭开reactor线程的面纱(一),这里再把reactor中的三个步骤的图贴一下reactor线程我们已经了解到nettyreactor
简书闪电侠
·
2016-11-28 07:48
【
Netty源码分析
】客户端connect服务端过程
上一篇博客【
Netty源码分析
】Netty服务端bind端口过程我们介绍了服务端绑定端口的过程,这一篇博客我们介绍一下客户端连接服务端的过程。
归田
·
2016-11-23 10:42
NIO及Netty
Netty 源码分析之 三 我就是大名鼎鼎的 EventLoop(一)
目录源码之下无秘密──做最好的
Netty源码分析
教程
Netty源码分析
之番外篇JavaNIO的前生今世JavaNIO的前生今世之一简介JavaNIO的前生今世之二NIOChannel小结JavaNIO的前生今世之三
永顺
·
2016-11-07 00:00
java
netty
源码分析
源码学习
Netty 源码分析之 三 我就是大名鼎鼎的 EventLoop(二)
接上篇
Netty源码分析
之三我就是大名鼎鼎的EventLoop(一)Netty的IO处理循环在Netty中,一个EventLoop需要负责两个工作,第一个是作为IO线程,负责相应的IO操作;第二个是作为任务线程
永顺
·
2016-11-07 00:00
java
netty
源码分析
源码学习
Netty 源码分析之 二 贯穿Netty 的大动脉 ── ChannelPipeline (二)
目录源码之下无秘密──做最好的
Netty源码分析
教程
Netty源码分析
之番外篇JavaNIO的前生今世JavaNIO的前生今世之一简介JavaNIO的前生今世之二NIOChannel小结JavaNIO的前生今世之三
永顺
·
2016-10-28 00:00
java
netty
源码分析
源码
源码学习
Netty 源码分析之 二 贯穿Netty 的大动脉 ── ChannelPipeline (一)
目录源码之下无秘密──做最好的
Netty源码分析
教程
Netty源码分析
之番外篇JavaNIO的前生今世JavaNIO的前生今世之一简介JavaNIO的前生今世之二NIOChannel小结JavaNIO的前生今世之三
永顺
·
2016-10-28 00:00
java
netty
源码分析
源码学习
Netty 源码分析之 一 揭开 Bootstrap 神秘的红盖头 (客户端)
目录
Netty源码分析
之番外篇JavaNIO的前生今世JavaNIO的前生今世之一简介JavaNIO的前生今世之二NIOChannel小结JavaNIO的前生今世之三NIOBuffer详解JavaNIO
永顺
·
2016-10-26 00:00
java
netty
源码分析
源码学习
Netty 源码分析之 零 磨刀不误砍柴工 源码分析环境搭建
目录此文章属于源码之下无秘密──做最好的
Netty源码分析
教程系列文章之一.代码下载首先到Netty的Github仓库中,点击右边绿色的按钮:拷贝git地址:
[email protected]
:netty/netty.git
永顺
·
2016-10-26 00:00
源码分析
netty
java
源码之下无秘密 ── 做最好的 Netty 源码分析教程
库,但是很多时候对Netty的一些概念还是处于知其然,不知其所以然的状态,因此就萌生了学习Netty源码的想法.刚开始看源码的时候,自然是比较痛苦的,主要原因有两个:第一,网上没有找到让我满意的详尽的
Netty
永顺
·
2016-10-26 00:00
源码分析
netty
java
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他