自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RocketMQ tag不匹配

消费组消费消息显示tag不匹配,但检查配置是一样的tag消费端配置。

2024-03-20 14:09:48 175

原创 git Update failed cannot lock ref

去该项目下的.git文件里找到报错文件,本例中即为:.git/refs/tags/pre-RELEASE-PRE-20230817-03。删除该文件,重新pull,pull成功问题解决。百度了很多方案,过滤出了有效方案。

2023-08-22 09:52:29 721

原创 Could not resolve placeholder

编译后的target包下的配置文件名称是否跟启动类的环境一致(本次栽到这块了,耗费了两个小时,看源码,百度等等,坑已踩)1、检查编译后的target包里是否有该配置所在的文件。本质原因:项目启动未扫描到该配置,一般来说是配置不对。如果不在就clear,重新编译启动再去检查。2、检查启动的环境是否匹配。

2023-07-25 16:56:52 3412 1

原创 rocketmq客户端日志过大造成磁盘使用率占用过高

查看自定义客户端日志配置,分为两步第一步,配置rocketmq.client.logUseSlf4j=true启动参数 添加: -Drocketmq.client.logUseSlf4j=true 【推荐】或者启动类添加:System.setProperty("rocketmq.client.logUseSlf4j","true")第二步,配置logback日志配置检查项目中的配置第一步,配置在application.properties第二步,配置在logback.xml。

2023-07-04 11:23:50 2416

原创 @Validated+循环依赖报错分析解决

创建名为“myZmTest1”的bean时出错:名为“myZmTest1”的bean已作为循环引用的一部分注入到原始版本的其他bean[myZmTest2]中,但最终已被包装。这意味着所述其他bean不使用bean的最终版本大家都知道虽然在开发过程中,不建议出现循环依赖,但是Spring也做了兜底,提供了三级缓存用来解决循环依赖,但为什么循环依赖的类加了参数校验@Validated注解就解决不了了?

2023-01-09 15:04:10 2010 1

原创 CommunicationsException: Communications link failure

SQL自身问题场景曾解决过这种情况,发现是表的数据量过大、SQL未命中索引且查询筛选数据过多,导致SQL超时该情况问题解决:优化SQL,分批次查询系统资源不足场景也遇到过该情况,SQL分析发现,是非常简单的查询,执行仅需要毫秒级别,可以判断去与SQL本身无关。就去查看MySQL监控,发现报错时间段慢查询速率达到了峰值,mysql流量突增

2022-10-10 14:47:18 1495

原创 docker启动tomcat容器实例,浏览器访问失败

docker上使用tomcat镜像运行容器实例,在xshell上执行curl localhost:8080可以获取到tomcat页面信息,但是在页面输入ip+8080无法访问。每次重启Hyper-V管理器,再启动虚拟机后ip地址都会变化,优先解决了这个问题。因为终端上可以访问到,那么排除webapp下无文件的原因,可以判定为ip问题。2、设置自己的虚拟机,应用新建的虚拟交换机。

2022-09-30 14:47:32 1789

原创 分布式事务管理Atomikos

Atomikos是一个非常流行的开源事务管理器,并且可以嵌入到你的Spring Boot应用中。Tomcat应用服务器没有实现JTA规范,当使用Tomcat作为应用服务器的时候,需要使用第三方的事务管理器类来作为全局的事务管理器,而Atomikos框架就是这个作用,将事务管理整合到应用中,而不依赖于application server。

2022-09-15 17:53:07 4685

原创 电脑性能参数了解

目录1、处理器CPU核心数线程数基础频率(主频)加速频率(睿频)2、显卡1、处理器CPU核心数硬件上的真实对象核心数是指处理器主频提升上已力不从心,Intel和AMD在不用进行大规模开发的情况下,将现有产品发展成为理论性能更为强大的多核心处理器系统。单个cpu效率已经遇到瓶颈了,那么就换个角度,在数量上考虑

2022-09-06 17:31:30 6329

原创 NIO通信实现

目录 基于channel通道实现通信 服务端代码 客户端代码 通信结果 Channel通道与流的区别 基于Selector选择器服务端实现通信 服务端代码 通信结果

2022-08-18 17:06:40 535

原创 Guava Cache本地缓存

目录LoadingCache是什么?怎么使用?缓存过期机制Guava cache实现LRU回收机制缓存三大问题Guava cache与分布式缓存的区别?

2022-08-05 10:02:52 6626

原创 Java8 Stream使用整理

3、获取name+sex(唯一键)对应的所有信息List=>Map5、获取name+sex(唯一键)对应的IDList=>Map1、获取每个人所学的科目列表List=>MapMap转Map

2022-07-29 14:32:19 419

原创 Java8 Optional使用整理

get获取Optional的value,为null则抛出NoSuchElementException异常of将value封装为Optional对象,为null则抛出NullPointerException异常empty返回空Optional对象ofNullable将value封装为Optional对象,为null则将返回空对象。

2022-07-28 17:38:34 239

原创 Arthas watch命令使用

格式:watch 类全限定名 方法名 观察表达式 条件表达式可以观察到的信息:方法入参、方法返回值、抛出的异常信息、调用方法的对象观察表达式:默认{params, target, returnObj}观察事件点-b 方法调用前(观察入参时,方法中可能会有修改入参的操作)-s 方法返回后-e 方法抛出异常后jad demo.MathGame查看源代码watch demo.MathGame primeFactorsx 默认为1,等价于 watch demo.MathGame primeFactors -x 1观

2022-06-16 14:25:28 19559

原创 EasyExcel 单元格替换

目录场景:Java写excel需要将查不到的数据字段用“-”代替问题:字段为int类型,但是该字段需要接收“-”思路1:修改字段类型为String,组装list时赋值为“-”(❌)思路2:字段类型必须得是int类型,先写入,使用CellWriteHandler#afterCellDispos去替换(✔)实体类信息easyexcel将实体类list写入excel实现问题:字段为int类型,但是该字段需要接收“-”由于Java是强类型语言,只能是改为String类型。写入excel结果如下可以看

2022-06-15 14:45:34 2131

原创 接口入参过大报错404

目录报错详情背景介绍问题原因定位问题解决报错详情正常使用的接口突然报错404了背景介绍本接口是一个确认分货数据的接口,与第三方是以base64加密的excel文件流交互的问题原因定位由于本次文件大小达到了4M,所以怀疑是入参过大导致,所以入参设置为空调用,调用正常所以可以得出是因为post请求入参过大,大于默认大小问题解决查找post请求限制大小相关文档,可见默认大小为2M,修改tomcat默认post请求大小配置即可,可见SpringBoot pos

2022-05-17 10:28:53 942

原创 no suitable HttpMessageConverter found for response type [XXX]

目录1、背景2、报错详情3、代码定位4、问题解决1、背景使用Spring的RestTemplate进行网络请求,RestTemplate把数据从 HttpResponse 转换成Object的时候找不到合适的HttpMessageConverter2、报错详情Could not extract response: no suitable HttpMessageConverter found for response type [XXX] and content type [t

2022-04-21 15:57:59 10415 1

原创 Arthas使用本地

下载:下载 — Arthas 3.5.6 文档入门官方文档 :快速入门 — Arthas 3.5.6 文档按照入门简单示例操作(本地)1、启动官方示例math-game2、启动arthas我们现在要选择第二个Java进程,报错了问题解决:尝试使用不同的telnet端口:java -jar arthas-boot.jar --telnet-port 17824--http-port -1启动成功3、查看dashboard,可以看到main函数的线程....

2022-03-25 16:19:53 1760

原创 tk.mybatis踩坑

1、千万别使用 insert 或者 insertUseGeneratedKeys特点:毫无扩展性1)如果后续本表新增字段,那么这块必须也要更新。2)如果其他业务也是用本表,新增了字段。我们不知情,那么必定会有线上报错目前在用insertSelective...

2022-03-15 19:42:07 649

原创 SQL组合查询:(字段1, 字段2) in ((v1, v2),(v3, v4))

目录优化前优化后场景:数据库表两个字段组成唯一键,需要批量用唯一键查询记录UNIQUE KEY `uk_channel_org` (`channel`, `org`),优化前for (ChannelOrg channelOrg : channelOrgList) { //循环中查询数据库 ChannelOrgLevelConfigDO config = channelOrgLevelConfigService.getNode(channelOrg); //

2022-03-15 17:26:09 2280

原创 mysql无限层表设计方案分析

目录需求接口思路1:一个表,记录父ID思路2:闭包表(空间换时间)思路3:存储路径三种方式对比本文所用的层级关系图需求接口1、获取子级/所有子级列表/所有子级树2、获取父级3、增删改思路1:记录父IDCREATE TABLE `XXX` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID', `parent_id` bigint(20) unsigned NOT NU.

2022-02-17 19:12:28 1767

原创 mysql数据类型解析

目录1、int(10)与int(11)的区别?结论1:在unsigned修饰下int缺省M默认为10结论2:int(M)的M只是显示的长度,存储数值不足M位的会补0结论3:int缺省M默认为11,且不同M存储值相同结论4:M与存储占用内存无关1、int(10)与int(11)的区别?int占用4个字节,32位int(M),M默认为11,M只是展示的长度,与存储占用的多少无关例如:int(4),存储21,不足4位,查询会显示为0021若建表语句加上ZEROFILL,会在.

2022-02-16 18:15:28 681

原创 秒数设置为0的date,写入mysql的timestamp会出现部分秒数为1的情况

目录情况描述解决方案原因解析节点1:给到MyBatis的insertUseGeneratedKeys的参数节点2:MyBatis将java.util.Date转为java.sql.Timestamp节点3:最终执行的sql如下节点4:mysql测试结论情况描述1、数据库表字段类型为timestamp`XXX_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'XXX',2、mybati..

2022-01-05 14:37:36 1308

原创 EasyExcel常见场景

目录业务场景实现1:生成excel并用base64加密得到加密串实现2:去掉excel表头默认格式实现3:excel设置自定义列宽实现4:excel文件中有一列需要设置公式,G列 = F列 - H列 - I列实现5:G列需要设置,当数值 < 0 时 字体显示为红色总在本次涉及到excel开发中,使用了之前了解过的com.alibaba.easyexcel,本篇记录下一些用法业务场景1、与Excel方交互,需要将结果list实体类 转成 excel 的形式,再用b

2021-12-27 17:31:09 1505

原创 业务异常捕获为什么要使用Throwable?

Throwable异常树受查异常(编译异常):在编译时被强制检查的异常,必须处理,否则程序编译不通过。子类1:Error(错误)是程序无法处理的错误。指示合理的应用程序不应尝试捕获的严重问题。这些错误是不应该发生的异常情况。 也就是说,出于编译时检查异常的目的,Error 及其子类被视为未经检查的异常。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(Virtual MachineErr

2021-12-22 19:55:50 1795

原创 excel写为字节流使用base64加解密

业务场景:与excel方交互,需要将list实体类生成一个excel文件,然后用base64加密成字符串交互。并且excel方修改完后,会同样生成base64加密的字符串传回来,我再根据此字符串解析到excel信息将实体类list生成excel并使用base64加密无需生成excel文件,将内容写入到字节流中即可,字节流再去使用base64加密方式1:使用easyExcel得到字节流依赖包<dependency> <groupId>com.alibaba

2021-12-21 19:04:04 2057

原创 XA事务回滚处理Lock wait timeout exceeded

目录自测过程中,修改指定的一条数据报错该条数据被锁定的可能原因1、其他sql也在修改该条数据2、未提交的事务里对该条数据进行了修改解决:回滚XA事务自测过程中,修改指定的一条数据报错SQL: update XXX set status_id = ?, about_id = ? where id in ( 109);报错详情### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MyS.

2021-12-21 15:29:26 1730

原创 使用dom4j解析XML

目录1、依赖dom4j包2、 读取xml文件获取到文件输入流3、使用dom4j解析输入流得到document4、获取document标签元素并封装扩展:XPath使用dom4j解析xml文件流程例如,解析mysql配置文件sqlConfig.xml<configuration><!--xml根标签--> <dataSource> <property name="driverClass" value="com

2021-12-03 17:10:19 1372

原创 MySQL 主键性能解析

默认存储引擎InnoDBInnoDB基本知识在 InnoDB 中,表都是根据主键顺序以索引的形式存放的,这种存储方式的表称为索引组织表。InnoDB 使用了 B+ 树索引模型,整张表的数据是存储在主键索引对应的B+树中的InnoDB 可操作的最小粒度是页(16k),页加载进内存后才会通过扫描页来获取行/记录。B+树介绍在InnoDB中,主键为聚簇索引:B+ 树的叶子节点中直接存储数据行除了主键,其余都是辅助索引:B+ 树的叶子节点存储主键值。如果不是覆盖索引,需要回表..

2021-11-17 17:28:50 2138

原创 包装类型与基本类型的抉择?

目录本质区别1、默认值2、泛型支持3、内存占用4、性能结论本质区别例:Integer与int1、默认值包装类型默认值为null,基本类型默认值为0包装类可以接收null2、泛型支持包装类型可以支持泛型,例如:List<Integer> list基本类型不支持3、内存占用包装类型,new一个对象,真实数据存放在堆中,栈中存放堆地址基本类型直接存储在栈中4、性能基本类型无需拆装箱包装类型,1.5以后有自动拆装箱以

2021-11-05 16:37:20 152

原创 order by执行过程

平时在开发过程中,列表排序使用的挺多的。例如:要查询城市是“杭州”的所有人名字,并且按照姓名排序返回前 100个人的姓名、年龄。表结构如下:sql实现:select city, name, age from myuser where city='杭州' order by name limit 100;数据情况:explain执行情况Using filesort:需要排序,MySQL 会给每个线程分配一块内存用于排序,称为 sort_buffer。全字段排序..

2021-10-14 16:21:13 292

原创 php学习文档

1、PHP 脚本以<?php开始,以?>结束2、PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。3、输出:echo和print。(类比sout)4、变量:$ 。弱类型语言5、全局变量:除了函数外,全局变量可以被脚本中的任何部分访问。函数内访问与更新全局变量,方式1:需要用global关键字修饰;方式2:访问数组$GLOBALS[index],index是变量名<?php//变量$a = 9;$b = 1...

2021-09-23 20:44:27 139

原创 斐波那契数列&青蛙跳台阶

青蛙跳台阶思路,找出数列的规律记忆化递归,时间复杂度O(n),空间复杂度O(n)class Solution { Map<Integer, Integer> map = new HashMap<>(); public int numWays(int n) { if(n == 0 || n == 1){ return 1; } Integer val = map.get(n);

2021-08-06 15:21:00 79

原创 获取质数分页

从[101,200]中找出质数,每页存储10个质数,返回第二页数据思路:使用Map集合存储,get,put效率均为O(1)。页数判断public List<Integer> getPrimePage(){ Map<Integer, List<Integer>> result = new HashMap<>(); int startNumber = 101; int endNumber = 200; int pageSi

2021-07-19 20:28:23 52

原创 OutOfMemoryError:GC overhead limit exceeded问题定位

OutOfMemoryError:GC overhead limit exceeded官方解释报错的原因为:JVM花费了98%的时间进行垃圾回收,而只得到2%可用的内存,频繁的进行内存回收(最起码已经进行了5次连续的垃圾回收),JVM就会曝出ava.lang.OutOfMemoryError: GC overhead limit exceeded错误。查看报错日志信息[DUBBO] Got unchecked and undeclared exception which called by 1

2021-05-24 16:36:43 1586 1

原创 leetcode:雪糕的最大数量

雪糕的最大数量商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金价格。Tony 一共有 coins 现金可以用于消费,他想要买尽可能多的雪糕。给你价格数组 costs 和现金量 coins ,请你计算并返回 Tony 用 coins 现金能够买到的雪糕的 最大数量 。注意:Tony 可以按任意顺序购买雪糕,每个雪糕只能买一次。示例 1:输入:costs = [1,3,2,4,1], coins = 7输出:..

2021-05-18 17:34:12 283

原创 gc日志观察

通过gc日志,详细观察java内存分配与回收策略具体参数说明: -verbose:gc 在发生内存回收时在输出设备显示信息 -Xms20M 初始堆大小20M -Xmx20M 最大堆大小20M -Xmn10M 年轻代大小 -XX:+PrintGCDetails 打印GC详细信息 -XX:SurvivorRatio=8 设置年轻代中Eden区与Survivor区的比...

2021-04-23 19:43:51 96

原创 MaxUploadSizeExceededException: Maximum upload size exceeded

1、场景上传文件,文件大小1.7M,请求接口报错接口:@PostMapping("/import")@ResponseBodypublic FormatResponse imports(@RequestParam("file") MultipartFile file) { /**省略业务代码**/}2、定位原因查看日志:org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum

2021-03-01 17:26:34 2236

原创 事务方法中的异步查询

业务场景:新增一条记录(insert好几张表)生效时,发kafka消息(多处新增需要兼容)service方法如下:@Transactional(rollbackFor = Exception.class)public void saveXXX(/** 忽略参数 **/){ //...省略保存数据库逻辑...// //sendMessage 根据主表的id去查询各个表,组装消息 CompletableFuture.runAsync(() -> sendMessage

2020-11-30 15:44:03 562

原创 show profile sql性能分析

select @@profiling; -- 查看profiling权限是否开启set profiling = 1; -- 设置打开profiling 或 set profiling=on;set profiling = 0; --设置关闭profiling 或 set profiling=off;show profile;--显示sql执行过程中各个环节(如下)的消耗情况...

2020-11-20 17:44:13 83

空空如也

空空如也

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

TA关注的人

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