经验分享
文章平均质量分 79
leandzgc
大家好!我叫张贵成,不过我个人比较喜欢人家叫我张乐(*^__^*) 嘻嘻……我现在是一名java初学者,请多多指教!!!本人Q:406163956,大家相互支持!
展开
-
现场问题排查-k8s(docker)上某服务pod频繁自动重启
k8s(docker)中pod频繁重启问题排查原创 2023-02-22 23:45:25 · 6465 阅读 · 1 评论 -
润普挂卷失败之老卷宗对接NP无法获取案件信息问题排查
因生产者及服务者未配置相同zookeeper地址引发的线上问题排查过程原创 2023-02-15 21:04:41 · 529 阅读 · 0 评论 -
Linux 使用ss命令停止指定端口进程
目前经常遇到springboot内嵌web容器启动服务,且停止服务时每次都需要手工ps查询进程ID并手工kill的问题,以下命令可以快速实现该目标。原创 2022-09-28 16:46:19 · 831 阅读 · 0 评论 -
使用PostMan调试webService接口
一、前言昨天分公司的小伙伴突然问我怎么用PostMan调用WebService接口,我瞬间懵了,没这么干过呀,能行不?网上搜了下还真的可以,把相关资料及过程记录下来,供小伙伴们及自己参考。二、过程2.1、方法调用确认url可用性(实操时把这里换成我们自己的业务url)可以在外网访问http://www.oorsprong.org/websamples.countryinfo/countryinfoservice.wso?wsdl确认url可用将业务url填入PostMan的地址栏,使用转载 2020-11-19 15:56:29 · 13290 阅读 · 2 评论 -
数据库小技巧之-带级联关系地备份视图创建脚本(支持postgresql、greenplum)
一、前言我们数据中心应用升级一直有个“顽疾”:各地区每次现场进行升级基本都会丢失一部分自定义视图(公司其他基于数据中心的应用单独创建的,数据中心升级脚本中不包含这些DDL脚本),每次升级完毕还原这些自定义视图都很费劲。其实本来现场按版本进行增量升级也不会有这个问题(因为不会删库),但是现场每次升级中间迭代的版本都比较多,所以每个地区升级基本都是选择删库并执行目标版本的全新脚本(数据中心本身不生产数据,随时可以从数据源提取最新数据,所以不用考虑历史数据的问题),这样会导致丢失了所有非数据中心自带的视图信息原创 2020-11-08 06:13:50 · 425 阅读 · 0 评论 -
cnPack快捷键和DelForEx快捷键冲突解决办法(cnPack快捷键设置)
原文链接:http://mrzhang.ddjava.com/blog/blog.html?blogId=332DelForEx的默认快捷键是Ctrl+D,cnPack也有这个默认快捷键,是函数过程列表专家。 安装cnPack后Delphi的工具栏里应该有个“cnPack”选项,单击。依次找到设置-专家设置-名称:函数过程列表专家的专家模块。然后选中,在右侧的快捷键中修改他的快捷键,原创 2012-07-05 15:46:34 · 3304 阅读 · 0 评论 -
用WINPE安装WINXP原版纯净版ISO镜像的方法
原文转自:点击打开链接[1]、在PE系统中将XP系统镜像ISO文件从U盘上复制到硬盘的非系统分区后,用PE所带WinRAR程序将该ISO镜像中的I386文件夹解压到该分区的根目录下[2]、直接拔出U盘。原因:不拔掉的话下步的复制安装文件是复制到U盘上而不是复制到了C盘中。因PE系统实际是运行在内存中,拔出U盘不影响PE系统和程序的运行。 [3]、进入I386文件夹,双击运行其中的W原创 2012-08-18 09:10:51 · 16919 阅读 · 2 评论 -
DDI英跃学堂学习笔记-计划与组织
一、前言本文章为DDI英跃学堂中第一段【计划与组织】学习内容分享,除将课程对应的精华笔记贴上来给大家分享外,还会将其中个人感触较深的部分进行标注,期望可以给自己以及读者一些启发,可以帮助我们在日后更灵活、有效的开展相关管理工作。二、正文2.1、基础2.1.1、厘清目的(要解决什么问题)做任何事儿之前都需要先识别我们的目的,然后再制定我们的目标及计划,这样才能更好地确保结果与我们的预期一致。谋定而后动,三思而后行!在以前的各种培训中也听说了各种版本的示例,例如领导让你买可乐是因为ta渴了?还是因为原创 2020-11-02 02:52:50 · 5557 阅读 · 1 评论 -
git-hooks之pre-commit maven应用
一、前言公司一直要求各团队集成sonar检查,且之前也整理过如何通过Jenkins自动构建sonar任务,以及如何在eclipse等IDE本地提前分析sonar问题的文章,但终归需要有一定的管理成本来持续保障其效果。所以近期研究了一下王凯之前发布的几篇帖子,并使用本地化的一个项目实践了一下git-hooks中的pre-commit钩子,可以在提交代码时强制校验本地代码质量,若不符合指定规则则不允许提交,期望减少一些持续性且重复的管理成本,在这里给大家分享一下,供有需要的小伙伴参考。二、正文2.1、极简原创 2020-08-13 10:51:58 · 4200 阅读 · 0 评论 -
运维问题排查能力提升专项-02-logback使用实战
一、前言logback是一款优秀的日志框架,他本身的功能很强大,且公司的绝大部分java应用都集成了这个框架并使用其管理应用日志(最新的技术规范中也明确需要使用该框架管理日志)。但考虑到有部分应用未能合理配置框架参数,导致应用未能合理记录日志或因不合理配置导致应用性能受到影响等问题,特此分享一下正常情况下应如何使用logback管理日志,以及目前已知容易出现的问题和对应解决方案。二、主体2.1、组件集成因为各个项目内部不一定如何引用的组件类,所以不推荐现场自行研究组件集成,一个不小心就会导致项目无法原创 2020-07-01 11:42:54 · 285 阅读 · 0 评论 -
运维问题排查能力提升专项-01-通用软件处理流程
一、前言年初与xxx分公司系统总工沟通,今年如何让本地化研发团队与分公司配合的更密切,应该做些什么才能让本地化团队更大的发挥他的优势。但毕竟本地化研发也是近两年才刚起步,处于牙牙学语的婴儿时代,可供借鉴的成熟经验不多,所以我们一起商量今年实验性的搞一波《现场问题排查能力提升专项》工作。考虑到失败是成功他娘,但经验可以互相分享,特此将过程中的一些资料po上来,供大家讨论,谨慎拍砖->毕竟故意伤害是可以入刑的(手动狗头)。本篇没什么干货,主要是尝试从研发和驻地的角度分别分析一下,正常的一个问题处理生命原创 2020-06-26 20:55:06 · 504 阅读 · 0 评论 -
工单处理之--一次CPU满负载的问题排查分享(存在死循环逻辑导致)
一、前言近期处理过几个生产环境cpu占用率异常的工单了,但迫于种种原因一直没能系统的梳理一下排查过程,正好今天又遇到了一个现场问题,所以留存了一下过程数据,在这里跟大家分享一下。一个是加深一下自己的印象,再一个也给后续处理类似问题的小伙伴提供一些参考资料。期待拍砖!二、过程2.1、确认问题查看工单描述,反馈新版本有问题,还原回老版本就没问题。且发现工单附件已经包含【cpu死锁排查过程.docx】,遂下载查看(有的时候现场给的附件等信息真的对排查问题很有帮助,小伙伴们在处理过程中一定要记得查看原创 2020-05-19 23:38:53 · 702 阅读 · 1 评论 -
工单处理之--docker版java应用增加调试日志的笨方法
一、前言随着技术的不断更新迭代,发展出了很多本来是便于软件研发、维护的规范及工具,但有的时候此类技术封装的比较深,会导致我们各种无从下手。例如最近各种应用都强制要求打docker镜像,现场直接跑在arterydocker上面,但docker带来便捷之处的同时,也给我们带来了一些不便(除了不能犹如以前一样随时给现场替换个文件,增加一些日志外,这个技术的学习成本也不低)。某应用就是全部用docke...原创 2020-05-07 19:26:18 · 414 阅读 · 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 评论 -
sybase连接超时解决方案之--调整stack size及stack gurad size大小
背景最近几天现场老反馈某个院的采集任务失败了,报错原因基本都是连接断开,关键是连续好几天,都是同一个地区出问题,这就很尴尬了。拉着好几个研发团队负责人一起讨论了一下,准备收集近期的运行情况及日志,深入分析一下根因,并规划后续解决方案。但也不能影响测试呀(本来定的本月完整集成测试的复测,且达到通过的标准的),然后让现场重新跑了一下采集任务,但是…依然是那个地区失败,依然是超时,但人家现场用工具操...原创 2019-12-27 02:17:04 · 1043 阅读 · 0 评论 -
问题排查之--logback配置不合理(多线程尽量避免输出日志到控制台,无论什么情况下)
背景最近小伙伴反馈执行导出效率较慢,现象是升级2.5.5之前速度还好,一小时可以导2万左右的案件,但是升级2.5.5之后导出效率下降了好几倍,现场导出了gc和agent日志,但还是未定位根因。本来我感觉这不是啥大问题,以我对导出工具的了解,给现场调调参就搞定的事儿,没想到很快就打脸了!!!过程根据个人既往经验尝试定位问题导出工具调优第一件事儿是先看fb_runlog.log(良好...原创 2019-12-17 03:53:37 · 6126 阅读 · 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 · 189 阅读 · 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 · 236 阅读 · 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 评论 -
真正的让greenplum 4.x支持uuid 使用python扩展
step1:为数据库添加python支持先保证$GPHOME/ext/中包含python文件夹,否则无法增加python扩展执行扩展命令(注意是在shell中执行,不是进入gp的命令行)createlang plpythonu -d fb09注意:上面的命令中只需要替换 fb09为需要扩展的数据库即可step2:创建gp自定义函数create or replace f...原创 2019-11-13 18:49:57 · 1073 阅读 · 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 评论 -
校验全库缺失某列索引的全部表列表-PG版本
性能优化时,我们有可能会发现某个库某个表的必备索引缺失,而这个索引还是全库全相关表都必须包含的一个,那么我们就需要一个方法来检索库中其他表是否缺失该索引。PG版本解决方法如下--创建函数CREATE OR REPLACE FUNCTION public.queryLostColIndex(dbname VARCHAR(300), schema_prefix VARCHAR(300),...原创 2019-11-13 17:26:01 · 157 阅读 · 0 评论 -
查询全库所有表各表总记录数-PG版本
--创建函数CREATE OR REPLACE FUNCTION public.queryTableRecord(dbname VARCHAR(300), schema_prefix VARCHAR(300)) RETURNS "pg_catalog"."void" AS $BODY$DECLARE schemaQueryRec RECORD; tableQueryRec REC...原创 2019-11-13 17:22:15 · 1769 阅读 · 0 评论 -
校验全库缺失某列索引的全部表列表-sybase ase版本
--创建函数USE tempdbGOIF OBJECT_ID ('dbo.P_QueryLostColIndex') IS NOT NULL DROP PROCEDURE dbo.P_QueryLostColIndexGOCREATE PROCEDURE P_QueryLostColIndex( @dbname_prefix VARCHAR(300), -...原创 2019-11-13 17:18:14 · 119 阅读 · 0 评论 -
查询全库所有表各表总记录数-sybase版本
--创建函数USE tempdbGOIF OBJECT_ID ('dbo.P_QueryTableRecord') IS NOT NULL DROP PROCEDURE dbo.P_QueryTableRecordGOCREATE PROCEDURE P_QueryTableRecord( @dbname_prefix VARCHAR(300) --数...原创 2019-11-13 17:16:48 · 1969 阅读 · 0 评论 -
再次提醒:生产环境不要引用在线资源!!!
生产环境往往都是局域网,无法正常使用互联网的资源,而如果我们的项目引用了互联网上的在线资源,很有可能导致性能问题,而且不好排查(一般不会往这方面想,所以开始的定位方向往往是错的)。我们团队近期就遇到一个项目在现场有性能问题,有个功能按钮点击后一分钟才有结果。首先怀疑是数据库问题,把公司和生产环境数据弄一致了,找到点儿问题,解决了,在公司跑飞快,部署到线上,感觉会皆大欢喜。现实给了我们一个大嘴巴...原创 2019-12-06 22:11:45 · 314 阅读 · 0 评论 -
随机生成人员姓名(脱敏处理)-SQL Server版本
正常情况下的随机生成人员姓名思路是先定义好姓和名,然后限定随机数范围,取对应的姓和名数组下标并拼接即可,这一篇帖子的处理方式也不例外。但sql server本身并没有数组类型,所以我们需要找一个可以替代数组的方法。已知的方法有实体表、临时表、XML、截取字符串这几种方式,他们各自适用于不同的场景,本帖子以实体表来代替数组(由使用者自行决定其生命周期)--使用tempdb库use temp...原创 2019-11-13 17:11:00 · 3448 阅读 · 0 评论 -
数据库内核月报-2017年03期-Greenplum的分布键设计
Greenplum的分布键设计问题背景最高执行指挥项目组在使用GP的过程中遇到两类问题数据插入缓慢 多表join查询效率低下问题1:数据插入缓慢现象是3000条数据插入要7分钟左右。排查过程 查看数据分布情况 fb09_1=# select gp_segment_id, count(*) from db_xsys.t_xsys group by 1 order ...原创 2019-11-13 11:08:59 · 271 阅读 · 0 评论 -
数据库内核月报-2017年04期-合理利用数据库特性实现需求之自连接
合理利用数据库特性实现需求之自连接需求描述数据库环境 MSSQL Server 2008 R2 需求描述 给某表限定日期范围条件的前提下,检索出每个用户的日期中断区间记录 场景模拟 假设数据(日期范围为2017-01-01至2017-01-31): C_UID | C_DATEBEGIN | C_DATEEND -——————————————————————— 1 ...原创 2019-11-12 19:36:12 · 171 阅读 · 0 评论 -
数据库内核月报-2017年05期-最佳实践 MSSQLServer2008数据增量同步
最佳实践 MSSQLServer2008数据增量同步问题来源项目组要实现两个非同构数据库的数据同步功能,为满足时间要求,最好是支持增量同步。方案决策使用数据库自带的发布订阅实现 因为源库和目标库不同构,实现起来比较复杂,并且客户环境的网络不好,在以前的使用案例中,容易出现队列阻塞或线程宕掉的情况。 利用数据库的特性实现 利用数据库特性,性能上有一定的保障。实现简单,开发效率高...原创 2019-11-12 19:35:11 · 175 阅读 · 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 · 442 阅读 · 0 评论 -
(新版)一分钟经理人读后感
这本书买来有好几个月了,我都一直没有翻开书皮看他一眼,看完才发现,还真的是有点儿小遗憾呢!全书共有95页(两三个小时绝对可以读完),分为三个部分来阐述这套一分钟经理人的管理理念一、一分钟管理方法的3个诀窍1.1、一分钟目标自我感觉良好的人才能做出优秀的业绩!设定一分钟目标很简单,只要:共同制定工作目标,并清楚简洁地描述出来,明确好的工作表现的标准。每个目标都单独写在一张纸...原创 2019-11-12 19:25:05 · 2998 阅读 · 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 评论 -
log4jdbc-log4j2浅析(sqlfx客户端采集日志的来源)-java 输出sql执行时间
前言我们公司现在强制要求每个项目必须集成sqlfx客户端,然后把项目输出的jdbc日志收集到sqlfx服务器端进行分析,根据配置将分析报告以邮件的形式发给相关人员。但是大家有没有思考过logback为何可以把sql执行时间输出到日志文件中呢?或者有没有遇到过明明把公司的logback.xml(logback-spring.xml)模板复制到项目中了,为啥别的日志都输出好好的,偏偏就没有输出s...原创 2019-11-12 19:21:20 · 1562 阅读 · 0 评论 -
函数明明存在应用却报错不存在 function xxx does not exist
错误信息:function xxx does not exist. No function matches the given name and argument types. You might need to add explicit type casts函数找不到可能的原因1、当前schema下不存在对应的函数(例如未增加schema名称,或当前连接的schema非public,且函数...原创 2019-11-12 18:08:05 · 86750 阅读 · 1 评论 -
科普一下开窗函数之row_number()
瞎说的,非科普贴,就是给大家分享个小例子,希望给有类似需求的童鞋提供一些思路。需求场景有父表A和子表B,需要根据指定规则生成一个经过处理的结果集子表B中需要增加一个虚拟序号列(原来没有),且是以某个时间字段排序后的序号虚拟序号的长度为三位固定字符串,不足三位时前面补0coding--创建父表create table t_parent(c_id char(32),c_n...原创 2019-11-12 17:58:10 · 632 阅读 · 0 评论