一场FullGC故障排查
本文记录了一次Java应用CPU使用率异常升高的排查过程。通过分析发现,问题由Full GC频繁触发导致,根源在于将大Excel文件解析为List<Map>结构后长期驻留JVM内存,造成堆内存膨胀、空间利用率低。结合JProfiler工具定位大对象,最终通过优化数据存储方式解决GC问题,总结出一套线上性能问题排查思路。
2.OAuth2.0实战案例
本文介绍了基于Spring Boot与Spring Cloud构建OAuth2授权服务的完整流程,涵盖父工程搭建、资源服务器与授权服务器的创建、核心配置类编写及四种授权模式(授权码、简化、密码、客户端)的测试验证,实现安全的分布式系统认证授权。
2. 整合切面,参数拦截+过滤
该Java代码实现了一个基于Spring AOP的切面,用于拦截Controller层请求,记录请求来源、URL、方式、参数及响应耗时等信息,支持后续日志存储与分析。
@Configuration
被 `@Configuration` 注解的类视为Spring配置类,等同于XML配置文件。通过`@Bean`注解注册Bean,结合`AnnotationConfigApplicationContext`启动容器,可加载并管理所有Bean组件。
[Blog]三层架构:代码本地运行(☆)
简介:本任务旨在帮助新人快速上手开发环境,掌握SpringBoot、MySQL、Maven等技术栈。需完成项目本地导入与运行,自行解决JDK、Maven及IDE版本兼容问题,并修复因数据库未导入、名称不匹配导致的异常。通过实践熟悉工程启动流程与常见问题排查,为后续工作打下基础。(238字)
[舍弃,后续需调整][Blog]JPA实现分页需求(☆☆)
本文介绍如何使用JPA在SpringBoot项目中实现博客系统的分页查询功能,适合具备MySQL、Maven基础的开发者。内容涵盖需求分析、环境搭建、数据准备及分页逻辑实现,强调通过AI辅助快速完成任务,避免追求绝对正确,注重实践能力提升。(239字)
实现降级
本文介绍如何在Spring Cloud微服务中通过Sentinel实现Feign接口的降级处理。重点采用`FallbackFactory`方式,在调用方(如cart-service)为`ItemClient`接口编写降级逻辑,捕获远程调用异常并返回兜底数据。需配置Feign启用Sentinel,定义降级类实现`FallbackFactory`接口,并在`@FeignClient`中指定`fallbackFactory`。最终通过停止item-service进行测试,验证购物车页面在商品信息获取失败时仍可降级展示,保障系统稳定性。适用于服务熔断与容错场景。
xxljob本地运行
本文介绍XXL-JOB分布式任务调度框架的部署与使用,涵盖源码获取、服务端数据库配置、客户端注册及任务调度配置,支持多种路由策略与分片广播,助力高效实现定时任务管理。
xxljob执行源码分析
包含中文注释的XXL-JOB源码包及分析流程,涵盖架构设计与核心源码解析。重点包括任务调度、线程池管理、心跳注册、失败重试与告警机制、日志清理及时间轮调度原理,全面剖析分布式任务调度系统实现细节。(238字)
EFC&CTO:缓存引发数据不一致问题排查与深度解析
EFC客户端在NAS场景下因缓存架构更新引发CTO测试data mismatch问题。经排查,发现分布式缓存中版本号(dv)回退导致读取旧的NULL数据,污染pagecache并最终写坏文件系统。根本原因为慢请求返回覆盖了最新版本号,修复方案为丢弃回退的版本号。通过日志分析与流程复现确认问题,并结合内核行为深入理解POSIX接口实现细节,最终解决数据不一致难题。
Jmeter快速入门
JMeter是基于JDK的性能测试工具,需先安装配置JDK。下载解压后,通过双击或命令行启动,注意黑窗不可关闭。可设置中文语言(临时或修改jmeter.properties永久生效)。基本使用包括创建线程组、添加HTTP取样器、配置监听器(如结果树、汇总报告)以查看测试结果。
什么是RESTful
RESTful是一种基于资源的API设计规范,通过统一的HTTP方法(GET/POST/PUT/DELETE)对资源进行操作,提升接口的标准化与可维护性。它强调URI代表资源、使用名词而非动词、杜绝行为化路径,确保增删改查逻辑清晰、结构统一,便于理解和扩展,是现代Web API设计的最佳实践之一。
OOM排查之路:一次曲折的线上故障复盘
本文记录了一次Paimon数据湖与RocksDB集成服务线上频繁OOM的排查历程。通过分析线程激增、内存缓慢泄漏等现象,结合MAT、NMT、async-profiler等工具,最终定位到RocksDB JNI调用导致堆外内存泄漏,并通过架构优化解决。分享排查思路与工具使用,为类似问题提供借鉴。
3-MongoDB常用命令
本文介绍如何使用MongoDB存储文章评论数据,涵盖数据库与集合的创建、删除,以及文档的增删改查操作。内容包括:使用`use`创建articledb数据库,通过`insert()`插入评论文档,利用`find()`查询数据并支持投影与排序,结合`limit()`和`skip()`实现分页,以及使用`update()`和`remove()`进行更新与删除操作,全面讲解MongoDB基本CRUD语法及注意事项。
Auth2.0实战案例
本项目基于Spring Boot与Spring Cloud构建,实现OAuth2四种授权模式。通过父工程统一版本管理,搭建授权服务器与资源服务器,集成Spring Security、MyBatis及MySQL,完成认证授权流程。支持授权码、简化、密码及客户端四种模式,实现安全的分布式权限控制。
认识OAuth2.0
OAuth2.0是一种开放授权标准,允许第三方应用在用户授权下安全访问资源,无需获取用户账号密码。其四种模式包括:授权码模式(最安全,适用于Web应用)、简化模式(适用于前端单页应用)、密码模式(需高度信任,直接使用用户名密码)和客户端模式(服务间调用,与用户无关)。广泛用于第三方登录、API授权等场景。
RocketMQ:底层Netty频繁OS OOM
本文记录了一例Java应用因Netty多ClassLoader加载导致堆外内存超限引发OS OOM的排查过程。通过NMT、Arthas等工具定位到多个PooledByteBufAllocator实例各自独立占用堆外内存,总量远超MaxDirectMemorySize限制,最终结合业务现状提出临时调优方案,为类似问题提供参考。
SpringCloud常见注解及使用说明
SpringMVC中,通过注解将HTTP请求映射到控制器方法。@RequestMapping定义接口路径,实现前后端对接,如“/staff/add”对应新增操作;@GetMapping、@PostMapping等为其衍生注解,简化常用请求类型处理,统一实现请求路由。