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
nettyjava后端
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
Netty
分布式NioEventLoop任务队列执行源码分析
目录执行任务队列跟进runAllTasks方法:我们跟进fetchFromScheduledTaskQueue()方法回到runAllTasks(longtimeoutNanos)方法中回到runAllTasks(longtimeoutNanos)方法章节小结前文传送门:NioEventLoop处理IO事件执行任务队列继续回到NioEventLoop的run()方法:protectedvoidru
·
2022-03-25 17:00
Netty
源码分析NioEventLoop线程的启动
目录NioEventLoop开启方法跟进inEventLoop()方法跟一下addTask(task)回顾一下初始构造方法我们跟进doStartThread()方法中回顾下execute()方法这里我们继续看register方法之前的小节我们学习了NioEventLoop的创建以及线程分配器的初始化,那么NioEventLoop是如何开启的呢,我们这一小节继续学习NioEventLoop开启方法N
·
2022-03-25 16:58
Netty
源码分析NioEventLoop初始化线程选择器创建
前文传送门:NioEventLoop创建初始化线程选择器回到上一小节的MultithreadEventExecutorGroup类的构造方法:protectedMultithreadEventExecutorGroup(intnThreads,Executorexecutor,EventExecutorChooserFactorychooserFactory,Object...args){//代码
·
2022-03-25 16:58
Netty
源码解析NioEventLoop创建的构造方法
目录前文传送门:
Netty
源码分析NioEventLoop回到上一小节的MultithreadEventExecutorGroup类的构造方法:protectedMultithreadEventExecutorGroup
·
2022-03-25 16:58
Netty
源码分析NioEventLoop执行select操作入口
分析完了selector的创建和优化的过程,这一小节分析select相关操作select操作的入口,NioEventLoop的run方法:protectedvoidrun(){for(;;){try{switch(selectStrategy.calculateStrategy(selectNowSupplier,hasTasks())){caseSelectStrategy.CONTINUE:c
·
2022-03-25 16:53
Netty
分布式NioEventLoop优化selector源码解析
目录优化selectorselector的创建过程代码剖析这里一步创建了这个优化后的数据结构最后返回优化后的selector优化selectorselector的创建过程在剖析selector轮询之前,我们先讲解一下selector的创建过程回顾之前的小节,在创建NioEventLoop中初始化了唯一绑定的selector:NioEventLoop(NioEventLoopGroupparent,
·
2022-03-25 16:19
Netty
之DefaultAttributeMap与AttributeKey的机制和原理
一、介绍和原理分析1.什么是DefaultAttributeMap?DefaultAttributeMap是一个数组+链表结构的线程安全Map。2.什么是AttributeKey?AttributeKey可以想象成一个缓存set,存放了一组key的集合,与DefaultAttributeMap之间的关系是,后者中的哈希图存放键值对(k-v)的v即是AttributeKey。有了AttributeK
延年有余
·
2022-03-25 13:00
Netty
启动流程注册多路复用源码分析
目录回到上一小节的代码:finalChannelFutureinitAndRegister(){Channelchannel=null;try{//创建channelchannel=channelFactory.newChannel();//初始化channelinit(channel);}catch(Throwablet){//忽略非关键代码}//注册channelChannelFuturere
·
2022-03-25 11:28
Netty
分布式Server启动流程服务端初始化源码分析
目录第一节:服务端初始化group方法初始化成员变量初始化客户端Handler第一节:服务端初始化首先看下在我们用户代码中
netty
的使用最简单的一个demo://创建boss和worker线程(1)EventLoopGroupbossGroup
·
2022-03-25 11:24
Netty
分布式server启动流程Nio创建源码分析
NioServerSocketChannel创建继承关系绑定端口端口封装成socket地址对象跟进initAndRegister()方法创建channel父类的构造方法将jdk的channel设置为非阻塞模式前文传送门
Netty
·
2022-03-25 11:14
Netty
启动流程服务端channel初始化源码分析
目录服务端channel初始化回顾上一小节initAndRegister()方法init(Channel)方法前文传送门
Netty
分布式server启动流程服务端channel初始化回顾上一小节initAndRegister
·
2022-03-25 11:42
(
JAVA后端
)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好
>作者(转载请注明出处):Happy王子乐个人GitHub(喜欢的还请点个Star、flow一下):[https://github.com/HappyWjl](https://github.com/HappyWjl)一、环境搭建相关环境软件:JDK1.8、IDEA、Gradle、MySQL、Redis、Navicat(可选,方便查看数据)简单介绍下用到的东西:编译器用的是IDEA(ps:比ecli
Happy王子乐
·
2022-03-25 08:34
入门项目
毕业设计
毕业设计/练手项目
Java笔记之从IO模型到
Netty
框架学习初识篇
目录什么是
Netty
IO模型BIOBIO编程简单流程BIO简单实例NIOBufferBuffer基本使用Buffer四个主要属性Channel本地文件写案例本地文件读案例本地文件拷贝案例Selector
·
2022-03-24 19:25
分布式
Netty
源码分析EventLoopGroup及介绍
目录EventLoopGroup介绍功能1:先来看看注册Channel功能2:执行一些Runnable任务EventLoop介绍NioEventLoop介绍EpollEventLoop介绍后续EventLoopGroup介绍在前面一篇文章中提到了,EventLoopGroup主要负责2个事情,这里再重复下:它主要包含2个方面的功能,注册Channel和执行一些Runnable任务。功能1:先来看看
·
2022-03-24 19:51
分布式
Netty
源码分析概览
demoEventLoopGroup介绍功能1:先来看看注册Channel功能2:执行一些Runnable任务ChannelPipeline介绍bind过程sync介绍误区4后续服务器端demo看下一个简单的
Netty
·
2022-03-24 19:51
Netty
事件循环主逻辑NioEventLoop的run方法分析
目录
Netty
事件循环主逻辑初始化EventLoop处理读事件注意
Netty
事件循环主逻辑
Netty
事件循环主逻辑在NioEventLoop.run中的processSelectedKeys函数中protectedvoidrun
·
2022-03-24 19:20
netty
服务端辅助类ServerBootstrap创建逻辑分析
目录ServerBootstrap创建核心参数初始化流程首先执行绑定注册自身到EventLoop绑定端口逻辑ServerBootstrap创建ServerBootstrap为
netty
建立服务端的辅助类
·
2022-03-24 19:20
Netty
源码分析NioEventLoop处理IO事件相关逻辑
目录NioEventLoop的run()方法:processSelectedKeys()方法processSelectedKeysOptimized(selectedKeys.flip())方法processSelectedKey(k,(AbstractNioChannel)a)方法之前我们了解了执行select()操作的相关逻辑,这一小节我们继续学习轮询到io事件的相关逻辑:NioEventLo
·
2022-03-24 19:19
Tomcat处理请求的线程模型详解
目录一、前言二、tomcat结构三、探讨tomcat是如何处理请求1、初始化2、如何处理客户端请求总结一、前言
JAVA后端
项目,运行在容器tomcat中,由于现在springboot的内置tomcat容器
·
2022-03-24 17:10
1小时点击量破千万,阿里巴巴首发:Java核心框架指导手册
手册分为三个部分:第一部分:解读MyBatis框架中关于接口层和配置文件解析过程;第二部分微服务Dubbo通信架构高扩展性架构设计原理,深度剖析
Netty
通信方式、Mina通信方式、Grizzly通信方式等
Java爱好狂
·
2022-03-23 23:15
java
面试
开发语言
数据库
spring
boot
干掉 Xshell?这款开源的终端工具逼格更高
作为一名
Java后端
开发,日常工作中免不了要和Linux服务器打交道,因为生产环境基本上都是部署在Linux环境下的。以前呢,我会选择Xshell来作为终端进行远程操作。
沉默王二
·
2022-03-23 23:42
编程技术
Java程序员进阶之路
linux
arm开发
运维
Spark启动及提交流程内部核心原理剖析
Netty
在探索Spark启动及提交流程的内部核心原理之前,
·
2022-03-23 12:18
spark
RocketMQ之NameServer架构设计及启动关闭流程源码分析
目录NameServer1.架构设计2.核心类与配置NamesrvControllerNamesrvConfig
Netty
ServerConfigRouteInfoManager3.启动与关闭流程3.1
·
2022-03-22 19:31
netty
项目注册到eureka
需要解决前端的websocket请求通过springcloud-gateway网关均衡分发到集群中的
netty
服务中,实现系统的高可用。
·
2022-03-22 10:24
互联网后端技术栈一览,写得太好了!
使用
Java后端
技术的目的就是构建业务应用,为用户提供在线或者离线服务。因此,一个业务应用需要哪些技术、依赖哪些基础设施就决定了需要掌握的后端技术有哪些。
·
2022-03-22 09:21
java
上一页
129
130
131
132
133
134
135
136
下一页
按字母分类:
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
其他