自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 git相关操作和命令的整理,持续更新。。。

之前只会用图形端的GIT中,命令行的比较陌生,整理下,供自己以后参考关键的名词:工作区:工作区 Index / Stage:暂存区 仓库:仓库区(或本地仓库) 远程控制:远程仓库 1:到项目目录下git init在文件夹中生成.git文件,后续的git add和git commit操作会将相关的文件存在.git文件中2。git pull...

2022-09-27 00:12:04 483 1

原创 dubbo负载均衡-RandomLoadBalance

dubbo负载均衡-RandomLoadBalance发表于 2019-10-13前言之前在面试中被问及dubbo的负载均衡,当时没有系统的回答出来,今天查阅了一下官方文档,于是出现了这篇文章。dubbo主要有4种负载均衡方式,分别是:基于权重随机算法的RandomLoadBalance、基于最少活跃调用数算法的LeastActiveLoadBalance、基于Hash一致性的Consist...

2022-01-01 17:27:38 2003

原创 阅读源码技巧总结

看不懂是吗?看不懂就对了,因为这个我确实是写给自己的,有些东西不太会表达~委派模式如果点击A方法的实现点击过去是一个接口,这个时候直接回来A方法然后点击被谁实现(option+command+b)即如果遇到委派模式,想要看方法的实现,不要用command+b,用option+command+b...

2020-11-23 13:39:02 8718 14

原创 求助文章:关于2pc和mysql参数innodb_flush_log_at_trx_commit的不解

首先mysql参数:innodb_flush_log_at_trx_commit0(延迟写、flush 同时进行)log buffer 将每秒一次地写入 log file 中,并且 log file 的 flush 操作同时进行。该模式下,在事务提交的时候,不会主动触发写入磁盘的操作。1(默认,实时写、flush)每次事务提交时 MySQL 都会把 log buffer 的数据写入 log file,并且刷到磁盘中去2(实时写,延迟刷)每次事务提交时 MySQL 都会把 log buffer

2020-07-19 17:16:04 3614 2

原创 Spring循环依赖

匆匆看一遍,总感觉少点什么,回过头来,果然,正愁这个月没有博文来写,只好图片来凑了让我想起了学生时代的黑板报ps:以下只是简单抽象三种方式,真实源码,比这复杂。单例Setter单例构造函数原型模式源码理解参考:https://www.cnblogs.com/zzq6032010/p/11406405.htmlhttps://blog.csdn.net/qq_16675313/article/details/79915568https://blog.csdn.net/chaitoud

2020-06-24 21:27:50 4520 4

原创 Spring factoryBeanInstanceCache在哪里进行put?

以为这个月不会再写博客了,万万没想到啊,哎,受伤了。。factoryBeanInstanceCache会缓存wrapper,只知道在都doCreateBean的时候进行了单例判断,如果是单例,会从factoryBeanInstanceCache中remove掉,找了好久没有找到在哪里put。遂记录下在spring中默认是autowireByType,在autowireByType中调用resolveDependency,下图从resolveDependency开始。最终又回到了AbstractAut

2020-06-24 15:34:56 4014 1

原创 Dubbo 在 zk上创建的节点

文章目录拾遗总结拾遗一共有四个configurators、providers、routers、consumers在provider中已经创建了providers@Override public void create(String path, boolean ephemeral) { if (!ephemeral) { if (checkE...

2020-05-01 13:56:14 6422 1

原创 Dubbo provider export 的 invoker到底是什么?

JavassistProxyFactory.getInvokerfinal Wrapper wrapper = Wrapper.getWrapper(proxy.getClass().getName().indexOf(36) < 0 ? proxy.getClass() : type);getWrapper->ret = makeWrapper©;在Wrapper var50...

2020-05-01 08:30:43 4244 2

原创 Dubbo overrideDirectoryUrl的作用?

文章目录在MockClusterIncoker的invoke方法中//从Directory中拿到目标地址,从而拿到mock值String value = directory.getUrl().getMethodParameter(mock);那mock不是在reference中配置的先生效的吗?,貌似所有的都是把?哪个这个directory.getUrl是谁?是registryDir...

2020-04-30 22:02:51 3975 1

原创 Dubbo 源码构建 file is read-only

2020-04-26 10:30:04 3784 1

原创 dubbo-admin构建问题总结

构建dubbo-admin的时候:manv clean package 卡在这里不能懂了[INFO] Downloading https://nodejs.org/dist/v9.11.1/node-v9.11.1-win-x64.zip to F:\Maven\repository\com\github\eirslett\node\9.11.1\node-9.11.1-win-x64.zi...

2020-04-20 17:32:24 6101 1

原创 springboot dubbo 问题记录

如果是单机的dubbo.registry.address=zookeeper://192.168.8.111:2181如果是集群的dubbo.registry.address=zookeeper://192.168.8.111:2181?backup=192.168.50.133:2181,192.168.50.134:2181zookeeper启动的是集群的,但是项目中配置单机的,也是能...

2020-04-20 12:49:57 6196 3

原创 Zookeeper Watcher 源码 收获

QuorumPeer的run方法中会setupRequestProcessor(组装processor),setupRequestProcessor被重写,根据单机或是集群,组装成三种不同的责任链,下图为单机模式服务端接收到客户端请求的时候,会通过NIOServerCnxn submitRequest 提交请求,提交请求之后进入责任链模式每经过责任链其中一个的processor时,会先将re...

2020-04-19 10:17:43 3410 1

原创 Zookeeper Leader选举 源码中,发送投票,统计投票的不解

文章目录问题解决问题termPredicate这里判断投票是否结束if (termPredicate(recvset, new Vote(proposedLeader, proposedZxid, logicalclock.get(), propo...

2020-04-16 11:07:57 3925 1

原创 通过zkClient API 模仿curator实现zookeeper分布式锁

文章目录代码结果zkClient API练习zookeeper的客户端比较常用的有zkClient和apache的curator,curator的fluent风格很是令人讨喜,用的比较多,查看了curator实现分布式锁的原理之后,希望根据自己的理解,通过zkClient api的方式实现分布式锁。大概算了下,175行代码,算上api的练习,一共用了三个小时,感觉自己好像个憨憨~代码Zk...

2020-04-15 10:12:12 3805

原创 Linux文件句柄限制总结

文章目录查看修改查看cat /proc/sys/fs/nr_open 每个进程最大限制ulimit -n 当前用户的当前shell 最大限制 (多个shell,每个都能到达最大限制)cat /proc/sys/fs/file-max 系统级别最大限制记住前三个就好了cat /proc/sys/fs/file-nr :[root@izm3mkp4g43hdqz ~]# ca...

2020-04-09 12:16:54 7871

原创 Netty事件传播机制

文章目录源码栗子拾遗源码栗子ch.pipeline().addLast(new InboundHandler1()); ch.pipeline().addLast(new InboundHandler2()); ch.pipeline().addLast(new OutboundHandler1()); ch.pipeline().addLast(new OutboundH...

2020-04-07 18:08:16 4859

原创 Netty inEventLoop方法?异步回调?Promise?

文章目录inEventLoop拾遗inEventLoop一直对这个方法不是很理解,众所周知是判断当前线程是不是在当前的EventLoop中对应的那个线程?一个channel对应一个且只对应一个EventLoop,一个Channel对应一个且只对应一个Pipeline,Pipline中包含handler(也是context),当前的Handler被Channel调用,那什么时候执行这段代码的...

2020-04-07 09:59:17 7410 2

原创 ConcurrentHashMap扩容?lastRun到底是个啥?(普通链表)

文章目录问题一:第一个for循环什么意思?问题二:第二个for循环中为什么以lastRun作为结束标志?问题三:lastRun到底十个什么?为什么不用在第二个循环里放?我不放的话,在哪里把lastRun后面的放到低位链或者高位链?总结连接这一小段看了两个小时!CHM看到如下这段代码给我干蒙了,我是真的菜,感觉自己没有智商~这段代码是CHM扩容中的普通链表扩容,看完之后这个人都不一样了,Dou...

2020-03-24 09:15:51 7851 4

原创 Condition中的transferForSignal()方法的不解

Node p = enq(node);···if (ws > 0 || !compareAndSetWaitStatus(p, ws, Node.SIGNAL)) LockSupport.unpark(node.thread);// 唤醒节点上的线程 return true;···通过enq放入同步队列了,他自己会慢慢的争抢锁,就像synch...

2020-03-22 16:03:48 5595

原创 IDEA构建JDK源码阅读的环境以及遇到的问题

文章目录背景构建缺少com.sun.tools包缺少sun.awt.UNIXToolkit 和 sun.font.FontConfigManager这两个类导致项目报错阅读源码的时候,点击进入方法关联到了jdk的源码上自身的源码上其他问题debug的时候,误点Alternative source availble for the class xxxx 的disable编译过程中报java:OutO...

2020-03-21 16:47:33 8919 1

原创 银行家算法

可利用资源向量(Available):系统还可以分配的资源最大需求矩阵(Max):进程的最大资源需要分配矩阵(Allocation):进程已经获得的资源需求矩阵(Need):进程还需要获得的资源P1、P2、P3、P4是四个贷款人A、B、C是每个贷款人所需要贷款的项目比如P1需要A项目贷款3元、B项目贷款2元、C项目贷款2元,只有都贷款成功P1才算贷款成功,才能完成自己工程。银行可贷...

2020-03-21 07:54:18 5420 2

原创 宝藏图,引起的一堆问题,轻量级锁的不解(Synchronized锁的升级)~

文章目录背景遗憾的是线程1释放的时候,为什么失败的时候,是唤醒被挂起的那些线程?膨胀流程图为什么要拷贝mark word?疑问?轻量级锁到底是两条以上的线程还是两条线程争抢同一个锁会膨胀为重量级锁?到底什么时候膨胀为重量级锁?什么是全局安全点?拾遗背景看一看synchronized的升级原理,结果挖到了这样一个宝藏图:其中有一个不解,就是最后的轻量级锁的释放,这里为什么唤醒了其他线程?很...

2020-03-19 23:29:51 2204 1

原创 Join()会不会释放锁?

文章目录答案Demo分析拾遗答案会不过不能确切的说Demo网上找了很久没有找到答案,从书中找答案,《Java并发编程艺术》、《Java并发编程实战》均没有找到,在《Java多线程编程核心技术》中找到了答案,这个Demo来自这本书的268页:package com.leesin.heightConcurrent.join;/** * @description: join会释放锁...

2020-03-18 23:22:48 8574 8

原创 park/unpark 拾遗

文章目录背景概览坑总结源码parkThreadBlockInVM tbivm(jt) (就是阻塞)unpark简要park 过程unpark 过程源码总结:parkunpark源码博文只要记住parkunpark再简洁(最终):背景看condition源码的时候,park这里没有明白,到底是怎么唤醒的,是立即唤醒,还是park自旋自动唤醒?这个还没查清楚,结果看有的博文,把我彻底搞晕了(...

2020-03-17 22:15:47 2002

原创 关于AQS中的enq方法的理解

自己太笨了,总感觉有点绕,就整理下吧~private Node enq(final Node node) { for (;;) { //tail默认就是null Node t = tail; if (t == null) { // Must initialize //因为tail默认是null,所以首次一定会进来 ...

2020-03-15 16:47:58 3465 3

原创 关于javacore和dump文件

Dump 就是对程序运行时内存上的信息进行转储, 让我们可以查看程序当时的运行情况. Dump 对于调优和排错是非常有用的工具.Heap DumpJava 运行时对象分配在堆内存上, Heap dump 就是对堆内存进行转储.生成jmap通过命令jmap -dump:live,format=b,file=***.hprof pideg:jmap -dump:live,format=b,...

2020-01-04 15:09:42 11498 1

原创 通过jcmd分析内存泄漏

初体验直接执行jcmd可以看到没有这个命令这是因为jcmd是1.7之后才出来的修改jdk版本,就可以用了,如下命令介绍获取所有的JVM首先,我们可以通过jcmd获取所有的JVM列表。>jcmd直接输入jcmd,就能列出所有运行中的JVM。7796840475921228 sun.tools.jcmd.JCmd7628 org.jetbrains.idea.m...

2020-01-04 15:09:29 3407 1

原创 通过jhat分析内存泄漏

dump堆信息jcmdjmapjconsolejvisualVM等等工具虚拟机添加-XX: HeapDumpOnOutOfMemoryError 选项, 在抛出 OutOfMemoryError 时, 会自动执行堆转储。分析dump文件jhat -J-Xmx512M dump.hprof说明:有时dump出来的堆很大,在启动时会报堆空间不足的错误,可加参数:jhat -J-Xmx...

2020-01-04 15:09:17 5324

原创 通过jstack分析cpu问题

这个命令不是用来分析内存泄漏的,使用来分析线程问题的。引用下之前写过的一个东西,可能会有帮助:工作填坑记,关于cpu100%只能通过jstack txt文件分析原因背景工作中客户嵌入我们的agent,导致cpu飙升到100%,给搞挂了,客户已经删了agent相关所有文件,将agent剔除了。线索:在这之前客户把平台关了。提供了jstack文件之前学习jvm的时候,了解过一些jst...

2020-01-04 15:09:06 3762

原创 通过MAT分析内存泄漏

获得dump文件通过命令jmap -dump:live,format=b,file=***.hprof pideg:jmap -dump:live,format=b,file=dump.hprof 48671shell启动脚本增加如下配置:2.1. -XX: HeapDumpOnOutOfMemoryError当OutOfMemoryError发生时自动生成 Heap Dump ...

2020-01-04 15:08:52 2844 1

原创 通过jmap分析内存泄漏

jmap -histo:live pid首先应该明确的是,jmap命令只能为内存泄漏提供一些线索和依据,但是不能确切的排查出代码中哪一行真正的出现了问题。举个例子:一个池子有1000L的容量,前面的800L红色的水一直没有问题,这时向其中倒入了201L蓝色的水,池子里面的水溢出了,我能确切的说是这800L红色的水的问题导致的吗?我能确切的说是这201L蓝色的水导致的吗?只能说怀疑是800L的问...

2020-01-04 15:08:36 10183

原创 通过jconsole分析内存泄漏

初体验(mac为例)终端输入:jconsole选择需要监控的程序,可以远程,可以本地,这里我们监控本地的为例:1:使用SSH工具,CD命令到JDK_HOME/BIN路径下。cd /app/jdk1.6.0_45/bin./jconsole 打开jconsole窗口2:选择应用进程点击”Connect”后 ,连接打开主窗口3:选中面板中的”MBeans”,并点开左边栏中的依次打开c...

2020-01-04 15:08:16 5138 2

原创 通过jinfo分析内存泄漏

作用查看JVM参数(常用)查看系统参数,即可通过System.getProperty(key)获得的参数(常用)修改JVM参数(少用)分析core文件(少用)这里看到这个命令主要是为了查看和修改参数的,所以可以说对于内存泄漏没有太大的帮助。而且分析core文件这个功能我自己也没有尝试成功。至于它的详细用法就不介绍了。...

2020-01-04 15:08:05 2472

原创 通过jstat分析内存泄漏

jstat -gc pid [interval]jstat -gc 52691 1000Full gc 很多包括程序运行以来共发生YGC(Young GC)次数,耗时(s),发生FGC(Full GC)次数,耗时(s),总耗时GCT(GC Time)。jstatjstat 是一个非常强大的 JVM 监控工具,一般用法是:1. jstat [-options] pid interva...

2020-01-04 15:07:47 4204

原创 通过jvisualvm分析内存泄漏

到jdk的目录下的bin下执行jvisualvm进去之后,如图上面是有visual GC这个工具的,但是真实的我刚打开的时候是没有的,需要:找到希望安装的插件进行安装,因为visual GC这个插件我已经安装过了所以在已安装里面这里我们再安装下VisualVM-JConsole这个插件然后关掉原来的窗口,再次启动因为看效果比较慢,所以 java -Xmx201k -Xmn20...

2020-01-04 15:07:12 10481

原创 Java获取Aix系统cpu和内存使用率

背景需要增加熔断功能,但是之前写的是linux系统,在Aix系统中失效了,需要重新写。原来的linux用的是/proc/meminfo、/proc/stat这两个文件进行监控的,但是Aix中没有这两个文件。而且top命令也是不支持的,所以只能重写思路一:topas在linux中有top命令,在Aix中与之对应的是topas命令topas命令详解:https://blog.csdn.ne...

2020-01-02 11:52:47 4769 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除