一场FullGC故障排查
本文记录了一次由Full GC引发的CPU使用率飙升至104%的问题排查过程。通过分析JVM堆内存,发现大对象(List<Map>)导致老年代频繁被占满,进而触发Full GC。利用JProfiler定位到问题根源:Excel数据以低效结构加载至内存且长期驻留,造成内存膨胀。最终提出“治本”与“治标”两类解决方案,并总结了线上高CPU问题的排查思路与经验。
第五章 Spring框架
Spring的IOC(控制反转)指将对象创建交给容器管理,DI(依赖注入)则实现对象间的依赖关系自动注入。Bean默认单例非线程安全,作用域可设为singleton、prototype等,通过@Scope注解配置。Bean生命周期包括实例化、初始化、销毁等阶段,循环依赖通过三级缓存解决,但构造函数循环依赖需@Lazy解决。AOP基于动态代理实现日志、事务等横切关注点,事务通过@Transactional注解管理,支持传播行为如REQUIRED、REQUIRES_NEW。常用注解涵盖声明、注入、配置及AOP等方面。
RocketMQ:底层Netty频繁OS OOM
本文记录了一例Java应用因Netty多ClassLoader加载多个PooledByteBufAllocator实例,导致堆外内存超限引发OS OOM的排查过程。通过NMT、Arthas等工具分析,发现多个中间件独立加载Netty,各自绕过JVM直接内存限制分配堆外内存,总量远超MaxDirectMemorySize。最终定位RocketMQ客户端为主要内存占用者,建议短期调小Java堆让出内存,长期优化中间件内存使用。
[ERP]SpringBoot集成Redis技术(☆)
本文介绍如何克隆并运行ERP项目代码,通过Git或ZIP方式获取源码,配置JDK、Maven等环境,解决常见问题,并强调主动请教同事的重要性。要求使用Redis优化商品查询接口,考虑缓存三剑客及增删改时的缓存更新,推荐用Postman等工具测试接口。
1. 整合Logback,滚动记录+多文件
`logback-spring.xml` 是 Spring Boot 项目的日志配置文件,支持按级别、模块分离输出日志,包含控制台、文件滚动等配置,并可通过 `LogProxy.getLogger()` 获取指定名称的日志实例,实现精准日志管理与追踪。
MinerU Docker 部署指南:PDF 结构化解析服务实践
MinerU 是面向开发者与科研用户的 PDF 结构化解析工具,支持将复杂版式、公式符号的科技文献精准转为 Markdown/JSON 等机器可读格式。基于“书生·浦语”大模型预训练需求研发,2.7.0 版本引入 hybrid 后端,融合 pipeline 与 VLM 优势,提升解析精度与多语言 OCR 能力。支持 Docker 部署,提供 vLLM 加速、API 服务与 Gradio 界面,开箱即用,助力科研数据高效处理。
映射关系(1-1 1-n n-n)
本文介绍了MyBatis中四种核心映射关系:一对一、一对多、多对一及多对多。通过resultMap实现属性与字段的映射,解决命名不一致问题;使用`<collection>`处理集合关联(如用户-角色),`<association>`处理单对象关联(如博客-作者);多对多则借助中间类实现双向关联映射,提升复杂数据结构的查询效率。
Spring Boot集成 Swagger2 展现在线接口文档
Swagger是一款用于生成和管理API文档的工具,解决前后端分离架构中接口文档更新不及时的问题。通过集成Swagger2,可自动生成在线接口文档,支持实时查看与测试接口,提升开发效率。本文介绍其在Spring Boot中的配置与常用注解使用方法。
Spring Boot中的MVC支持
本文介绍了Spring Boot MVC开发中常用的五大注解:@RestController、@RequestMapping、@PathVariable、@RequestParam和@RequestBody,详细讲解其用法、特点及适用场景,帮助开发者高效构建Web应用。
Spring Boot集成Thymeleaf模板引擎
Thymeleaf 是现代Java模板引擎,支持静态原型与动态数据融合,可直接浏览器预览,提升前后端协作效率,适用于Spring Boot项目,实现页面自然展示与高效开发。
Spring Boot使用slf4j进行日志记录
本文介绍了在Spring Boot项目中使用SLF4J结合Logback进行日志管理的方法。通过配置`application.yml`和`logback.xml`,实现日志级别、输出格式、文件存储与滚动策略的灵活控制,并推荐使用SLF4J门面模式替代直接调用具体日志实现,提升系统可维护性与扩展性。
@Configuration
`@Configuration` 注解用于标记配置类,相当于传统的 `applicationContext.xml` 配置文件。此类可定义 `@Bean` 方法,向 Spring IOC 容器注册 Bean。通过 `AnnotationConfigApplicationContext` 加载配置类后,容器会管理其组件,实现基于 Java 的配置驱动。
Spring Boot 默认对Json的处理
本文详解Spring Boot中JSON处理,涵盖Jackson与FastJson的使用对比、null值处理及统一返回结构封装,提升接口数据规范性与可读性。
SpringBoot使用汇总
Spring Boot 是基于 Spring 的轻量级框架,旨在简化配置、快速启动项目。它通过自动配置和约定优于配置的理念,整合第三方库,实现开箱即用,极大提升了开发效率,是当前 Java 微服务开发的主流选择。
Sentinel安装与集成
介绍如何切换hmall-micro项目至dev_02分支并提交代码,强调多分支并行开发模式。随后讲解Sentinel服务保护框架的安装与配置,包括控制台部署、本地运行及项目集成,实现微服务熔断降级,并通过簇点链路监控接口。
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,泛型信息被移除,仅保留原始类型(如Object或限定类型)。这导致List<String>和List<Integer>在运行时等价于List,引发反射可插入不兼容类型等问题。同时,静态成员不能使用类的泛型参数,多态与泛型擦除存在冲突,需通过桥方法解决。泛型不支持基本数据类型,且无法在运行时进行带泛型的instanceof判断。
Spring Cloud熔断降级
熔断降级是应对服务雪崩的核心手段。熔断通过断路器统计异常或慢请求比例,超阈值后拦截所有请求,防止系统崩溃;降级则在调用失败时返回默认数据或友好提示,提升用户体验。二者结合,在服务异常时快速熔断并触发降级逻辑。断路器有closed、open、half-open三种状态,实现自动恢复机制,保障系统稳定性。
SpringCloud
本课程基于黑马程序员2025版SpringCloud实战教学,聚焦高频面试与实际应用,涵盖微服务、RabbitMQ、Redis高级、ElasticSearch等核心内容,结合项目实战与AI模块优化,助力掌握企业级开发技能。资料详尽,尊重原创,侵权必究。
Redis:内存陡增100%深度复盘
本文复盘了一起Redis因大KEY和缓冲区激增导致内存占满、服务不可用的事故。根本原因是输出缓冲区在高流量下持续膨胀,最终耗尽实例内存,即使淘汰策略存在也无法释放缓冲区内存,致使SET/GET命令超时失败。文章深入分析了Redis内存组成、缓冲区机制,并提出了开发运维规范与优化建议。
【Azure Bot Service】在机器人服务中如何调用LLM来回答问题呢?
本文介绍如何在Azure Bot Service中嵌入大模型,实现智能对话。通过调用Azure OpenAI的API,在Bot的on_message_activity方法中接入大模型响应,使机器人具备更强大的自然语言处理能力,提升交互体验。
玄晶引擎AI数字员工升级实践:云原生驱动的全链路自动化运营架构解析
玄晶引擎AI数字员工全新升级,基于云原生理念构建“任务调度-多平台触达-风险管控-数据沉淀”全链路自动化体系。深度适配阿里云ACK、OSS、SLS等服务,实现弹性伸缩、可观测性与成本优化,助力企业降本增效,为开发者提供可复用的AI自动化实践范本。(239字)
低代码是什么,低代码的技术发展和优势
本文解析低代码(2014 年 Forrester 提出,依托可视化平台构建应用)的技术发展、核心组成与能力,对比其与纯代码的优劣势,剖析前后端等核心技术领域,为企业数字化转型选型低代码平台提供参考。
CAP和Base理论
CAP理论指出:分布式系统中,分区容错性(P)不可避免,网络故障时需在一致性(C)和可用性(A)间权衡。BASE理论提供解决思路:基本可用、软状态、最终一致性,通过牺牲强一致性和部分可用性,保障系统整体可用与最终数据一致,适用于高并发分布式场景。(238字)
【Linux基础】开发日常:盘点后端开发中最高频使用的10个Linux命令
本文为后端开发者整理了日常运维中最常用的10个Linux命令,涵盖文件查看、日志监控、进程管理、网络排查等核心场景。从`ls`、`cd`到`tail`、`grep`,再到`ps`、`netstat`、`top`等,结合实际案例讲解高频用法,助你高效应对服务器操作,提升开发效率。
iOS 崩溃排查不再靠猜!这份分层捕获指南请收好
从 Mach 内核异常到 NSException,从堆栈遍历到僵尸对象检测,阿里云 RUM iOS SDK 基于 KSCrash 构建了一套完整、异步安全、生产可用的崩溃捕获体系,让每一个线上崩溃都能被精准定位。
Spring Boot中的项目属性配置
本文介绍Spring Boot中配置管理的常用方法:通过`@Value`读取单个配置,使用`@ConfigurationProperties`封装多个配置项,并实现开发与生产环境配置文件(如application-dev.yml和application-pro.yml)的灵活切换,提升项目可维护性。
.泛型擦除引起的问题及解决方法
Java泛型类型检查在编译时针对引用而非对象本身。即使类型擦除后变为Object,编译器仍会根据引用的泛型声明(如ArrayList<String>)对add等方法调用进行类型检查。直接使用原始类型(如ArrayList)会失去泛型保护,仅产生警告。因此,类型安全由引用决定。
SpringBoot打包
本项目通过Maven打包为单一可执行JAR,内置配置文件与依赖,使用Spring Boot插件指定主类并repackage。执行`mvn clean package`构建后,通过`java -jar`运行(前台/后台),`kill -9 pid`停止服务。也可将JAR、依赖与配置分离部署,提升灵活性与维护性。(238字)
云原生
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。