Java

首页 标签 Java
# Java #
关注
263467内容
从Google线上故障,谈灰度发布的重要性
2025年6月12日,Google Cloud因未灰度发布新配置导致全球服务中断7小时。本文分析故障根因,强调配置灰度发布重要性,并详解基于Nacos的IP与标签灰度实现方案,助力企业提升系统稳定性,防范类似风险。
Linux
本文介绍如何将SpringBoot项目打包并部署至Linux服务器。包含工程搭建、JDK安装配置、应用上传启动及通过心跳接口验证服务健康状态的完整流程,适用于Java应用的Linux部署测试场景。(238字)
FastJson:大面积故障规避案例
本文分享了一次因Kotlin语法误用导致FastJson反序列化全局异常的排查经历。在Java/Kotlin混编工程中,开发者误将`{}`赋值给Object字段,触发FastJson解析时设置静态错误标记`kotlin_error=true`且无法恢复,最终引发全量反序列化失败。问题根源在于FastJson对Kotlin lambda的兼容性缺陷,凸显多语言混编下语法差异风险及框架局限性,强调谨慎使用与深度理解的重要性。(238字)
线程池:故障梳理总结
本文从故障与技术双重视角,总结线程池满导致服务不可用的典型场景与解决方案。涵盖数据库慢查询、热更新锁争用、DDL锁表、连接池配置不当等问题,并深入分析Dubbo、HTTP、Druid、Redis等连接池的超时与队列控制要点,倡导fast-fail理念与多维流控,帮助开发者规避常见陷阱,提升系统稳定性。(238字)
钉钉通知
本文介绍如何通过Java代码调用钉钉机器人API实现系统告警消息发送,支持文本、Markdown、@指定成员等多种格式。结合Nacos配置管理与工具类封装,可高效集成至监控系统,提升异常响应效率。注意每分钟限流20条,建议合并消息摘要发送。
一场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的鉴权机制和注册中心接口绑定,实现调用身份认证与服务防伪,构建内网可控的安全通信体系。
免费试用