- 博客(20)
- 资源 (14)
- 收藏
- 关注
原创 Netty+源码解析(九)_+connect+过程和+bind+过程分析
Netty 源码分析系列:Netty 源码解析(一): 开始Netty 源码解析(二): Netty 的 ChannelNetty 源码解析(三): Netty 的 Future 和 PromiseNetty 源码解析(四): Netty 的 ChannelPipelineNetty 源码解析(五): Netty 的线程池分析Netty 源码解析(六): Channel 的 register 操作Netty 源码解析(七): NioEventLoop 工作流程Netty 源码解析(八): 回
2022-01-25 10:12:17 164
原创 LeetCode算法常用Java API
集合在刷题中,各种数据结构是我们常常用到的,例如栈实现迭代、哈希存储键值对等等,我们来看看常用集合和相关api。类/接口描述方法String字符串charAt toCharArray split substring indexOf lastIndexOf replace lengthList列表add remove get size subListStack栈push pop peek isEmpty sizeQueue队列offer poll p
2021-10-12 03:00:00 665 1
转载 Spring IOC 容器源码分析
Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器。既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文并不能让你成为 Spring 专家,不过一定有助于大家理解 Spring 的很多概念,帮助大家排查应用中和 Spring 相关的一些问题。本文采用的源码版本是 4.3.11.RELEASE,算是 5.0.x 前比较新的版本了。为了降低难度,本文所说的所有的内容都是基于 xml 的配置的方式,实际使用已经很少人
2021-07-14 14:32:00 83
原创 Java 八股文
一、Java 基础知识1、Object 类相关方法getClass 获取当前运行时对象的 Class 对象。hashCode 返回对象的 hash 码。clone 拷贝当前对象, 必须实现 Cloneable 接口。浅拷贝对基本类型进行值拷贝,对引用类型拷贝引用;深拷贝对基本类型进行值拷贝,对引用类型对象不但拷贝对象的引用还拷贝对象的相关属性和方法。两者不同在于深拷贝创建了一个新的对象。equals 通过内存地址比较两个对象是否相等,String 类重写了这个方法使用值来比较是否相等。toSt
2021-05-10 22:45:50 373
转载 Netty+源码解析系列
我将原来的文章拆分为了以下九篇文章,基本上每篇都很短,很快就可以看完一篇了。希望大家不要再将该文章放到收藏夹了,从现在开始阅读吧。当前 => Netty 源码解析(一): 开始Netty 源码解析(二): Netty 的 ChannelNetty 源码解析(三): Netty 的 Future 和 PromiseNetty 源码解析(四): Netty 的 ChannelPipelineNetty 源码解析(五): Netty 的线程池分析Netty 源码解析(六): Channel 的
2020-09-19 13:11:55 204 1
原创 netty 堆外内存泄露排查盛宴
这篇文章对于排查使用了 netty 引发的堆外内存泄露问题,有一定的通用性,希望对你有所启发背景最近在做一个基于 websocket 的长连中间件,服务端使用实现了 socket.io 协议(基于websocket协议,提供长轮询降级能力) 的 netty-socketio 框架,该框架为 netty 实现,鉴于本人对 netty 比较熟,并且对比同样实现了 socket.io 协议的其他...
2018-09-04 06:51:39 35
原创 小闪对话:微信长连系统的设计(一)
什么?聊个天就把技术给学了?imageimageimageimageimageimageimageimage聊天结束之后,博士露出了猥琐的笑容,心里想:这小子过段时间还会来找我的:一个公网IP怎么够呢,得上负载均衡呀;长连集群模式下又是如何实现单聊群聊;如何做到平滑重启长连服务器;如何把IM抽取出...
2018-08-03 07:34:35 33
原创 《跟闪电侠学Netty》开篇:Netty是什么?
在开始了解Netty是什么之前,我们先来回顾一下,如果我们需要实现一个客户端与服务端通信的程序,使用传统的IO编程,应该如何来实现?IO编程我们简化下场景:客户端每隔两秒发送一个带有时间戳的"hello world"给服务端,服务端收到之后打印。为了方便演示,下面例子中,服务端和客户端各一个类,把这两个类拷贝到你的IDE中,先后运行 IOServer.java 和IOClient.java可...
2018-06-18 15:56:05 25
原创 IntelliJ IDEA 2018.1正式发布
工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码的阅读,为什么不试一试?总以为jetbrains已经将IntelliJ IDEA优化到极致,前几天刚发版的2018.1再次让人眼前一亮:什么,还能这么玩?下面,我们来快速了解一下 IDEA 2018.1 最新版本给我们带来哪些惊喜1.java stream代码自动生成更加智能流api代码自动生成IDEA对...
2018-03-31 22:28:35 43
原创 mac下编译openjdk1.9及集成clion动态调试
晚上被小伙伴问道如何使用ide进行jvm源码的调试,刚好前段时间花了点时间折腾了一下,mac最新版本下jvm9顺利编译通过,并且可以完美集成clion进行调试(支持windows),下面记录一下全过程,如果想看效果的话,可以直接拉到集成到clion进行调试小节末尾mac下openjdk源码编译过程准备编译环境准备我的mac的版本如下image.png由于openjdk1.9之前...
2017-12-27 13:28:36 62
原创 netty源码分析之writeAndFlush全解析
前言在前面的文章中,我们已经详细阐述了事件和异常传播在netty中的实现,(netty源码分析之pipeline(一),netty源码分析之pipeline(二)),其中有一类事件我们在实际编码中用得最多,那就是 write或者writeAndFlush,也就是我们今天的主要内容主要内容本文分以下几个部分阐述一个java对象最后是如何转变成字节流,写到socket缓冲区中去的pipeli...
2017-01-09 06:17:48 22
原创 netty源码分析之pipeline(二)
前言netty源码分析之pipeline(一)中,我们已经了解了pipeline在netty中所处的角色,像是一条流水线,控制着字节流的读写,本文,我们在这个基础上继续深挖pipeline在事件传播,异常传播等方面的细节主要内容接下来,本文分以下几个部分进行netty中的Unsafe到底是干什么的pipeline中的headpipeline中的inBound事件传播pipeline...
2017-01-03 08:47:28 22
原创 netty源码分析之pipeline(一)
通过前面的源码系列文章中的netty reactor线程三部曲,我们已经知道,netty的reactor线程就像是一个发动机,驱动着整个netty框架的运行,而服务端的绑定和新连接的建立正是发动机的导火线,将发动机点燃netty在服务端端口绑定和新连接建立的过程中会建立相应的channel,而与channel的动作密切相关的是pipeline这个概念,pipeline像是可以看作是一条流水线...
2016-12-26 06:59:14 14
原创 netty源码分析之新连接接入全解析
本文收获通读本文,你会了解到1.netty如何接受新的请求2.netty如何给新请求分配reactor线程3.netty如何给每个新连接增加ChannelHandler其实,远不止这些~前序背景读这篇文章之前,最好掌握一些前序知识,包括netty中的reactor线程,以及服务端启动过程下面我带你简单地回顾一下1.netty中的reactor线程netty中最核心的东西莫过于两...
2016-12-19 06:56:45 15
原创 netty源码分析之服务端启动全解析
backgroundnetty 是一个异步事件驱动的网络通信层框架,其官方文档的解释为Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly s...
2016-12-10 20:38:22 24
原创 netty源码分析之揭开reactor线程的面纱(三)
上两篇博文(netty源码分析之揭开reactor线程的面纱(一),netty源码分析之揭开reactor线程的面纱(二))已经描述了netty的reactor线程前两个步骤所处理的工作,在这里,我们用这张图片来回顾一下:reactor线程三部曲简单总结一下reactor线程三部曲轮询出IO事件处理IO事件处理任务队列今天,我们要进行的是三部曲中的最后一曲【处理任务队列】...
2016-12-05 07:10:55 22
原创 netty源码分析之揭开reactor线程的面纱(二)
如果你对netty的reactor线程不了解,建议先看下上一篇文章netty源码分析之揭开reactor线程的面纱(一),这里再把reactor中的三个步骤的图贴一下reactor线程我们已经了解到netty reactor线程的第一步是轮询出注册在selector上面的IO事件(select),那么接下来就要处理这些IO事件(process selected keys),本篇文章我...
2016-11-28 07:08:48 29
原创 netty源码分析之揭开reactor线程的面纱(一)
netty最核心的就是reactor线程,对应项目中使用广泛的NioEventLoop,那么NioEventLoop里面到底在干些什么事?netty是如何保证事件循环的高效轮询和任务的及时执行?又是如何来优雅地fix掉jdk的nio bug?带着这些疑问,本篇文章将庖丁解牛,带你逐步了解netty reactor线程的真相[源码基于4.1.6.Final]reactor 线程的启动NioEve...
2016-11-20 12:47:38 21
原创 netty源码分析之nio线程个数以及线程命名规则
概述netty是一个以高性能著称的网络通信框架,许多开源项目都使用了netty作为底层网络通信框架,如avro,dubbo,nats;本文将从源码的角度讲述netty在确定线程个数方面如何保证应用程序性能最优,源码基于netty-4.1.6.Final线程个数在何时达到最优我们知道,在一个应用中,如果cpu计算的时间为Tcpu,io操作的时间为Tio,系统的cpu核数为Ncpu,线程个数为N...
2016-11-13 22:41:48 40
原创 一次netty"引发的"诡异old gc问题排查过程
应用:新美大push服务-长连通道sailfish日推送消息:180亿QPS峰值: 35W最大实时在线用户:2200Wpush服务简单结构为客户端sdk<=>长连通道<=>pushServer1.客户端sdk: 负责提供客户客户端收发push的api2.长连通道:负责维持海量客户端连接3.pushServer:负责给业务方提供收发push的rpc...
2016-09-11 14:51:45 50
data-structure-visualizations.zip
2020-12-30
quartz/Cron/Crontab表达式在线生成工具
2019-01-02
amr格式转mp3,AMR Player 工具
2018-01-23
mobiscroll 移动端日期插件,switchery 开关插件
2018-01-23
portobuf 工具
2018-01-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人