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
之非阻塞处理
Netty
是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络IO程序。
延年有余
·
2022-03-31 16:00
Netty
Utils
importio.
netty
.buffer.ByteBuf;importstaticio.
netty
.buffer.ByteBufUtil.appendPrettyHexDump;importstaticio.
netty
.util.internal.StringUtil.NEWLINE
·
2022-03-31 16:25
java
ZooKeeper安全认证机制:SSL
ZooKeeper的网络通信是没有加密的,但ZooKeeper提供了SSL特性,目前仅应用在Client与Server端之间的交互(Server与Server之间的交互尚不支持),且RPC通信协议基于
Netty
hyg0406
·
2022-03-31 10:43
Netty
实现websocket聊天程序-前端页面
效果图main.jsimportVuefrom'vue'importAppfrom'./App.vue'importrouterfrom'./router'importstorefrom'./store'importAntdfrom'ant-design-vue'import'ant-design-vue/dist/antd.css'importvuescrollfrom"vuescroll"im
CoreCmd
·
2022-03-31 10:23
Vue
netty
Java
java
netty
vue
小六六学
Netty
系列之Java NIO(一)
six-finger种一棵树最好的时间是十年前,其次是现在我知道很多人不玩qq了,但是怀旧一下,欢迎加入六脉神剑Java菜鸟学习群,群聊号码:549684836鼓励大家在技术的路上写博客絮叨前面也说了,学习
Netty
六脉神剑1
·
2022-03-31 07:40
java
编程语言
nio
netty
python
解决UDP多线程并发和丢包问题
项目使用了
Netty
UDP,代码中设置了BossGroup线程数如下privatevoidstart(){group=newNioEventLoopGroup(10,r->{returnnewThread
微笑_f0e6
·
2022-03-30 23:55
网络协议之:socket协议详解之Socket和Stream Socket
简介不管是在普通的网络编程中还是在
netty
中,都经常会提到一个词叫做socket,好像socket是一个神奇的东西,使用socket我们可以建立客户端到服务器端的连接,并且和进行客户端和服务器端的通讯
·
2022-03-30 20:34
网络协议之:socket协议详解之Socket和Stream Socket
目录简介Socket是什么StreamSocket使用socat创建一个TCP服务器使用ss检查TCP连接使用nc连接socket总结简介不管是在普通的网络编程中还是在
netty
中,都经常会提到一个词叫做
flydean
·
2022-03-30 20:00
高性能网络通信框架
Netty
一套就够(作者原创)
文章目录个人简介
Netty
Netty
入门
Netty
著名项目
Netty
的优势
Netty
Maven第一个
Netty
应用
Netty
组件EventLoopChannelFuture&PromiseHandler
摸鱼打酱油
·
2022-03-30 13:13
笔记
java
后端
netty
nio
网络通信
Netty
分布式获取异线程释放对象
方法我们跟到DELAYED_RECYCLED中我们回到pushLater方法中再跟到reserveSpace方法中回到pushLater方法中简单看下link的类的定义回到pushLater方法中前文传送门:
Netty
·
2022-03-30 11:46
Netty
分布式高性能工具类FastThreadLocal和Recycler分析
的使用和创建首先我们看一个最简单的demo跟到nextVariableIndex方法中我们首先剖析slowGet()方法我们跟进fastGet回到FastThreadLocal的get方法中在我们的demo中对应这个方法前文传送门:
Netty
·
2022-03-29 18:22
Netty
分布式FastThreadLocal的set方法实现逻辑剖析
目录FastThreadLocal的set方法实现线程set对象我们跟到setIndexedVariable中我们跟进removeIndexedVariable方法上一小节我们学习了FastThreadLocal的创建和get方法的实现逻辑,这一小节学习FastThreadLocal的set方法的实现逻辑FastThreadLocal的set方法实现set方法,其实就是修改线程共享对象,作用域只是
·
2022-03-29 18:50
Netty
分布式高性能工具类异线程下回收对象解析
目录异线程回收对象跟到pushLater方法中跟到allocate方法中回到pushLater方法中简单看下link的类的定义回到pushLater方法中前文传送门:
Netty
分布式高性能工具类同线程下回收对象解析异线程回收对象就是创建对象和回收对象不在同一条线程的情况下
·
2022-03-29 18:17
Netty
分布式高性能工具类同线程下回收对象解析
目录同线程回收对象回顾第三小节的demo中的main方法我们跟进recycle方法然后获取当前size同线程回收对象上一小节剖析了从recycler中获取一个对象,这一小节分析在创建和回收是同线程的前提下,recycler是如何进行回收的回顾第三小节的demo中的main方法publicstaticvoidmain(String[]args){Useruser1=RECYCLER.get();us
·
2022-03-29 18:13
Netty
分布式从recycler对象回收站获取对象过程剖析
前文传送门:
Netty
分布式高性能工具类recycler的使用及创建从对象回收站中获取对象我们回顾上一小节demo的main方法中从回收站获取对象publicstaticvoidmain(String[
·
2022-03-29 18:12
Netty
分布式高性能工具类recycler的使用及创建
目录recycler的使用这里看一个示例在Recycler的类的源码中,我们看到这一段逻辑跟到Stack的构造方法中继续跟重载的构造方法我们再回到Stack的构造方法中前文传送门:
Netty
分布式FastThreadLocal
·
2022-03-29 18:12
Netty
分布式Future与Promise执行回调相关逻辑剖析
目录Future和Promise执行回调首先我们看一段写在handler中的业务代码这里关注newPromise()方法,跟进去我们继续跟write方法跟进tryFailure方法跟到addMessage方法中最后跟到AbstractUnsafe的flush方法我们跟到remove()方法中再跟到trySuccess方法中我们看用户代码跟到addListener0方法中回到addListener0
·
2022-03-29 16:31
Netty
分布式flush方法刷新buffer队列源码剖析
flush方法上一小节学习了writeAndFlush的write方法,这一小节我们剖析flush方法通过前面的学习我们知道,flush方法通过事件传递,最终会传递到HeadContext的flush方法:publicvoidflush(ChannelHandlerContextctx)throwsException{unsafe.flush();}这里最终会调用AbstractUnsafe的fl
·
2022-03-29 16:29
华为架构师复盘2022最全2340页面试题jvm+spring+redis+MQ+微服务
Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、
Netty
写代码的珏秒秒
·
2022-03-29 14:55
编程
Java
程序员
java
华为
spring
Netty
分布式编码器写buffer队列逻辑剖析
目录写buffer队列我们跟到AbstractUnsafe的write方法中回到write方法中我们跟到setUnwritable(invokeLater)方法中前文传送门:抽象编码器MessageToByteEncoder写buffer队列之前的小节我们介绍过,writeAndFlush方法其实最终会调用write和flush方法write方法最终会传递到head节点,调用HeadContext
·
2022-03-29 14:24
Netty
分布式抽象编码器MessageToByteEncoder逻辑分析
目录MessageToByteEncoder首先看MessageToByteEncoder的类声明跟到allocateBuffer方法中前文回顾:
Netty
分布式编码器及写数据事件处理MessageToByteEncoder
·
2022-03-29 14:18
Netty
分布式编码器及写数据事件处理使用场景
目录概述编码器第一节:writeAndFlush的事件传播我们看一个最简单的使用的场景我们跟到writeAndFlush方法中我们跟到invokeWriteAndFlush中我们再看invokeFlush0方法概述上一小章我们介绍了解码器,这一章我们介绍编码器其实编码器和解码器比较类似,编码器也是一个handler,并且属于outbounfHandle,就是将准备发出去的数据进行拦截,拦截之后进行
·
2022-03-29 14:45
Netty
分布式解码器读取数据不完整的逻辑剖析
方法我们看cumulator属性我们回到channRead方法中概述在我们上一个章节遗留过一个问题,就是如果Server在读取客户端的数据的时候,如果一次读取不完整,就触发channelRead事件,那么
Netty
·
2022-03-29 11:13
Netty
分布式固定长度解码器实现原理剖析
固定长度解码器上一小节:解码器读取数据不完整的逻辑剖析我们了解到,解码器需要继承ByteToMessageDecoder,并重写decode方法,将解析出来的对象放入集合中集合,ByteToMessageDecoder中可以将解析出来的对象向下进行传播,这一小节带大家剖析一个最简单的解码器FixedLengthFrameDecoder,从它入手了解码器的相关原理FixedLengthFrameDe
·
2022-03-29 11:09
Netty
分布式ByteBuf使用SocketChannel读取数据过程剖析
目录Server读取数据的流程我们首先看NioEventLoop的processSelectedKey方法这里会走到DefaultChannelConfig的getAllocator方法中我们跟到static块中回到NioByteUnsafe的read()方法中我们跟进recvBufAllocHandle继续看doReadBytes方法跟到record方法中章节总结我们第三章分析过客户端接入的流程
·
2022-03-29 11:09
Nett分布式分隔符解码器逻辑源码剖析
目录分隔符解码器我们看其中的一个构造方法我们跟到重载decode方法中我们看初始化该属性的构造方法章节总结前文传送门:
Netty
分布式行解码器逻辑源码解析分隔符解码器基于分隔符解码器DelimiterBasedFrameDecoder
·
2022-03-29 11:37
Netty
分布式行解码器逻辑源码解析
目录行解码器LineBasedFrameDecoder首先看其参数我们跟到重载的decode方法中我们看findEndOfLine(buffer)方法前文传送门:
Netty
分布式解码器读取数据不完整的逻辑剖析这一小节了解下行解码器
·
2022-03-29 11:03
各大框架都在使用的Unsafe类,到底有多神奇?
前言几乎每个使用Java开发的工具、软件基础设施、高性能开发库都在底层使用了sun.misc.Unsafe,比如
Netty
、Cassandra、Hadoop、Kafka等。
·
2022-03-28 21:12
jvmjava
Netty
分布式ByteBuf使用subPage级别内存分配剖析
目录subPage级别内存分配我们其中是在构造方法中初始化的,看构造方法中其初始化代码在构造方法中创建完毕之后,会通过循环为其赋值这里通过normCapacity拿到tableIdx跟到allocate(normCapacity)方法中我们跟到PoolSubpage的构造方法中我们跟到addToPool(head)中我们跟到allocate()方法中我们继续跟进findNextAvail方法我们回
·
2022-03-28 19:39
Netty
分布式ByteBuf使用的回收逻辑剖析
目录ByteBuf回收这里调用了release0,跟进去我们首先分析free方法我们跟到cache中回到add方法中我们回到free方法中前文传送门:ByteBuf使用subPage级别内存分配ByteBuf回收之前的章节我们提到过,堆外内存是不受jvm垃圾回收机制控制的,所以我们分配一块堆外内存进行ByteBuf操作时,使用完毕要对对象进行回收,这一小节,就以PooledUnsafeDirect
·
2022-03-28 19:08
Netty
分布式ByteBuf缓冲区分配器源码解析
目录缓冲区分配器以其中的分配ByteBuf的方法为例,对其做简单的介绍跟到directBuffer()方法中我们回到缓冲区分配的方法然后通过validate方法进行参数验证缓冲区分配器顾明思议就是分配缓冲区的工具,在
netty
·
2022-03-28 17:34
Netty
分布式ByteBuf使用page级别的内存分配解析
目录
netty
内存分配数据结构我们看PoolArena中有关chunkList的成员变量我们看PoolSubpage的属性我们回到PoolArena的allocate方法我们跟进allocateNormal
·
2022-03-28 17:02
Netty
分布式ByteBuf使用命中缓存的分配解析
目录分析先关逻辑之前,首先介绍缓存对象的数据结构我们以tiny类型为例跟到createSubPageCaches方法中回到PoolArena的allocate方法中我们跟到normalizeCapacity方法中回到allocate方法中allocateTiny是缓存分配的入口回到acheForTiny方法中我们简单看下Entry这个类跟进init方法上一小节简单分析了directArena内存分
·
2022-03-28 17:00
Netty
分布式ByteBuf中PooledByteBufAllocator剖析
目录前言PooledByteBufAllocator分配逻辑逻辑简述我们回到newDirectBuffer中有关缓存列表,我们循序渐进的往下看我们在static块中看其初始化过程我们再次跟到initialValue方法中我们跟到createSubPageCaches这个方法中最后并保存其类型前言上一小节简单介绍了ByteBufAllocator以及其子类UnPooledByteBufAllocat
·
2022-03-28 17:26
Netty
分布式ByteBuf使用directArena分配缓冲区过程解析
目录directArena分配缓冲区回到newDirectBuffer中我们跟到newByteBuf方法中跟到reuse方法中跟到allocate方法中1.首先在缓存上进行分配2.如果在缓存上分配不成功,则实际分配一块内存上一小节简单分析了PooledByteBufAllocator中,线程局部缓存和arean的相关逻辑,这一小节简单分析下directArena分配缓冲区的相关过程directAr
·
2022-03-28 17:54
Netty
分布式ByteBuf的分类方式源码解析
目录ByteBuf根据不同的分类方式会有不同的分类结果1.Pooled和Unpooled2.基于直接内存的ByteBuf和基于堆内存的ByteBuf3.safe和unsafe上一小节简单介绍了AbstractByteBuf这个抽象类,这一小节对其子类的分类做一个简单的介绍ByteBuf根据不同的分类方式会有不同的分类结果我们首先看第一种分类方式1.Pooled和Unpooledpooled是从一块
·
2022-03-28 15:23
Netty
分布式ByteBuf使用的底层实现方式源码解析
目录概述AbstractByteBuf属性和构造方法首先看这个类的属性和构造方法我们看几个最简单的方法我们重点关注第二个校验方法ensureWritable(length)我们跟到扩容的方法里面去最后将写指针后移length个字节概述熟悉Nio的小伙伴应该对jdk底层byteBuffer不会陌生,也就是字节缓冲区,主要用于对网络底层io进行读写,当channel中有数据时,将channel中的数据
·
2022-03-28 15:18
Netty
分布式pipeline管道传播事件的逻辑总结分析
目录问题分析首先看第一个问题我们看一下ChannelInitializer这个类的继承关系回到callHandlerCallbackLater方法中紧接着我们看第二个问题章节总结我们在第一章和第三章中,遗留了很多有关事件传输的相关逻辑,这里带大家一一回顾问题分析首先看两个问题:1.在客户端接入的时候,NioMessageUnsafe的read方法中pipeline.fireChannelRead(
·
2022-03-28 15:16
Netty
分布式pipeline管道异常传播事件源码解析
目录传播异常事件简单的异常处理的场景我们跟到invokeChannelRead这个方法我还是通过两种写法来进行剖析跟进invokeExceptionCaught方法跟到invokeExceptionCaught方法中讲完了inbound事件和outbound事件的传输流程,这一小节剖析异常事件的传输流程传播异常事件简单的异常处理的场景@OverridepublicvoidchannelRead(C
·
2022-03-28 13:05
Netty
分布式pipeline管道传播outBound事件源码解析
目录outbound事件传输流程这里我们同样给出两种写法跟到其write方法中:跟到findContextOutbound中回到write方法:继续跟invokeWrite0我们跟到HeadContext的write方法中了解了inbound事件的传播过程,对于学习outbound事件传输的流程,也不会太困难outbound事件传输流程在我们业务代码中,有可能使用wirte方法往写数据:publi
·
2022-03-28 13:03
Netty
分布式pipeline传播inbound事件源码分析
目录传播inbound事件这里给大家看两种写法我们先以写法2为例,将这种写法进行剖析我们跟进invokeChannelRead方法:我们跟到invokeChannelRead方法中跟到findContextInbound方法我们跟到tailConext的channelRead方法中前一小结回顾:pipeline管道Handler删除传播inbound事件有关于inbound事件,在概述中做过简单的
·
2022-03-28 13:59
Netty
分布式pipeline管道Handler的删除逻辑操作
目录删除handler操作我们跟到getContextPrDie这个方法中首先要断言删除的节点不能是tail和head回到remove(ctx)方法上一小节我们学习了添加handler的逻辑操作,这一小节我们学习删除handler的相关逻辑删除handler操作如果用户在业务逻辑中进行ctx.pipeline().remove(this)这样的写法,或者ch.pipeline().remove(n
·
2022-03-28 13:57
Netty
分布式pipeline管道Handler的添加代码跟踪解析
checkMultiplicity(handler)中跟到filterName方法中跟到isInbound(handler)方法中我们回到最初的addLast()方法中我们跟进addLast0(newCtx)中前文传送门:
Netty
·
2022-03-28 11:47
Netty
分布式pipeline管道创建方法跟踪解析
目录概述pipeline的创建上一章节回顾:
Netty
分布式源码分析监听读事件概述pipeline,顾名思义,就是管道的意思,在
netty
中,事件在pipeline中传输,用户可以中断事件,添加自己的事件处理逻辑
·
2022-03-28 11:14
Netty
分布式源码分析监听读事件
前文传送门:NioSocketChannel注册到selector我们回到AbstractUnsafe的register0()方法:privatevoidregister0(ChannelPromisepromise){try{//省略代码//做实际的注册doRegister();neverRegistered=false;registered=true;//触发事件pipeline.invoke
·
2022-03-28 11:10
Netty
分布式NioSocketChannel注册到selector方法解析
前文传送门:
Netty
客户端接入流程NioSocketChannel创建我们回到最初的NioMessageUnsafe的read()方法:publicvoidread(){//必须是NioEventLoop
·
2022-03-28 11:09
Netty
源码分析(一) --- Server/Client启动流程,建立连接和Read剖析
一、
Netty
源码分析https://github.com/
netty
/
netty
/tree/4.1/example/src/main/java/io/
netty
/example/echo上找到echo
化身强盗_Bandit
·
2022-03-28 07:14
Netty
Netty
Netty
分布式客户端处理接入事件handle源码解析
目录处理接入事件创建handle我们看其RecvByteBufAllocator接口跟进newHandle()方法中继续回到read()方法我们跟进reset中前文传送门:客户端接入流程初始化源码分析上一小节我们剖析完成了与channel绑定的ChannelConfig初始化相关的流程,这一小节继续剖析客户端连接事件的处理处理接入事件创建handle回到上一章NioEventLoop的proces
·
2022-03-25 20:43
Netty
客户端接入流程NioSocketChannel创建解析
目录NioSocketChannel的创建回到上一小节的read()方法我们首先看readBufjdk底层相关的内容跟到父类构造方法中我们跟进其构造方法前文传送门:
Netty
客户端处理接入事件handle
·
2022-03-25 20:13
Netty
分布式客户端接入流程初始化源码分析
目录第一节:初始化NioSockectChannelConfig创建channel跟到其父类DefaultChannelConfig的构造方法中再回到AdaptiveRecvByteBufAllocator的构造方法中继续跟到ChannelMetadata的构造方法中回到DefaultChannelConfig的构造方法前文概述:之前的章节学习了server启动以及eventLoop相关的逻辑,e
·
2022-03-25 17:34
上一页
88
89
90
91
92
93
94
95
下一页
按字母分类:
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
其他