摘要:
几年前想学习spring源码,每次打开书都是构建源码开始,结果每次都是卡在源码构建环境上了。 由于spring源码使用gradle构建并且还依赖了一些其他环境的安装,所以想要顺利完成环境搭建并完整构建成功还是稍微有点麻烦。 折腾几次后就放弃强迫症了,索性下载了原版源码后删减了一些模块并且把构建工具换 阅读全文
摘要:
在mac上设置了默认语言为英文,但是想把部分程序设置为中文,所以写了个脚本来批量设置。 _01_change_app_language.sh #!/bin/bash echo 'Start at ' $(date "+%Y-%m-%d %H:%M:%S") APP_DIRS=( /Applicati 阅读全文
摘要:
original: https://stackoverflow.com/questions/28560734/how-to-run-junit-springjunit4classrunner-with-parametrized/28561473 @RunWith(Parameterized.clas 阅读全文
摘要:
Java的内置锁一直都是备受争议的,在JDK1.6之前,synchronized这个重量级锁其性能一直都是较为低下,虽然在1.6后,进行大量的锁优化策略,但是与Lock相比synchronized还是存在一些缺陷的:虽然synchronized提供了便捷性的隐式获取锁释放锁机制(基于JVM机制),但 阅读全文
该文被密码保护。 阅读全文
摘要:
jdk自带的原生的拒绝策略抛出的异常信息不够详细,无法反映业务处理相关的信息,而dubbo对拒绝策略进行了改写,抛出的信息更具有参考价值,值得我们借鉴。 jdk自带的原生拒绝策略抛出的信息: // ThreadPoolExecutor的toString方法 /** * Returns a strin 阅读全文
摘要:
jedis参数不当引发dubbo服务线程池耗尽异常 现象:一个dubbo服务偶发性的出现个别机器甚至整个集群大量报线程池耗尽的问题。一开始对问题的处理比较粗暴,直接增加了10倍的线程数。但是问题依然偶尔出现,重启服务就可以暂时解决。后来,发现问题出现频率有点高,不得不花点时间认真分析了。 实际原因: 阅读全文
摘要:
dump生成:jmp -dump:live,format=b,file=/tmp/some.bin PID。其中,加上live表示只dump存活的对象。 线程栈信息生成:jstack PID > /tmp/file.txt 找出占用CPU最多的线程: top找到进程 top - 01:26:03 u 阅读全文
摘要:
分析一个线上内存告警的问题时,发现了造成内存告警的原因是使用fastjson不当导致的。 分析dump发现com.alibaba.fastjson.util.IdentityHashMap$Entry对象比较多。 查找相关文档 1. "fastjson IdentityHashMap 内存泄漏排查" 阅读全文
摘要:
thumbnailator提供了便捷的图片处理api,webp imageio core屏蔽了不同平台webp本地库的差异。 链接: 1. "Java图片处理工具类库推荐 ThumbNailtor" 2. "webp imageio core" 阅读全文