logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

JVM 生产环境问题定位与解决实战(八):实战篇——正则表达式回溯引发的CPU 100%

Java应用中正则表达式设计不当会引发回溯爆炸,导致CPU 100%。本文通过真实案例,展示如何用Arthas定位问题:通过thread -n 3发现卡在java.util.regex.Pattern的线程,最终锁定危险正则。该表达式因嵌套量词(.+)*导致匹配时长呈指数增长。优化方案:1)用[a-zA-Z0-9/-]+替代模糊匹配;2)限制输入长度;3)添加原子组。优化后处理10万字符仅1ms,

文章图片
#jvm#正则表达式
JVM生产环境问题定位与解决实战(二):JConsole、VisualVM到JProfile与MAT的高级应用

JConsole 是 Java 开发工具包(JDK)自带的一个监控和管理工具,主要用于监控 Java 应用程序的性能和资源消耗。它通过 JMX(Java Management Extensions)技术连接到 Java 虚拟机(JVM),并提供实时的监控数据。作用:显示Java虚拟机信息。用法:在“VM概要”标签中,可以查看有关Java虚拟机的详细信息,包括JVM版本、内存设置(如堆大小和非堆大小

文章图片
#jvm#java#性能优化
JVM 生产环境问题定位与解决实战(七):实战篇——OSSClient泄漏引发的FullGC风暴

业务代码中批处理业务使用OSSClient访问阿里云OSS时,未调用shutdown()方法释放资源。每个OSSClient实例关联一个PoolingHttpClientConnectionManager对象,这些对象被IdleConnectionReaper的静态变量connectionManagers持有,无法被垃圾回收。大量未释放的PoolingHttpClientConnectionMan

文章图片
#jvm
JVM生产环境问题定位与解决实战(六):总结篇——问题定位思路与工具选择策略

在前五篇文章中,我们深入探讨了JVM生产环境问题定位与解决的实战技巧,从基础的jps、jmap、jstat、jstack、jcmd等工具,到JConsole、VisualVM、MAT的高级应用,再到Java飞行记录器(JFR)的强大功能,以及如何使用JMC进行JFR性能分析,最后介绍了Arthas这一不可错过的故障诊断利器。工具之间还可以组合使用。不同的工具适用于不同的场景和问题类型,接下来我们将

文章图片
#jvm#运维开发
Java 日志框架完整指南:发展历史、核心组成与最佳实践

Java日志框架经历了从原生JUL到Log4j,再到SLF4J+Logback/Log4j2的演进过程。日志系统采用"门面+实现"分层架构:SLF4J作为统一接口层,Logback/Log4j2作为具体实现层,桥接器则负责重定向旧日志框架调用。现代项目推荐使用SLF4J API搭配Logback或Log4j2实现,通过合理配置依赖和桥接器,可实现统一高效的日志管理。

文章图片
#java#python#开发语言
MyBatis Mapper 查询无数据时返回什么?Java 代码中是否需要非空判断?

本文分析了MyBatis 3.5.x中不同返回类型的查询行为:单个对象无记录返回null(需判空),List和Map返回空集合(无需判空)。通过源码解析了DefaultResultSetHandler等核心类的处理逻辑,指出MyBatis遵循返回空容器而非null的最佳实践,有效减少NPE风险。文章提供了代码示例和最佳实践建议,帮助开发者编写更健壮的持久层代码。

#mybatis#java#开发语言
安装Kubernetes,容器为containerd

Kubernetes(简称K8s)是一个开源的、用于自动化容器化应用程序部署、扩展和管理的系统。随着技术的不断发展,Kubernetes的版本也在不断更新,但网上大部分的Kubernetes安装教程仍然停留在较旧的版本上。这些教程中,容器运行时通常是以Docker为例,镜像源则多使用已经关闭的阿里云等国内镜像地址,且ServiceAccount的Secret通常是自动生成的。然而,在最新的Kube

文章图片
#kubernetes#容器#云原生
纯净化安装EasyConnect:macOS Sonoma使用docker安装EasyConnect---docker-easyconnect

总结一下,纯净化安装EasyConnect一共三步,第一步是安装docker-easyconnect,第二步是登录vpn,第三步是使用代理软件进行代理转发。安装docker-easyconnect时,需要判断是否要使用图形化界面进行登录,如果需要参考2.1、2.2章节。登录vpn有三种方式,只需要用户名和密码就能登录的直接使用命令行进行登录。如果需要图形验证码,就需要使用web登录或者VNC Vi

文章图片
#macos#docker#容器
仓颉编程语言申请下载步骤

仓颉编程语言SDK依托 gitCode 在运营,收到审核通过的邮件,gitCode可能还没有赋权,需要等待赋权后才能正常访问。:关注公众号后,根据推送的消息,在公众号中回复关键词“SDK”,这将触发自动推送的消息,其中包含内测申请的详细信息。: 提交申请后,等待华为官方的审核。:在收到的审核通过的邮件里,会有相应的下载地址,gitCode角色申请通过后,就可以根据邮件里的地址去下载SDK了!想要下

文章图片
Kubernetes 集群中安装和配置 Kubernetes Dashboard

上篇成功部署Kubernetes集群后,为了方便管理和监控集群资源,安装Kubernetes Dashboard显得尤为重要。Kubernetes Dashboard 是一个通用的、基于 Web 的 UI,旨在让用户轻松地部署容器化应用到 Kubernetes 集群,并对这些应用进行故障排查以及管理集群资源。通过 Dashboard,你可以获取集群内运行的应用概览信息,创建或修改各种 Kubern

文章图片
#kubernetes#贪心算法#容器
    共 15 条
  • 1
  • 2
  • 请选择