一场FullGC故障排查
因JVM Full GC导致CPU使用率飙升至104%,排查发现是用户上传的Excel数据以List<Map>形式加载至内存,造成堆内存膨胀。通过JPofiler分析堆快照,定位到大对象为多个大型Map,因HashMap存储效率低,17MB文件占用达128MB内存。任务运行期间该对象长期驻留内存,引发频繁Full GC。解决方案:一是将数据移出JVM内存,存入Redis缓存(治本);二是优化内存使用,删除冗余字段减少对象大小(治标)。排查中需区分机器监控与JVM监控,避免误判。
RocketMQ:底层Netty频繁OS OOM
本文记录了一例Java应用因多ClassLoader加载多个Netty堆外内存分配器导致OS OOM的排查过程。虽设MaxDirectMemorySize为1G,但多个中间件独立使用PooledByteBufAllocator,各自绕过JVM直接内存限制,累计超用近1.5G。通过NMT、Arthas等工具定位到RocketMQ等组件占用过高,最终建议调低堆内存以保障堆外空间,并推动中间件优化。
OOM排查之路:一次曲折的线上故障复盘
本文详述了一次线上服务因Paimon数据湖与RocksDB集成引发的三次内存溢出(OOM)故障排查全过程。从线程暴增到堆外内存泄漏,团队历经曲折,结合MAT、NMT、async-profiler等工具,最终定位至RocksDB通过JNI申请却未释放内存的根源问题。文章系统梳理了排查思路与工具使用,并总结出保留现场、分步分析、善用专家支持等实用经验,为同类技术栈问题提供宝贵借鉴。(238字)
基于微信小程序的家政服务系统
本项目基于微信小程序,结合Spring Boot与Java技术,构建一个集家政服务预约、订单管理、用户评价及社区互助于一体的数字化平台,旨在提升家政服务效率与用户体验,推动行业智能化转型。
安全体系:如何建立可靠的安全体系?
本讲探讨RPC中的安全问题,重点解决调用方未授权调用和服务提供方被冒充的风险。通过引入基于HMAC的鉴权机制和注册中心接口绑定,实现调用身份认证与服务防伪,构建内网可控的安全通信体系。
SpringCloud框架
Nacos支持服务注册与配置管理,基于心跳机制实现服务健康监测,提供分级存储模型(命名空间、组、DataId)实现多环境隔离。相比Eureka,Nacos具备更优的实时推送、更短心跳周期,并支持AP/CP模式切换。OpenFeign结合Spring LoadBalancer实现服务调用与负载均衡,支持轮询、随机等策略。Sentinel提供流量控制、熔断降级等限流保护,通过滑动窗口算法精确控制QPS。Spring Cloud Gateway实现路由匹配、断言(如Path、Header)、过滤器链处理,支持鉴权、限流、监控等功能,提升微服务治理能力。
SpringBoot框架
SpringBoot简化了Spring应用开发,通过起步依赖、自动配置和内嵌服务器实现快速搭建。支持多种starter,如web、redis等,配置优先级为:命令行参数 > 系统属性 > properties > yml。自动配置基于@Conditional条件加载,可自定义starter实现模块化封装,提升开发效率。
《中州养老》
《中州养老》是一个面向养老院的单体后台管理系统,涵盖员工管理端与家属小程序端。系统功能完善,包含预约参观、入住退住、计费、健康监测等模块。我主要负责核心模块设计开发,如护理等级、床位管理、权限控制或智能监测等。项目采用SpringBoot+Vue3技术栈,结合Redis缓存、Nginx部署、阿里云OSS与IoT平台,实现高效稳定的数据交互与实时健康监控。通过RBAC权限模型保障系统安全,利用定时任务、线程池、索引优化等手段提升性能,支持微信登录、小程序预约、设备报警等实用功能,全面助力智慧养老信息化建设。(238字)
RPC 实战:剖析 gRPC 源码,动手实现一个完整的 RPC
本讲通过剖析gRPC源码,实战讲解如何实现RPC框架。以HelloWorld为例,演示从接口定义、代码生成到通信全过程,深入解析基于HTTP/2的请求发送与接收原理,揭示序列化、动态代理等技术在gRPC中的落地实现,帮助理解高性能RPC的核心机制。(238字)
SpringMVC框架
Spring MVC核心组件包括:DispatcherServlet(前端控制器)、HandlerMapping(处理器映射器)、HandlerAdapter(处理器适配器)、Handler(处理器)和ViewResolver(视图解析器)。请求流程为:用户请求→DispatcherServlet分发→HandlerMapping查找处理器→HandlerAdapter执行Handler→返回ModelAndView→ViewResolver解析视图→渲染响应。拦截器用于登录校验、参数处理等,实现HandlerInterceptor接口并注册配置。异常处理可通过