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源码分析
(二)----- ServerBootstrap
BootStrap在netty的应用程序中负责引导服务器和客户端。netty包含了两种不同类型的引导:1.使用服务器的ServerBootStrap,用于接受客户端的连接以及为已接受的连接创建子通道。2.用于客户端的BootStrap,不接受新的连接,并且是在父通道类完成一些操作。一般服务端的代码如下所示:SimpleServer.java/***Createdbychenhaoon2019/9/
chen_hao
·
2019-09-05 15:00
Netty源码分析
(二)----- ServerBootstrap
BootStrap在netty的应用程序中负责引导服务器和客户端。netty包含了两种不同类型的引导:1.使用服务器的ServerBootStrap,用于接受客户端的连接以及为已接受的连接创建子通道。2.用于客户端的BootStrap,不接受新的连接,并且是在父通道类完成一些操作。一般服务端的代码如下所示:SimpleServer.java/***Createdbychenhaoon2019/9/
chen_hao
·
2019-09-05 15:00
Netty源码分析
(二)----- ServerBootstrap
BootStrap在netty的应用程序中负责引导服务器和客户端。netty包含了两种不同类型的引导:1.使用服务器的ServerBootStrap,用于接受客户端的连接以及为已接受的连接创建子通道。2.用于客户端的BootStrap,不接受新的连接,并且是在父通道类完成一些操作。一般服务端的代码如下所示:SimpleServer.java/***Createdbychenhaoon2019/9/
chen_hao
·
2019-09-05 15:00
Netty源码分析
(一)----- NioEventLoopGroup
提到Netty首当其冲被提起的肯定是支持它承受高并发的线程模型,说到线程模型就不得不提到NioEventLoopGroup这个线程池,接下来进入正题。线程模型首先来看一段Netty的使用示例packagecom.wrh.server;importio.netty.bootstrap.ServerBootstrap;importio.netty.channel.*;importio.netty.ch
chen_hao
·
2019-09-04 16:00
Netty源码分析
(一)----- NioEventLoopGroup
提到Netty首当其冲被提起的肯定是支持它承受高并发的线程模型,说到线程模型就不得不提到NioEventLoopGroup这个线程池,接下来进入正题。线程模型首先来看一段Netty的使用示例packagecom.wrh.server;importio.netty.bootstrap.ServerBootstrap;importio.netty.channel.*;importio.netty.ch
chen_hao
·
2019-09-04 16:00
Netty源码分析
(一)----- NioEventLoopGroup
提到Netty首当其冲被提起的肯定是支持它承受高并发的线程模型,说到线程模型就不得不提到NioEventLoopGroup这个线程池,接下来进入正题。线程模型首先来看一段Netty的使用示例packagecom.wrh.server;importio.netty.bootstrap.ServerBootstrap;importio.netty.channel.*;importio.netty.ch
chen_hao
·
2019-09-04 16:00
Netty:
Netty:https://blog.csdn.net/wzq6578702/article/month/2017/09原
netty源码分析
(八)Netty的自适应缓冲区分配策略与堆外内存创建方式我们总结一下
chenxuanhanhao
·
2019-08-25 22:06
Netty源码分析
--内存模型(下)(十二)
这一节我们一起看下分配过程1PooledByteBufallocate(PoolThreadCachecache,intreqCapacity,intmaxCapacity){2PooledByteBufbuf=newByteBuf(maxCapacity);//初始化一块容量为2^31-1的ByteBuf3allocate(cache,buf,reqCapacity);//reqCapacity
Diligent_Watermelon
·
2019-08-18 23:00
Netty源码分析
--内存模型(上)(十一)
前两节我们分别看了FastThreadLocal和ThreadLocal的源码分析,并且在第八节的时候讲到了处理一个客户端的接入请求,一个客户端是接入进来的,是怎么注册到多路复用器上的。那么这一节我们来一起看下客户端接入完成之后,是怎么实现读写操作的?我们自己想一下,应该就是为刚刚读取的数据分配一块缓冲区,然后把channel中的信息写入到缓冲区中,然后传入到各个handler链上,分别进行处理。
Diligent_Watermelon
·
2019-08-15 11:00
Netty源码分析
--FastThreadLocal分析(十)
上节讲过了ThreadLocal的源码,这一节我们来看下FastThreadLocal。这个我觉得要比ThreadLocal要简单,因为缺少了对于Entry的清理和整理工作,所以ThreadLocal的效率更高。跟ThreadLocal一样,我们也先给一个结构图:大家看这个图跟ThreadLocal有哪些区别,首先是用一个Object数组来替代了Entry数组,不再是key键值对的形式。另外Obj
Diligent_Watermelon
·
2019-08-05 01:00
Netty源码分析
--ThreadLocal分析(九)
为了更好地探讨Netty的内存模型,后面会用到,这里我还是决定跟大家一起看下ThreadLocal和FastThreadLocal的源码,有的时候我们在看源码的时候会一层层的遇到很多之前没有看过的内容,我觉得有的时候为了更好地理解大牛的思想,还是去跟一下源码比较好。ThreadLocal我想大家应该不陌生,这是面试的时候的必考内容,比如说ThreadLocal为什么线程安全?或者什么需要注意什么问
Diligent_Watermelon
·
2019-08-04 18:00
Netty源码分析
--处理客户端接入请求(八)
这一节我们来一起看下,一个客户端接入进来是什么情况。首先我们根据之前的分析,先启动服务端,然后打一个断点。这个断点打在哪里呢?就是NioEventLoop上的select方法上。然后我们启动一个客户端。然后我们debug看到,selectedKey的数量=1,说明有accept或者读写等事件发生。接下就会进processSelectedKeys()我们上一节讲到,这里的attach就是NioSer
Diligent_Watermelon
·
2019-07-07 22:00
Netty源码分析
之核心线程处理
核心线程是NioEventLoop,在第一次往任务队列中添加任务时开始启动线程abstractclassSingleThreadEventExecutorextendsAbstractScheduledEventExecutorimplementsOrderedEventExecutorthread=threadFactory.newThread(newRunnable(){@Overridepu
徘徊笔记(同公众号)
·
2019-07-05 15:55
Netty
Netty源码分析
--Channel注册&绑定端口(下)(七)
接下来,我们看到的就是两个非常重要的方法就是processSelectedKeys()和runAllTasks()方法了。selectionKey中ready的事件,如accept、connect、read、write等,由processSelectedKeys方法触发。属于I/O任务。添加到taskQueue中的任务,如register0、bind0等任务,由runAllTasks方法触发。属于
Diligent_Watermelon
·
2019-07-04 00:00
Netty源码分析
--Channel注册(中)(六)
接上一篇,我们继续看不知道大家第一次看这段代码的时候有没有一脸懵逼,反正我是一脸懵,为什么这个ifelse最终都是调用的register0方法,都是一样的。其实这里就是为什么Netty是线程安全的根本原因。我们先看下eventLoop.inEventLoop()方法第一张图传入了当前的线程,第二个图判断了当前这个NioEventLoop中的Thread是不是和当前线程相等,如果相等返回true,相
Diligent_Watermelon
·
2019-07-02 23:00
Netty源码分析
--Channel注册(上)(五)
其实在将这一节之前,我们来分析一个东西,方便下面的工作好开展。打开启动类,最开始的时候创建了一个NioEventLoopGroup事件循环组,我们来跟一下这个。这里bossGroup,我传入了一个线程,workerGroup没有入参,默认0,也就是说父级我用一个线程来处理客户端的接入,多个线程来处理客户端的读写操作通过一连串的构造方法进入到executor是null,selectorProvide
Diligent_Watermelon
·
2019-07-02 00:00
Netty源码分析
--初始化Options,添加处理器(四)
接上篇,我们继续进入AbstractBootstrap类的initAndRegister()方法进入init()方法设置父级Channel的options,进入到上节提到的NioServerSocketChannelConfig其实就是为我们的channel.config()设置全局属性,当然我们也可以设置attr。继续看,从channel中获取新创建的pipeline,获取我们初始化的child
Diligent_Watermelon
·
2019-07-01 10:00
Netty源码分析
--创建Channel(三)
先看一下我Netty的启动类privatevoidstart()throwsException{EventLoopGroupbossGroup=newNioEventLoopGroup(1);EventLoopGroupworkerGroup=newNioEventLoopGroup();try{ServerBootstrapbootstrap=newServerBootstrap();boots
Diligent_Watermelon
·
2019-06-30 18:00
8
Netty源码分析
之ChannelOption与AttributeKey组件分析
Netty源码分析
之ChannelOption与AttributeKey组件分析第一步看源码过程分析我们看看AttributeKey这个类的作用总结:ChannelOption是维护了一些TCP参数的赋值
一只想飞的猪猪
·
2019-06-19 18:36
Netty源码分析
Netty源码分析
之NioEventLoop(三)—NioEventLoop的执行
前面两篇文章
Netty源码分析
之NioEventLoop(一)—NioEventLoop的创建与
Netty源码分析
之NioEventLoop(二)—NioEventLoop的启动中我们对NioEventLoop
bigfan
·
2019-06-11 22:00
【面试题】2019年最全Java面试通关秘籍汇总集!
说到这里顺便给大家推荐一个Java架构方面的交流学习群:964357187,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,
Netty源码分析
,高并发、高性能、分布式、微服务架构的原理
我是小泽呀!
·
2019-05-31 15:54
面试题
Java
IT互联网
程序员
程序人生
SpringCloud服务发现注册Eureka +Ribbon + Feign
Ribbon服务消费者结合Feign的服务生产者和消费者什么是服务注册和发现顺便给大家推荐一个Java技术交流群:908676731,里面会分享一些资深架构师录制的视频资料:有Spring,MyBatis,
Netty
慕容千羽
·
2019-04-19 17:24
SpringCloud
程序员
架构
Java类的各种成员初始化顺序,20K程序员也可能不清楚
性能调优、Spring,MyBatis,
Netty源码分析
的朋友可以加我的Java高级架构进阶群:180705916,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家程序员、编程
高级java架构师
·
2019-04-19 09:38
Java类的各种成员初始化顺序,20K程序员也可能不清楚
性能调优、Spring,MyBatis,
Netty源码分析
的朋友可以加我的Java高级架构进阶群:180705916,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家程序员、编程
高级java架构师
·
2019-04-19 09:38
分布式系统的常见问题
性能调优、Spring,MyBatis,
Netty源码分析
的朋友可以加我的Java高级架构进阶群:180705916,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家分布式带来的优势就是能够将复杂业务拆分成多个服务的组合
高级java架构师
·
2019-04-18 16:01
分布式系统的常见问题
性能调优、Spring,MyBatis,
Netty源码分析
的朋友可以加我的Java高级架构进阶群:180705916,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家分布式带来的优势就是能够将复杂业务拆分成多个服务的组合
高级java架构师
·
2019-04-18 16:01
第十四节
netty源码分析
之客户端源码分析01
首先分析netty客户端,源码来自netty官方examplepublicfinalclassEchoClient{staticfinalbooleanSSL=System.getProperty("ssl")!=null;staticfinalStringHOST=System.getProperty("host","127.0.0.1");staticfinalintPORT=Integer.
勃列日涅夫
·
2019-04-08 11:28
Netty4.x源码分析:Netty常见组件(Channe、Unsafe、Pipeline)
当我们看
Netty源码分析
的时候,经常会看到几个常见组件比如Channel、Pipeline、Unsafe、EventLoopGroup、EventLoop。
dk2077
·
2019-03-29 17:30
Netty4.x源码分析
Netty源码分析
(一):Netty总览
作为当前最流行的网络通信框架,Netty在互联网领域大放异彩,本系列将详细介绍Netty(4.1.22.Final)。代码事例服务端publicfinalclassEchoServer{//从启动参数判断是否使用sslstaticfinalbooleanSSL=System.getProperty("ssl")!=null;//获取端口(默认8007)staticfinalintPORT=Inte
贰级天災
·
2019-03-28 20:42
Netty源码分析
之NioEventLoop(二)—NioEventLoop的启动
上篇文章中我们对Netty中NioEventLoop创建流程与源码进行了跟踪分析。本篇文章中我们接着分析NioEventLoop的启动流程;Netty中会在服务端启动和新连接接入时通过chooser选择器,分别为NioServerSocketChannel与NioSocketChannel选择绑定一个NioEventLoop,接下来我们就分别从这两个方面梳理NioEventLoop的启动源码一、服
bigfan
·
2019-03-23 15:00
Netty源码分析
之NioEventLoop(一)—NioEventLoop的创建
一、NioEventLoop的概述NioEventLoop做为Netty线程模型的核心部分,从本质上讲是一个事件循环执行器,每个NioEventLoop都会绑定一个对应的线程通过一个for(;;)循环来处理与Channel相关的IO操作,包括调用select等待就绪的IO事件、读写数据与数据的处理等;其次作为任务队列,执行taskQueue中的任务,例如eventLoop.schedule提交的定
bigfan
·
2019-03-10 22:00
Netty源码分析
7 - 服务端 accept 原理
一、代码执行流程梯形图NioEventLoop.run()-->processSelectedKeysOptimized()//遍历selectedKeys-->selectionKey.attachment()//NioServerSocketChannel-->processSelectedKey(SelectionKeyk,AbstractNioChannelch)//ch=NioServe
原水寒
·
2019-03-10 11:16
Netty源码分析
系列之一:NIO 基础介绍
引言本文是
Netty源码分析
系列文章的第一篇,主要介绍NIO的基础知识。因为Netty本身就是对NIO进行了封装。
枫之慕
·
2019-03-01 00:32
Netty
Netty源码分析
(三)之NioServerSocketChannel
文章目录netty版本NioServerSocketChannel的创建过程无参构造方法的执行流程NioServerSocketChannel的初始化AbstractChannel.doRegisterAbstractChannel.bindnetty版本使用的netty版本是io.netty:netty-all:4.1.33.FinalNioServerSocketChannel的创建过程Nio
jannals
·
2019-02-28 22:15
#
netty源码分析
Netty源码分析
1 - Promise 异步框架的设计
promise-framework是一个从netty抽取出来的通用promise异步框架,并简化了Listener架构。github:https://github.com/zhaojigang/concurrent-framework一、使用姿势二、代码架构三、代码分析附、bug记录一、使用姿势1.1、回调方式(推荐-完全异步)@TestpublicvoidtestListenerNotifyLa
原水寒
·
2019-02-27 17:11
netty源码分析
(13)- 创建NioSocketChannel
上一节研究了新连接接入的过程,通过检测IO事件轮询新连接,当前成功检测到连接接入事件之后,会调用NioServerSocketChannel#doReadMessages()方法,进行创建NioSocketChannel@OverrideprotectedintdoReadMessages(Listbuf)throwsException{//获取jdk底层的channel:客户端channelSo
Jorgezhong
·
2019-02-25 10:21
杂谈篇之我是怎么读源码的,授之以渔
微服务、Spring,MyBatis,
Netty源码分析
的朋友可以加我的Java高级交流:85463013
java进阶高级
·
2019-02-19 18:23
netty源码分析
(2)-初始化Channel
上一节分析了Channel的创建过程,回忆一下,其实newChannel()方法其实只是实例化了一个Channel对象,还未初始化成员变量以及一些列配置.@OverridepublicTnewChannel(){try{returnclazz.newInstance();}catch(Throwablet){thrownewChannelException("UnabletocreateChann
Jorgezhong
·
2019-02-19 14:12
IntelliJ IDEA 2018.3 安装+永久激活
微服务、Spring,MyBatis,
Netty源码分析
的朋友可以加我的Java高级交流:8
chenshiyang198959
·
2019-02-18 16:10
java
利用jmap和MAT等工具查看JVM运行时堆内存
微服务、Spring,MyBatis,
Netty源码分析
的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
javaQQ群 866865133
·
2019-01-29 11:24
深入剖析Netty源码设计(一)——深入理解select poll epoll机制
本文首发于:http://www.6aiq.com/article/1548222475606前言打算输出一系列
Netty源码分析
与实践的文章,也作为后端开发学习过程中的沉淀,此文章为第一篇,从操作系统底层的
lsgqjhAC哈理工
·
2019-01-24 10:08
并发多线程
后端开发
春节福利:携程架构师2019年java进阶视频分享,让你少走弯路
进阶视频分享:大大家想获取上面的视频,可以直接加群957413713获取,同时群内提供Spring,MyBatis,
Netty源码分析
,高并发、高性能、分布式、微服务架构的原理,JV
Java架构师那些事
·
2019-01-15 20:51
【面试必备】手撕代码,你怕不怕?
微服务、Spring,MyBatis,
Netty源码分析
的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联
javaQQ群 866865133
·
2019-01-10 11:57
netty源码分析
-server启动-initAndRegister
阅读更多本文包括以下内容1.initAndRegister-createChannel分析2.initAndRegister-createChannel分析3.ChannelInitializer分析创建channel-server端bind()调用链如下sever端启动主要处理都在bind()处理中,其中主要代码如下AbstractBootstrapprivateChannelFuturedoB
chenchangqun
·
2018-12-29 16:00
Netty源码分析
(一) ServerBootStrap
先来说说为什么要写
netty源码分析
的文章,一个方面是自己看了一些源码,却找不到了解原理的方式,一个方面是万一bat哪个大牛看到我写的文章,给我一个5k的工作呢。
skyguard
·
2018-12-14 15:15
Netty源码分析
引子在学习Netty的过程中,涉及到很多JavaNIO和多线程编程的知识,为此边学边将这些东西进行梳理,帮助理解。Socket通信上学学习Linux中Socket通信的时候,课本上就是用这张经典图片来描述客户端和服务器之间的Socket通信交互。Socket通信交互NIO实现客户端和服务端通信在NIO中引入了通道和选择器的概念来实现IO的多路复用,下面是一个完整的示例代码来描述这个使用过程。//创
云师兄
·
2018-12-11 09:09
spring cloud中微服务之间的调用以及eureka的自我保护机制
微服务、Spring,MyBatis,
Netty源码分析
的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
javaQQ群 866865133
·
2018-12-09 17:33
Java代码复用的三种常用方式:继承、组合和代理
微服务、Spring,MyBatis,
Netty源码分析
的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免
javaQQ群 866865133
·
2018-12-07 16:17
《netty》
netty源码分析
之future和promise
futurejava.util.concurrent.Future,Future表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callback以便在任务执行成功或失败后作出相应的操作。//取消异步操作booleancancel(booleanmayInterruptIfRunning);//异步操作是否取消booleanisCancelled();//异步操作是否完成,正常终止、异常
凯歌的博客
·
2018-12-07 00:57
java
netty
nio
Netty源码分析
之ChannelPipeline
每个channel内部都会持有一个ChannelPipeline对象pipeline.pipeline默认实现DefaultChannelPipeline内部维护了一个DefaultChannelHandlerContext链表。当channel完成register、active、read等操作时,会触发pipeline的相应方法。1、当channel注册到selector时,触发pipeline
沙漏半杯
·
2018-12-02 16:06
netty
源码分析
上一页
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
其他