首先回答一个问题,tomcat为什么要设计自己的类加载机制?
redisson踩坑记
使用redisson做分布式锁时,使用最简单的单机模式,发现一个奇怪的问题,项目启动后刚开始获取和释放锁都没有什么问题,过一段时间后(5分钟左右,这个时间是后来发现的)就会出问题,看了日志显示如下图的RedisResponseTimeoutException
,意思就是说redis响应超时,默认的超时时间是3秒钟,server在三秒钟内没有返回,所以报了这样一个错误。
记一次内存溢出排查问题的过程
问题背景:最近开发了一个调用第三方支付平台进行代付的功能,部署到测试环境进行测试,经过压力测试发现代码无法完成功能,并且出现了响应缓慢的情况。 在发现问题后,我们观察了日志,发现请求日志打印了一半,之后就没有了,并且发现了一处其它地方的内存异常。
mybatis执行批量插入返回主键时异常原因及源码分析
mybatis-3.2.7执行批量插入语句并返回主键时代码报错,经过确认是代码的bug,升级版本到3.3.1后正常。
下面通过源码分析一下批量插入时返回主键的原理,以及造成这个bug的原因。
线上redis获取不到连接异常原因分析
redis异常,无法获取到连接,运维直接登录到redis服务器通过redis-cli连接发现没有问题。 项目重启后恢复正常。因此可怀疑是redis连接池没有可用的空闲连接,忙碌的连接又得不到释放导致的。
策略模式
策略模式(Strategy Pattern):定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。
Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
spring mvc multipart配置源码解析
multipart配置主要用来控制tomcat容器上传文件的大小,本文主要从源码的角度分析了multipart的配置是如何起作用的。
multipart配置的作用
multipart的配置主要有两个 maxFileSize 用于配置允许上传的单个文件的最大值 maxRequestSize 用于配置单个请求中允许上传的最大值,一个请求中可以上传多个文件 spring 2.x最新的配置为:
应用频繁数据库连接错误问题分析
本文主要分析了web应用在使用过程中频繁报数据库连接异常的原因,以及解决方案。
问题描述
从前端页面请求后端接口,页面拿不到任何数据,后台一直报相同的错误,重启应用可以临时解决该问题,异常堆栈如下:
理解mysql的临时表和文件排序
我们经常看到Mysql的explain语句执行结果Extra字段有using temporary或者using filesort,本文主要是为了理解这两个短语的含义,从而有助于我们进行SQL语句优化。
对象的发布和逸出
本文主要总结了对象的发布和逸出,以及如何安全的发布对象。主要内容均由《Java Concurrency In Practice》第三章整理而来。