摘要:
实际应用场景:springboot项目启动成功后执行一段代码,如系统常量,配置、代码集等等初始化操作;执行多个方法时,执行顺序使用Order注解或Order接口来控制。 Springboot给我们提供了两种方式 第一种实现ApplicationRunner接口 package org.mundo.d 阅读全文
摘要:
背景 经常做后端服务开发的同学,或多或少都遇到过 CPU 负载特别高的问题。 尤其是在周末或大半夜,突然群里有人反馈线上机器负载特别高,不熟悉定位流程和思路的同学可能登上服务器一通手忙脚乱,定位过程百转千回。 对此,也有不少同学曾经整理过相关流程或方法论,类似把大象放进冰箱要几步 传统的方案一般是4 阅读全文
摘要:
本文转自:https://www.cnblogs.com/hexinwei1/tag/Java%E5%B9%B6%E5%8F%91/ 一、总览 线程池类ThreadPoolExecutor的相关类需要先了解: (图片来自:https://javadoop.com/post/java-thread-p 阅读全文
摘要:
在Java并发中,我们最初接触的应该就是synchronized关键字了,但是synchronized属于重量级锁,很多时候会引起性能问题,volatile也是个不错的选择,但是volatile不能保证原子性,只能在某些场合下使用。 像synchronized这种独占锁属于悲观锁,它是在假设一定会发 阅读全文
摘要:
Tomcat报Error parsing HTTP request header 今天前端上传图片,需要通过js裁剪,最终把一张图片转成了Base64编码字符串,提交的时候 抛了 Error parsing HTTP request header 通过debug调试发现是Tomcat的header缓 阅读全文
摘要:
当jvm出现致命错误时,会生成一个错误文件 hs_err_pid<pid>.log,其中包括了导致jvm crash的重要信息,可以通过分析该文件定位到导致crash的根源,从而改善以保证系统稳定。当出现crash时,该文件默认会生成到工作目录下,然而可以通过jvm参数指定生成路径(JDK6中引入) 阅读全文
摘要:
致命错误出现的时候,JVM生成了hs_err_pid <pid> .log这样的文件,其中经常包含了虚拟机崩溃原因的重要信息。因为经常遇到,在介绍文章里,我选择了一个,并且逐段分析情况包含的内容(文件可以在文章最后下载)。有时情况下文件是创建在工作目录下的(如果没权限创建的话)JVM会尝试把文件写到 阅读全文
摘要:
java程序中出现死锁问题,如果不了解排查方法,是束手无策的,今天咱们用三种方法找到死锁问题。 运行下面代码 package com.jvm.visualvm; /** * <a href="http://www.itsoku.com/archives">Java干货铺子,只生产干货,公众号:jav 阅读全文
摘要:
1、配置方法在JAVA_OPTIONS变量中增加-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目录}。例如:export JAVA_OPTS="-Xms2048M -Xmx2048M -Xmn682M -XX:MaxPermSize=96M"2 阅读全文
摘要:
1.gc配置参数 1.1 控制台打印gc日志 -verbose:gc -XX:+PrintGCDetails -XX:+PrintHeapAtGC(详细的gc信息) 1.2 输出gc日志到指定文件 -Xloggc: (例如: -Xloggc:C:\logs\gc.log) 1.3 Gc日志分块 -X 阅读全文