- 博客(28)
- 收藏
- 关注
原创 内存分析排查
一次堆外内存泄露的排查过程jvm堆外内存监控_java堆外内存监控_車輪の唄的博客-优快云博客Java内存占用分析 - 知乎 (zhihu.com)Java内存分析工具——jmap_IT技术分享网 (5ityx.com)java 进程占用系统内存过高分析_nonheap使用率高_fxh13579的博客-优快云博客解Bug之路-记一次JVM堆外内存泄露Bug的查找 - 知乎一次堆外内存泄露的排查过程【性能优化】Java 堆外内存的实战分析 - 简书 (jianshu.com)关于G1收集器参数Initia
2023-06-30 18:13:22
366
原创 如何找出消耗CPU最多的线程?
jstack -l PID> ./PID.stack //PID为进程PID。cat PID.stack |grep '线程PID十六进制' -C 8。对所有进程按CPU使用率进行排序,找出消耗最高的线程PID。此时已经找到了消耗CPU资源最多的线程,下面为排查问题过程。显示Java进程 PID 为 136 的java进程消耗最。4.这个线程PID是十进制的,将十进制线程pid。如何找出消耗CPU最多的线程?,查出里面消耗最高的进程,继续。找出所有当前进程的运行列表。查看一下线程在文件里做了啥。
2023-04-15 16:30:00
2059
原创 java8启动脚本
java8应用启动脚本:java7内存CPU备份:-server -Xmx2g -Xms2g -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMeth..
2022-06-23 00:02:52
371
原创 SpringCloudGateway&SpringBoot开启accesslog
SpringCloudGateway&SpringBoot开启accesslog
2022-03-01 18:08:35
2783
1
原创 SpringBoot异步线程池配置
配置线程池:import lombok.extern.slf4j.Slf4j;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import org.springframework.scheduling.concu.
2022-01-07 10:45:39
669
原创 记一次接口授权导致的500异常排查
有一个导出的接口通过postman调用是返回正常的响应体,但是发布到测试环境,通过浏览器请求时,会返回500通过浏览器请求通过Postman请求开始排查整个链路为nginx -> spring cloud gateway -> 业务服务首先从业务服务开始排查,增加一个log过滤器,打印下请求响应信息2021-05-24 14:43:00.447 aom-platform-[,] [http-nio-9991-exec-9] ERROR o.a.c.c.C.[
2021-05-24 18:04:52
1457
3
原创 记一次nginx 504排查
有一个导出接口,由于里面组装数据会很慢,直接表现为504 Gateway Time-out,时间为2min,梳理了下调用的链路,nginx -> spring gateway -> business server,里面打开了nginx的配置,如下:#user nobody;worker_processes 4;error_log /app/openresty/nginx/logs/error.log error;pid /app/openresty/nginx
2021-05-15 15:55:10
1124
原创 开发工具推荐
idea:Java开发IDE ZooInspector:Zookeeper数据查看工具 RegexMatchTracer:正则工具 Navicat:数据库可视化工具 Postman:http接口测试工具 SwitchHosts!:hosts管理工具
2020-09-08 16:43:35
164
原创 SpringBoot log4j2日志追踪
写在前面本文只讨论非分布式体系的日志追踪,如果项目使用了微服务、RPC等分布式框架的话,日志追踪有很成熟的框架,Google的Dapper,阿里的EagleEye,Twitter基于Google的Dapper论文开发的Zipkin通过本文将了解到什么是MDC、MDC应用中存在的问题、如何解决存在的问题MDC介绍简介:MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 、logback及log4j2 提供的一种方便在多线程条件下记录日志的功能。MDC
2020-09-04 16:26:46
2099
原创 通用mapper代码生成
通用mapper代码生成基于maven插件方式pom.xml <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7&l
2020-09-04 11:41:49
413
原创 SpringBoot2.0整合Redis
SpringBoot2.0整合Redis相关知识Redis 简介Redis 是一个开源的,基于内存中的,高性能的数据存储系统,它可以用作数据库、缓存和消息中间件。 Redis 支持多种类型的数据结构,如:string、hashes、lists、sets、sortedSets等。 Redis 内置了复制(replication)、LUA脚本(Lua scripting)、事务(transactions)、磁盘持久化(persistence)、LRU驱动事件(LRU eviction)等功能。 Re
2020-09-03 11:38:48
332
原创 一次springboot aop 不生效的奇葩分析之旅
一天不码点代码,心里就难受,度娘一波,copy了如下一段简单的aop代码,run起来,惊讶了,竟然没有生效。package com.foo.bar.aspect;import cn.hutool.json.JSONUtil;import java.util.Map;import java.util.Objects;import javax.servlet.http.HttpServletRequest;import javax.validation.constraints.NotNull.
2020-08-26 01:09:14
9447
5
原创 Nginx配置
nginx.conf#user www www;worker_processes auto;# mac [error] open() "/usr/local/Cellar/nginx/1.15.12/logs/nginx.pid" failed (2: No such file or directory)# 解决:cd /usr/local/Cellar/nginx/1.15.12/ mkdir logs touch error.logerror_log logs/error.lo.
2020-08-21 23:18:31
227
原创 JsonUtil工具类
import com.fasterxml.jackson.annotation.JsonInclude;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.DeserializationFeature;import com.fasterxml.jacks..
2020-08-20 19:25:07
530
原创 Postman中认证CAS
CAS-Protocol:https://apereo.github.io/cas/5.2.x/protocol/CAS-Protocol.html与一般token机制不同,想成功认证CAS需要sessionId与ticket两个这两个值可以去服务器查看日志获得sessionId:认证后的sessionId会存储在redis中,可以避免session丢失问题2020-08-20 15:23:19.319 [DEBUG] [qtp1665967079-42] com.foo..
2020-08-20 16:54:06
2440
原创 Spring Boot升级后之文件上传坑
Spring Boot升级后之文件上传坑SpringBoot又双叒叕出新版本啦,不加班的人们都在用SpringBoot了,What?你还在用xml配置,赶紧拥抱SpringBoot,以后迎娶白富美不是梦,最近一次系统改造需要将18年的老系统改造成SpringBoot,优雅发版,减少加班,走上云时代,拥抱微服务。。。二大,赶紧把这个幻想症患者带走咳咳咳。。。还是说正事,在改造的过程中遇到通过流文件上传的接口全部挂了,你没听错是全挂了怎么回事呢,听我娓娓道来,业务代码不外泄,所以来个模拟一、首先
2020-08-20 00:17:57
1228
原创 SpringBoot log4j2日志之旅
SpringBoot log4j2 完美配置解决方案1、首先配置 pom.xml 文件,将原有的 logback 移除,改用 log4j2 。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>
2020-08-10 17:01:08
498
1
原创 SpringBoot集成Mybatis双数据源+Druid连接池+集成通用mapper+分页插件
SpringBoot + Mybatis + DynamicDataSource配置动态双数据源,可以动态切换数据源。添加依赖加入Mybatis启动器,这里添加了Druid连接池、Mysql数据库驱动为例。 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</arti
2020-07-26 20:09:02
1019
原创 Spring boot请求/响应参数打印(修訂版)
原文鏈接:https://blog.youkuaiyun.com/jiahao1186/article/details/91870776关键词:请求参数,响应参数,过滤器,拦截器,日志过滤器,配置过滤器一、目的:对系统请求参数和响应参数,进行输出打印。支持表单提交及json提交。二、过滤器与拦截器 首先,了解一下过滤器和拦截器。两者功能很类似,但具体技术实现,相去甚远。对比两者的区别前,先理解一下AOP,AOP不是一种具体的技术,而是一种编程思想。在面向对象编程的过程中,我们很容易通过继承、多
2020-07-25 20:17:36
937
原创 Eclipse中使用Git管理代码
一.上传代码到远程仓库1.commit2.push二.解决冲突1.pull至本地仓库网上有详细的过程,不写了三.删除远程不需要的文件夹1.Team-Advanced-Untrack2.Team-Advanced-clean3.Team-commit4.commit and push5.去远端确认是否已经删除
2016-09-22 11:23:43
2081
原创 Java笔记--SpringMVC--@RequestMapping
在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter(“name”),另外一种是用注解@RequestParam直接获取。这里主要讲这个注解 一、基本使用,获取提交的参数 后端代码: Java代码 收藏代码 @RequestMapping(“/delUser.action”) public String delUser(
2016-08-28 22:39:54
1050
原创 JAVA笔记-三目运算符返回值规则
条件(三目)运算符:表达式 1 ? 表达式 2 :表达式 3 注意事项: 右结合性:a > b ? a : i > j ? i : j 相当于 a > b ? a : ( i > j ? i : j ) 三目运算符中:第二个表达式和第三个表达式中如果都为基本数据类型, 整个表达式的运算结果由容量高的决定。如:int x = 4; x > 4 ? 99.9 : 9;
2016-07-14 22:46:27
5139
原创 JAVA笔记-字符类型(char)--特殊
JAVA中基本类型有八种,其中char类型比较特殊。 一种字符类型(char): char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符),使用 Unicode 码代表字符,0~2^16-1(65535)。 注意事项: 不能为 0 个字符。 转义字符:\n 换行 \r 回车 \t Tab 字符 \” 双引号 \ 表示一个\ 两字符
2016-07-14 22:39:37
5659
原创 JAVA笔记-String笔记(常量池)
测试代码及注释如下:(仅供学习)package day01;/** * 字符串在创建对象时,推荐使用字面量形式 * 创建。因为在使用字面量创建时,若创建内容 * 相同的字符串时会重用对象,减少内存开销。 * 由于内容相同的字符串会重用对象,所以java * 要求字符串对象是不变对象,即:字符串对象 * 一旦创建,内容不可改变。若要改变字符串内容 * 则会创建新对象。 * @auth
2016-07-09 19:01:04
527
1
原创 JAVA笔记-Static与Final详解笔记
static 成员变量静态变量属于类的变量,所有类的实例共享的同一个变量。 直接使用类名读写这个变量 应用场景: 案例: public class Demo04 { public static void main(String[] args) { //静态变量属于类的 变量 //直接使用类名读写这个变量 Hoo.z = 10;
2016-07-02 16:07:07
2478
2
原创 JAVA笔记-多态的意义(向上转型与向下转型)
多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,就是同一种事物表现出的多种形态。编程其实就是一个将具体世界进行抽象化的过程,多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出来, 再通过这个抽象的事物, 与不同的具体事物进行对话。 对不同类的对象发出相同的消息将会有不同的行为。比如,你的老板让所有员工在九点钟开始工作, 他只要在九点钟的时候说:“开始工作”即可,而
2016-07-02 11:09:33
7195
1
原创 JAVA笔记-类的初始化及对象的初始化
类的初始化及对象初始化初学Java,觉得类的初始化与对象的初始化这一块真的特别重要,翻了很多大神前辈的整理资料,还是有些懵懂,决定将资料整理下,也希望对后来的初学者有些许帮助。上图为类的生命周期看到 方法时,有些懵懂,翻阅资料后,最后的结论为下面这句话:(疑问?1:没有方法的类,是不是意味着该类没有被初始化???)在编译生成class文件时,会自动产生两个方法,一
2016-06-26 13:19:24
4150
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人