最近在基于SonarQube对代码进行质量优化,说实话,之前觉得SonarQube这种很无聊,但最近静下心来看了一些扫描出来的问题后,发现这种工具作用还是挺大的,能够帮助我们找到代码中的隐藏缺陷,从而夯实基础。本文的议题就是基于SonarQubeBug探讨一下线程中断。 在SonarQube中的异常为“InterruptedExceptionshouldnotbeignored“: 即SonarQube认为InterruptedException异常不应该被忽视,即本文探讨的关键点就是InterruptedException异常该如何处理。 理解线程中断 线程中断我觉得有这么几个关键点: ...

今天使用一种很临时的方案解决Session泄漏的问题:缩短Session的过期时间。这种方法虽然简单,但却非常有效。然而,这引发了一个问题:我们应该将过期时间设置为多短呢?在SpringBoot中,最短的过期时间是60秒。如果你配置的值小于60秒,系统会将其默认设置为60秒。这是由org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactorygetSessionTimeoutInMinutes方法决定的: privatelonggetSessionTimeoutInMinutes(){ Duratio...

全部注解如下表: 注解 说明 @Argument 绑定单个参数 @AllArguments 绑定所有参数的数组 @This 当前被拦截的、动态生成的那个对象 @Super 当前被拦截的、动态生成的那个对象的父类对象 @Origin 可以绑定到以下类型的参数:Method被调用的原始方法Constructor被调用的原始构造器Class当前动态创建的类MethodHandleMethodTypeString 动态类的toString()的返回值int 动态方法的修饰符 @DefaultCall 调用默认方法而非super的方法 @S...

引言     最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码。在研究一个项目的时候,源码里面用到了HTTP的长轮询。由于之前没太接触过,因此LZ便趁着这个机会,好好了解了一下HTTP的长长短短。   了解的方式主要都是LZ在网络上获取的,这里只是谈一下LZ对于这四种叫法最直观的理解。如果你之前不懂的话,可以帮你普及一下,如果你之前就懂得话,可以互相对照一下。    以前的误解     很久之前LZ就听说过长连接的说法,而且还知道HTTP1.0协议不支持长连接,从HTTP1.1协议以后,连接默认都是长连接。但LZ终究觉得对于长连接一直懵懵懂懂的,有种抓不到关键点的...

ByteBuddy: 1.10.1JDK: 1.8 Hi, I'mhavinganissuetryingtotransformsomeTomcatclassesusingaJavaAgentbecauseI'musinga Class objecttodefinethe AgentBuilder,buttheclassisnotloadedby SystemClassLoader,butanotheronewhichisTomcatspecific. IsthereanywaytodefinetheAgentBuilder&nbsp...

  6DOeteBHjp6w   2023年11月02日   47   0   0 1024程序员节Red1024程序员节Red

相关文章: JavaAgent的简单使用 本文相关代码地址:https://gitee.com/dongguabai/blog 单元测试在软件项目的可持续发展中扮演着不可或缺的角色,这一点毫无疑问。不久前,公司大佬在内部分享时也提到过:单元测试是每个研发工程师的基本技能。 然而,在实际的开发过程中,我们发现很多研发人员并不愿意编写单元测试。其中一个普遍的原因是很多单元测试需要启动Spring容器(而许多Mock工具本身并不好用),导致启动过程非常耗时。 以我们的核心项目为例,一次单元测试的运行时间接近5分钟。考虑到一般需求开发涉及多个接口,再加上中间调试的时间,可能测试几个接口就会耗费一...

CPU使用率在系统监控中是一个非常重要的指标。对于大多数Web应用来说,它们往往是IO密集型的,因此只会在某些时刻可能会出现CPU突然飙升的情况,随后很快就恢复正常。然而,当收到报警并想要排查问题时,CPU飙升的情况可能已经过去,无法直接查看当时Java进程内的线程堆栈信息。 为了解决这个问题,本文实现了一个小工具,它在CPU飙升时自动保存堆栈信息,方便后续问题的追踪。 该工具实现了两个主要功能: 当CPU使用率达到预设的阈值时,自动保存当前Java进程的线程堆栈信息; 输出占用CPU使用率最高的线程ID。 本文选择在Linux系统上实现这个工具,因为大多数应用都是部署在Linux环境中...

  6DOeteBHjp6w   2023年11月02日   74   0   0 JavajavaTestlinuxlinuxTest
  6DOeteBHjp6w   2023年11月02日   41   0   0 do better myself

图形界面->命令界面  Windows:Ctrl+Alt+F2  Mac: fn+control+option+F2

  6DOeteBHjp6w   2023年11月02日   50   0   0 Mac图形界面Windows

如果安装好了Homebrew那就好说了(​​Homebrew介绍和使用​​),直接: brewinstallffmpeg 可以简单玩一下,将一个为MPEG-4的视频转化为H264: ➜Downloadsffmpeg-i测试无法显示画面.mp4-vcodech264trans.mp4ffmpegversion4.1.4Copyright(c)2000-2019theFFmpegdevelopersbuiltwithAppleLLVMversion10.0.1(clang-1001.0.46.4)configuration:--prefix=/usr/local/Cellar/...

  6DOeteBHjp6w   2023年11月02日   66   0   0 bcidejava

CentOS版本: [root@MiWiFi-R4CM-srvelasticsearch]lsb_release-aLSBVersion::base-4.0-ia32:base-4.0-noarch:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarchDistributorID:CentOSDescription:CentOSrelease6.7(Final)Release:6.7Codename:Fina 系统位数: ...

  6DOeteBHjp6w   2023年11月02日   72   0   0 elasticsearchjavajar

昨天安装了CentOS7,在使用 lsb_release-a命令查询linux系统版本的时候,发现lsb_release这个没装,提示错误是: [root@localhostDesktop]lsb_release-abash:lsb_release:commandnotfound... 这里,分享一下查询linux系统版本提示bash:lsb_release:commandnotfound错误解决办法. 1.确认lsb_release是否安装 [root@localhostDesktop]lsb_release-abash:lsb_release:commandn...

  6DOeteBHjp6w   2023年11月02日   38   0   0 Desktopbashlinux系统

显示系统日期 要显示系统日期,只要输入: $dateThuDec522:55:41WIB2013 格式化显示日期 日期有很多格式。如果你不喜欢默认的格式,你可以换一种格式。你可能会想"为什么我需要改变格式?默认的输出对我足够了。" 是的,你说的对,但是当你在编程时,默认输出或许无法满足你的需求,因此需要一些自定义输出。 RFC2822的日期与时间输出格式 $date-RThu,05Dec201323:40:53+0700 RFC2822 的格式像这样: 星期,日-月-年,小时:分钟:秒时区 时区+0700等同于GMT+7。   使用格式...

  6DOeteBHjp6w   2023年11月02日   46   0   0 重置压缩文件自定义

1,先用iostat查看磁盘io是否读写负载很高 用iostat-x110 如果iostat没有,要yuminstallsysstat安装这个包,第一眼看下图红色圈圈的那个如果%util接近100%,表明I/O请求太多,I/O系统已经满负荷,磁盘可能存在瓶颈,一般%util大于70%,I/O压力就比较大,读取速度有较多的wait,然后再看其他的参数, rrqm/s:每秒进行merge的读操作数目。即delta(rmerge)/s wrqm/s:每秒进行merge的写操作数目。即delta(wmerge)/s r/s:每秒完成的读I/O设备次数。即delta(rio)/s...

  6DOeteBHjp6w   2023年11月02日   49   0   0 字节数操作数ios

​   GitHub的流行,GitHub在开源世界的受欢迎程度自不必多言。再加上今天,GitHub官方又搞了个大新闻:私有仓库也改为免费使用,这在原来可是需要真金白银的买的。可见微软收购后,依然没有改变GitHub的定位,甚至还更进一步。 花开两朵,各表一枝。我们今天想要聊的并不是GitHub多么重要,而是要说一下GitHub的搜索功能。 你在GitHub上搜索代码时,是怎么样操作的呢?是不是也是像我这样,直接在搜索框里输入要检索的内容,然后不断在列表里翻页找自己需要的内容? 或者是简单筛选下,在左侧加个语言的过滤项。 再或者改变一下列表的排序方式 这就是「全部」了吗?&n...

  6DOeteBHjp6w   2023年11月02日   54   0   0 springCloud搜索

用Explain分析SQL语句的时候,经常发现有的语句在Extra列会出现Usingfilesort,根据mysql官方文档对他的描述: MySQLmustdoanextrapasstofindouthowtoretrievetherowsinsortedorder.ThesortisdonebygoingthroughallrowsaccordingtothejointypeandstoringthesortkeyandpointertotherowforallrowsthatmatchtheWHEREclause.  中文手册上翻译的很别扭: “Mysql需要额外的一次...

  6DOeteBHjp6w   2023年11月02日   90   0   0 执行计划SQL字段

本文完整代码地址:https://gitee.com/dongguabai/blog/tree/master/loadbalance 前段时间,我们有一台定时任务执行机器(总共有3台机器负责处理定时任务)出现内存使用率超过92%的告警。在分布式任务调度中心,通常会有一套负载均衡策略来选择执行当前任务的机器。 这里就有一个思考点:如果一台机器已经超负载或即将超负载,是否可以通过减少其任务分配来降低其在负载均衡中的权重,以实现更好的负载均衡。即基于机器负载情况的动态权重负载均衡,即负载最低优先。 前面几种算法主要是站在负载均衡服务的角度,保证每个机器节点获得的调用次数均衡或者相对均衡,但是...

  6DOeteBHjp6w   2023年11月02日   55   0   0 JavaServer负载均衡运维

后续会开启一个新的系列:“服务监控与优化”。 前段之间组内大佬分享了《服务可观测性治理实践》,受益匪浅。服务监控和性能优化在日常研发工作中扮演着关键角色,但与某些框架或技术点不同,这并不是可以轻松从网上找到Demo和资料来学习的内容。相反,它更依赖于我们在工作中积累的技术经验和知识。与之前的“做一名有经验的开发人员”系列一样,本系列旨在总结从同事和行业专家身上学到的经验,并分享一些我们自己的思考和见解。 问题 我们线上的服务一直存在内存占用异常高的问题,需要解决这个问题: 服务器配置:4C16G JVM参数: java-server-XX:NativeMemoryTracking=d...

  6DOeteBHjp6w   2023年11月02日   122   0   0 JavaMemorysedjvm

早上服务频繁出现FullGC报警(由于昨晚下掉了-XX:+DisableExplicitGC参数,其实会有FullGC产生已经在意料之中,但属实没想到会触发的这么频繁), 这里JVM总共运行了4531.278s,可以看到差不多半分钟一次FullGC,单次FullGC大概耗时1.5s。 根据经验可以判断出是由于System.gc()被调用引起的,但问题的关键是确定了哪个函数引发了System.gc()的调用(在网上最著名的案例之一是由JXLAPI框架引发的)。 这里可以借用Arthas的stack来做: 很多时候我们都知道一个方法被执行,但这个方法被执行的路径非常多,或者你根本就不知道这个...

  6DOeteBHjp6w   2023年11月02日   54   0   0 SystemJVMJava
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~