logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【深度硬核】ThreadLocal 强引用如何“搞挂”Tomcat?一次由对象复用引发的初始化异常排查

ThreadLocal强引用引发Tomcat请求对象初始化异常问题排查 本文记录了一个生产环境中由ThreadLocal强引用导致的Tomcat请求对象初始化异常案例。当浏览器携带Cookie访问时,Filter中request.getCookies()返回null,经排查发现是由于ThreadLocal强引用导致Tomcat复用HttpServletRequest对象时初始化流程异常。深入分析表

#tomcat#firefox#java
Java 加载自定义字体失败?从系统 fontconfig 到 Maven 损坏的全链路排查指南

Java 字体加载失败、Problem reading font data、fontconfig 缺失、Maven 资源损坏、.ttc 加载、OpenJDK 字体问题

#java#maven
【java Metaspace空间内存分析】

自 JDK 8 起,永久代(PermGen)被移除,取而代之的是 Metaspace。它用于存储类的元数据(如 Class、Method、Field 等),默认使用本地内存(Native Memory),理论上可动态扩展,但若类加载器未正确卸载,仍可能导致 Metaspace OOM。

#java#开发语言
【项目深入】三、分布式锁

摘要:本文介绍了Zookeeper和Redis实现分布式锁的原理与机制。Zookeeper通过临时顺序节点、Watcher监听和ZAB协议实现分布式锁,具有强一致性特点。Redis通过SETNX命令、Lua脚本和Watchdog机制实现分布式锁,提供多种锁类型但存在主从切换风险。文章对比了两种方案的优缺点,并指出分布式锁应作为最后选择,优先考虑乐观锁、幂等性等方案。两种方案在数据结构、一致性模型和

#分布式
【JVM深入】一、基本内容

本文摘要: Java类加载机制采用双亲委派模型,从Bootstrap到自定义加载器逐级委托,确保核心类安全。JVM调优需根据目标(吞吐/延迟/内存)选择策略,包括调整堆内存、GC算法和回收器。GC Roots包括栈帧变量、静态属性、常量等引用对象,决定对象存活状态。新生代采用复制算法快速回收短期对象,而老年代存放长期存活对象,需合理设置比例避免频繁Full GC。不同GC类型适用于不同场景,如Pa

#jvm
【MySQL深入】一、索引

本文深入解析MySQL InnoDB引擎的索引机制。核心要点包括:1)索引采用B+树结构,聚簇索引存储完整数据,非聚簇索引存储键值和主键;2)联合索引遵循最左前缀原则,相比单索引能减少查询次数;3)页分裂影响性能,有序主键可减少分裂;4)索引下推(ICP)和覆盖索引能显著提升查询效率;5)通过EXPLAIN分析type、key_len等指标可评估索引使用效率。文章还详细介绍了B+树存储计算、索引优

#mysql
运行报错:java.lang.NoSuchMethodError jar包依赖错误

现象在本地,测试可以运行,线上环境直接报错java.lang.NoSuchMethodError经过排查,是因为在线上有两个项目,分别使用了不同jar包的解密方法,但是解密方法所在类路径,两者完全相同,解密所用内容不一致原因对于java来说,如果运行中依赖存在两个一模一样的类,类路径一致,就会发生java.lang.NoSuchMethodError错误解决办法由于情况比较特殊,无法按照网上所说的

#java
【SpringBoot Druid Mysql多数据源整合】

SpringBoot 结合 Druid 设置mysql多数据源,用以访问不同的数据库

文章图片
#spring boot#mysql#mybatis
到底了