java
文章平均质量分 90
leandzgc
大家好!我叫张贵成,不过我个人比较喜欢人家叫我张乐(*^__^*) 嘻嘻……我现在是一名java初学者,请多多指教!!!本人Q:406163956,大家相互支持!
展开
-
设计模式之-单例模式
一、前言单例模式应该是我们日常工作中用的或者见过最多的设计模式之一了,尤其是在设计各种框架的管理器时,基本都会针对不同种类的管理单元设计一个单例供业务代码使用。那么单例模式有多少种写法呢?每种方法适合用在什么场景下,分别有哪些优劣势呢?接下来我们就一起来看看吧。二、主体2.1、饿汉式单例模式-1-静态常量(推荐使用)package com.le.test.designpattern.creational.singleton;/** * 饿汉式单例模式-1-静态常量(推荐使用) * 优势:逻辑原创 2020-05-21 01:44:00 · 412 阅读 · 0 评论 -
工单处理之--一次CPU满负载的问题排查分享(存在死循环逻辑导致)
一、前言近期处理过几个生产环境cpu占用率异常的工单了,但迫于种种原因一直没能系统的梳理一下排查过程,正好今天又遇到了一个现场问题,所以留存了一下过程数据,在这里跟大家分享一下。一个是加深一下自己的印象,再一个也给后续处理类似问题的小伙伴提供一些参考资料。期待拍砖!二、过程2.1、确认问题查看工单描述,反馈新版本有问题,还原回老版本就没问题。且发现工单附件已经包含【cpu死锁排查过程.docx】,遂下载查看(有的时候现场给的附件等信息真的对排查问题很有帮助,小伙伴们在处理过程中一定要记得查看原创 2020-05-19 23:38:53 · 704 阅读 · 1 评论 -
工单处理之--springboot自定义数据源使用注意事项之数据库连接池一定记得配置连接数
一、问题背景近期现场小伙伴反馈卷宗桥接服务经常出现调用失败的情况,重启后可临时解决,但业务高峰期需频繁重启。问题复现期间观察后台日志,往往伴随着获取连接超时的系统错误,此时使用其他工具连接数据库是正常的。org.springframework.dao.DataAccessResourceFailureException: Unable to acquire JDBC Connection; ...原创 2020-03-15 01:16:44 · 1972 阅读 · 0 评论 -
spring定时任务ThreadPoolTaskScheduler使用注意事项之线程池大小
背景最近小伙伴解决了一个工单,描述为“手工推送案件无法推,提示token失效”,当前工单状态为待关闭,解决方案为“东软接口不稳定造成的,东软的接口恢复正常后,问题解决”,然后找现场让他们关闭工单,现场反馈:今天现场又出现相同的问题了!!!依然是token失效,工单关不了了。过程确认问题应用及版本让对方把错误截图发了一下,发现好像不是卷宗自己的应用,跟卷宗团队小伙伴确认了一下,这是个...原创 2020-01-17 17:40:17 · 7305 阅读 · 2 评论 -
问题排查之--logback配置不合理(多线程尽量避免输出日志到控制台,无论什么情况下)
背景最近小伙伴反馈执行导出效率较慢,现象是升级2.5.5之前速度还好,一小时可以导2万左右的案件,但是升级2.5.5之后导出效率下降了好几倍,现场导出了gc和agent日志,但还是未定位根因。本来我感觉这不是啥大问题,以我对导出工具的了解,给现场调调参就搞定的事儿,没想到很快就打脸了!!!过程根据个人既往经验尝试定位问题导出工具调优第一件事儿是先看fb_runlog.log(良好...原创 2019-12-17 03:53:37 · 6135 阅读 · 2 评论 -
java OOM 内存溢出引发宕机问题排查之--一次MAT使用实战
背景描述没啥可描述的,就是现场反馈宕机了,小伙伴用MAT分析了一下,说正常,怀疑是现场请求太多了,需要加内存。而我看着这么大一坨都是一个类的实例就不爽,非得研究一下为啥他就那么特殊,没事儿就薅社会主义羊毛,关键还老逮那几只羊身上薅,都给人薅秃了…定位过程加载堆转储文件打开MAT->点击【File】->【Open Heap Dump…】->选择堆转储文件并点击【打开...原创 2019-12-06 03:26:12 · 1486 阅读 · 0 评论 -
异常断电导致索引数据未持久化成功,引发索引无法命中记录,顺序扫描可命中的问题排查分享
不知道应该起个啥标题最近经手现场一个因意外断电停机导致索引数据未写入,但数据已写入,特定数据使用索引无法检索到,且程序中未判空导致NPE的问题。感觉有必要跟大家提个醒,给大家分享一下。要不标题叫排查过程也行1、有个定时任务定时扫描需要OCR的文书记录,并交给执行器去OCR(现在判断,这一步应该是走的全表扫描,或者没有用到主键索引)2、每个执行器拿一条记录去取完整的文书表记录,调用O...原创 2019-12-06 03:28:02 · 190 阅读 · 0 评论 -
处理工单也能学到新东西--一个疑难问题的定位过程(线程池应用不合理+大表索引失效)
一、背景先是现场反馈隔一段时间程序就OOM了,需要重启,小伙伴通过dump文件及MAT工具定位到某个定时任务生成了大量的java对象导致OOM,但是为啥会生成这么多对象,分析了一段时间也没找到根因。了解到在最新版应用中增加了一个配置,可以关闭这个功能(现场本身也没用到这个功能),升级即可避免该问题,但是我们要升级吗?不,我们要先尝试找到根因,因为新版本只是增加了一个开关,并不是解决了这个问题,...原创 2019-11-19 22:36:57 · 268 阅读 · 0 评论 -
java 线程池 ThreadPoolExecutor 核心代码 原理浅析 jdk 1.8
一、前言前段时间在公司分享过两次java线程池的实现原理,但是貌似大家理解的不是很深入,在应用的时候发现被培训的人并没有抓住核心点,并不理解线程池的核心原理,所以再完整的梳理一遍源码,希望可以帮助大家理解线程池的核心逻辑。本篇着重讲解ThreadPoolExecutor的使用及其核心代码,关于Executors的使用请参考我的另一篇博客https://blog.csdn.net/leandzg...原创 2019-11-17 23:50:12 · 237 阅读 · 0 评论 -
java 线程池 Executors 核心代码 原理详解 jdk 1.8
一、前言前段时间在公司分享过两次java线程池的实现原理,但是貌似大家理解的不是很深入,在应用的时候发现被培训的人并没有抓住核心点,并不理解线程池的核心原理,所以再完整的梳理一遍源码,希望可以帮助大家理解线程池的核心逻辑。本篇先仅讲解一下Executors创建线程池的示例及适用场景,线程池的原理浅析请参考我的另一篇文章https://blog.csdn.net/leandzgc/article...原创 2019-11-17 18:39:34 · 557 阅读 · 0 评论 -
代码质量检查规则中的 is provided externally to the method and not sanitized b.
今天在解决小组内代码质量检查严重级别问题时遇到一条规则错误'"count"is provided externally to the method and not sanitized before use'(“count”在方法外部提供,在使用前未经消毒--谷歌翻译)本来感觉是挺容易解决的一个问题,却让我很是郁闷了一下,在这里跟大家共享一下!接下来我们可以看一下SQ给出来的示例Noncomp...原创 2019-11-13 19:00:22 · 275 阅读 · 0 评论 -
jdbcTemplate.queryForList 返回值中Map大小写敏感引发的问题定位
今天遇到一个奇怪的问题:两个项目执行同样的脚本,同一个数据库,调用相同的jdbcTemplate.queryForList方法,但是项目A返回的Map敏感大小写,而项目B不敏感大小写。经排查是因为两个项目所返回的Map实体类型不一致导致。项目A返回的是LinkedHashMap,而项目B返回的是ListOrderedMap。后者是spring实现的Map接口,内部使用caseInsensitiv...原创 2019-11-13 18:40:01 · 2340 阅读 · 0 评论 -
maven上传jar包到仓库
将jar安装到本地仓库假设pom依赖如下<dependency> <groupId>org.apache.http</groupId> <artifactId>legcay</artifactId> <version>1.0</version> </dependency>则使用以下脚本将j...原创 2019-11-12 19:26:34 · 443 阅读 · 0 评论 -
eclipse配置sonarLint(支持myeclipse)
0、前言myeclipse及eclipse操作步骤基本相同,唯一需要注意的是:需要安装sonarLint插件,而不是sonarQube!!!PS:myeclipse默认的插件市场搜索到的是sonarQube,需要在左下角的’Marketplaces’中点击右边的eclipse图标,选择’Eclipse Marketplace’。1、安装sonar插件Help->Eclipse ...原创 2019-11-12 19:24:29 · 1287 阅读 · 0 评论 -
SpringBoot 2.x HikariPool - Driver does not support get/set network timeout for connect
刚开始学springboot,一个双数据源卡了好久,最后看HikariPool源码搞定了。springboot 2.x默认的数据源变成了HikariPool了,弄了一个demo在使用数据源的时候系统报错 HikariPool-1 - Driver does not support get/set network timeout for connections. (null)通过源码排查...原创 2018-12-07 21:21:13 · 41585 阅读 · 5 评论 -
jdbcTemplate.queryForList 返回值 大小写敏感的问题
今天遇到一个奇怪的问题:两个项目执行同样的脚本,同一个数据库,调用相同的jdbcTemplate.queryForList方法,但是项目A返回的Map敏感大小写,而项目B不敏感大小写。经排查是因为两个项目所返回的Map实体类型不一致导致。项目A返回的是LinkedHashMap,而项目B返回的是ListOrderedMap。后者是spring实现的Map接口,内部使用caseInsensitive...原创 2018-04-19 15:10:21 · 6139 阅读 · 0 评论