- 博客(104)
- 收藏
- 关注
原创 CPU 不再飙红:Tomcat 调优 30 条军规
开启 StuckThreadDetectionValve,600 秒报警,防止死循环拖死线程。下一次 CPU 100 % 来临时,你会淡定地拿起 checklist,而不是抓瞎地调参数。关闭 keep-alive 的滥用场景,静态资源走 CDN,Tomcat 专注业务。acceptCount 太小会丢连接,太大会堆积,建议与 backlog 同值。17. NUMA 绑核,4 核以内可绑 0-3,跨 node 延迟高 10 %。使用共享线程池,多 Connector 共用 Executor,减少资源碎片。
2025-07-20 17:41:13
501
原创 把 CPU 100 % 打回冷宫:一次线上事故的全景复盘
本来 GC 不是元凶,但线程池过大后,每个线程都持有不少临时对象,Young GC 频率从 3 秒一次变成 1 秒两次,top 一看,第一种是单个线程 CPU 飙到 90 % 以上,第二种是几百个线程各吃 1 %~2 %,但总数吓人。我们用了 45 分钟完成定位、优化、回滚、验证,最终把 CPU 压回 60 %,RT 回到 180 ms。我们的现场属于第二种,2000 多个工作线程,平均每个 1 %,加起来就是 100 %。CPU 100 % 先查线程栈,再查 GC,再查 sys 态,再查业务代码。
2025-07-20 17:40:43
635
原创 Tomcat 生产 40 条军规:容量规划、调优、故障演练与安全加固
军规 35:iptables -A INPUT -p tcp --dport 8080 -j DROP 模拟网络分区,哨兵探测到后是否切流。preStop: /bin/sh -c "sleep 15 && catalina.sh stop" 让正在处理的请求完成。军规 36:echo 3 > /proc/sys/vm/drop_caches 触发缓存失效,观察 RT 抖动。%{X-Forwarded-For}i %l %u %t "%r" %s %b %D,%D 记录微秒级耗时。
2025-07-19 23:51:27
768
原创 从 Server.xml 到字节码:Tomcat 内核全景与请求旅程 10 000 字深剖
坑:Tomcat 10 以后包名从 org.apache.catalina.session.RedisSessionManager 换成非官方维护,注意兼容性。JSP 编译:如果请求 *.jsp,Jasper 把 JSP 转译成 .java,再编译成 .class,默认放在 $CATALINA_BASE/work。WebappClassLoader:每个 Context 一个实例,先自己加载 /WEB-INF/classes 与 /WEB-INF/lib,再向上委派。
2025-07-19 23:50:28
579
原创 Vue3 业务落地全景:脚手架、权限、国际化、微前端、跨端与低代码 50 条实战心法
心法 5:引入 unplugin-auto-import/unplugin-vue-components,模板中无需手写 import,Tree-Shaking 仍然生效。心法 4:环境变量分层:.env.local → .env.development → .env.staging → .env.production,防止测试配置泄漏。心法 6:husky + lint-staged 提交前跑 eslint --fix + prettier --write,MR 只关心业务逻辑。需要 vite 开发?
2025-07-18 23:29:41
699
原创 Vue3 从 0 到 ∞:Composition API 的底层哲学、渲染管线与生态演进全景
1 解析 Parse:template → AST,使用 @vue/compiler-dom,支持 v-if、v-for、slot、指令等语法糖。history API 抽象成三种模式(Web、Hash、Memory),路由守卫支持 async/await,实现“动态路由 + 权限”闭环。· PatchFlag 细粒度标记:TEXT、CLASS、STYLE、PROPS、FULL_PROPS、NEED_PATCH 等。支持插件、时间旅行、SSR 水合。
2025-07-18 23:27:56
437
原创 Redis 生产实战 7×24:容量规划、性能调优、故障演练与成本治理 40 条军规
Redis 在测试环境跑得飞快,一到线上就“莫名其妙”抖动;大促前扩容 3 倍,成本却翻 5 倍;一次主从切换,缓存雪崩导致下游 DB 被打挂;开发说“Redis 是缓存,丢点数据无所谓”,结果用户下单重复扣款。
2025-07-17 23:59:14
721
2
原创 从单线程到云原生:Redis 二十年演进全景与内在机理深剖
1999 年,Salvatore Sanfilippo 在开发一个实时访客分析系统时,发现传统磁盘型数据库无法在毫秒级响应 100 万并发连接。于是,他写了一个将全量数据放在内存、用 C 语言实现、单线程处理命令、支持简单文本协议的服务——这就是 Redis 的原型。二十年后,Redis 已不仅仅是“缓存”的代名词,而是横跨缓存、消息总线、流处理、机器学习特征存储、实时排行榜、地理位置服务等众多场景的“瑞士军刀”。
2025-07-17 23:58:20
752
原创 缓存穿透的“黑暗森林”假说——当攻击者学会隐藏恶意流量
把这套逻辑映射到缓存攻防:攻击者不再大张旗鼓地灌流量,而是伪装成“正常用户”,让穿透行为与日常噪声融为一体。在返回空结果时植入 1×1 像素 JS,要求浏览器在 100 ms 内回传特定 Cookie,寄生攻击难以实现。特征:利用开放平台的 OAuth 授权,寄生在正常 App 进程内,流量来源 IP 即为真实用户。穿透请求与正常请求混杂,P99 从 120 ms 涨到 180 ms,仍在容忍范围。定义查询序列的香农熵,正常用户熵值高(随机浏览),攻击者熵值低(顺序遍历)。
2025-07-15 23:55:57
609
原创 在百亿流量面前,让“不存在”无处遁形——Redis 缓存穿透的极限攻防实录
2024 年 3 月 18 日,某头部内容平台的监控大屏突然飘红:网关 502 比例从 0.01% 蹿至 17%,Redis 集群命中率仍保持 99.3%,数据库 CPU 却逼近 95%。十分钟后,根源浮出水面:攻击者利用“内容 ID 自增 + 随机偏移”的方式,瞬时灌入 2300 万个根本不存在的 ID,导致缓存穿透。经过 6 个月迭代,平台 Nil Ratio 稳定在 0.7%,误杀率 0.05%,单条请求新增 RT 0.8 ms,全年节省数据库费用 120 万元。幽灵仍在,但已被关进笼子。
2025-07-15 23:54:37
1058
原创 穿透、误伤与回环——Redis 缓存防御体系的负向路径与治理艺术
在构建 Redis 缓存防线时,我们往往陷入一个悖论:为了拦截 0.1% 的幽灵查询,引入了布隆过滤器、空值缓存、限流器,结果却让 5% 的正常请求被误杀,甚至引发更复杂的回环故障。本文将用“负向路径”视角,重新审视缓存穿透的治理过程,探讨如何在防御与误伤之间找到动态平衡。
2025-07-14 23:31:01
620
1
原创 从“幽灵查询”到“系统雪崩”——Redis缓存穿透的完整生命周期与治理哲学
在分布式缓存体系里,Redis 常被置于最前端,像一道护城河,把 99% 的读流量挡在数据库之外。然而,护城河并非铜墙铁壁,当外部请求携带的 key 在缓存和数据库都不存在时,这道防线瞬间失效,所有压力倾泻到下游,我们称这种现象为“幽灵查询”。
2025-07-14 23:30:27
604
原创 为什么缓存分页要把 Page 对象“拆”成 DTO?一次性能与序列化的双重考量
在把分页查询接入缓存时,我最初也犯过“直接把Page<T>塞进 Redis”的想当然错误。结果 Redis 里确实有了 key,但反序列化后却只剩一个空壳:total、current 等字段归零,records 列表直接消失。问题出在哪?答案藏在 MyBatis-Plus 的与的夹缝里。
2025-07-13 22:59:48
262
原创 Spring Cache + Redis 6 分页缓存踩坑记:为什么你的控制台一直在“查库”?
最近在把商品列表接口接入 Redis 6 缓存时,我遇到了一个看似诡异、实则经典的场景:无论刷新多少次页面,控制台始终打印 “进入分页查询”。把这 8 个细节做成一张 Checklist,贴在显示器边缘,基本可以避免 90% 的“缓存不生效”事故。如果你把缓存逻辑写在 private 或 package-private 方法里,AOP 代理直接绕过,注解就成了摆设。把缓存逻辑拆到一个独立的 Service,再通过 Spring 注入调用,才是安全做法。,序列化阶段就会抛异常,缓存写入失败。
2025-07-13 22:59:14
381
原创 三步定位 Git Push 403:从日志到解决
出现 403 不要硬推,先定位是「钥匙问题」还是「门锁问题」,再针对性解决,可避免 90% 的无效重试。远端若为组织仓库,需在 Gitee/GitHub 后台把当前账号或 Deploy Key 设为。→ non-fast-forward / lock ref 失败。若失败,90% 是密钥权限或仓库未加公钥。不一致时,HTTPS 会被 403;SSH 会提示无权限。看似权限不足,实则可能踩了多个坑。是否与仓库所有者一致。如果走 SSH,执行。
2025-07-12 23:58:42
501
原创 Spring Boot项目中大文件上传的高级实践与性能优化
随着互联网应用的不断发展,用户对文件上传功能的要求越来越高,尤其是在处理大文件时。Spring Boot作为一个高效且灵活的开发框架,为实现大文件上传提供了强大的支持。然而,仅仅实现基本的大文件上传功能是不够的,还需要进一步优化性能,提升用户体验,并确保系统的稳定性。本文将深入探讨Spring Boot项目中大文件上传的高级实践和性能优化策略,帮助开发者打造高效、可靠的大文件上传系统。
2025-07-10 23:44:51
1088
1
原创 Spring Boot项目中大文件上传的优化策略与实践
在现代的Web开发中,文件上传是一个常见的功能需求。然而,当涉及到大文件上传时,传统的文件上传方式往往会面临诸多挑战,如内存溢出、上传速度慢、网络不稳定导致上传失败等问题。Spring Boot作为当前流行的Java开发框架,提供了强大的功能支持,但如何在Spring Boot项目中高效地实现大文件上传,仍然是一个值得深入探讨的话题。本文将详细介绍大文件上传的常见问题、解决方案以及优化策略,帮助开发者在实际项目中更好地应对大文件上传的需求。
2025-07-10 23:44:12
926
原创 MyBatis-Plus:深入探索与最佳实践
MyBatis-Plus作为MyBatis的增强版,已经在Java开发中得到了广泛应用。它不仅继承了MyBatis的所有功能,还提供了许多强大的扩展功能,帮助开发者提升开发效率和代码质量。本文将深入探讨MyBatis-Plus的高级特性及其在实际项目中的最佳实践。
2025-07-08 23:49:09
639
原创 MyBatis-Plus:提升数据库操作效率的利器
在Java开发中,MyBatis是一个非常流行的持久层框架,它简化了数据库操作,提供了灵活的SQL映射功能。然而,随着项目规模的扩大和业务复杂度的增加,开发者需要更高效、更便捷的方式来处理数据库操作。MyBatis-Plus应运而生,它在MyBatis的基础上进行了扩展和优化,提供了许多强大的功能,帮助开发者提升开发效率和代码质量。本文将深入探讨MyBatis-Plus的核心特性及其在实际项目中的应用。
2025-07-08 23:48:34
957
原创 YOLOv11 架构优化:提升目标检测性能
YOLOv11 作为目标检测领域的最新成果,其架构优化是提升性能的关键。本文将详细探讨 YOLOv11 的架构改进,以及这些改进如何帮助模型在实时应用中实现更高的准确性和效率。
2025-07-07 20:45:14
749
原创 YOLOv11 技术详解:架构优化与性能提升
YOLOv11 是目标检测领域中一个备受瞩目的新版本,它在保持实时性的同时,显著提升了检测的准确性和效率。本文将深入探讨 YOLOv11 的架构改进、性能优化以及它在不同应用场景中的表现。
2025-07-07 20:44:43
562
原创 数据挖掘:深度解析与实战应用
在当今数字化时代,数据挖掘已经成为企业获取竞争优势的关键技术之一。通过从大量数据中提取有价值的信息,企业可以更好地理解客户需求、优化业务流程、提高运营效率。本文将深入探讨数据挖掘的核心技术、实际应用案例以及如何在企业中实施数据挖掘项目。
2025-07-06 23:51:47
996
1
原创 数据挖掘:从理论到实践的深度探索
在当今数字化时代,数据已经成为企业决策的重要依据。数据挖掘作为一门从大量数据中提取有价值信息的技术,已经广泛应用于各个领域,如金融、医疗、零售、互联网等。本文将深入探讨数据挖掘的基本概念、主要技术和实际应用案例,帮助读者更好地理解数据挖掘的价值和应用。
2025-07-06 23:51:16
836
原创 Spring Boot + 本地部署大模型实现:安全性与可靠性保障
在将大语言模型集成到 Spring Boot 应用中时,安全性和可靠性是两个关键因素。本地部署的大模型虽然提供了强大的功能,但也可能带来一些安全风险,如数据泄露、模型被恶意利用等。本文将介绍如何在 Spring Boot 应用中保障本地部署大模型的安全性和可靠性,确保应用的稳定运行。
2025-07-04 23:58:02
1049
原创 Spring Boot + 本地部署大模型实现:优化与性能提升
在将大语言模型集成到 Spring Boot 应用中时,性能优化是一个关键环节。本地部署的大模型虽然提供了强大的功能,但也可能带来一些性能挑战,如响应时间较长、资源占用较高等问题。本文将介绍如何在 Spring Boot 应用中优化本地部署大模型的性能,确保应用的高效运行。
2025-07-04 23:57:29
1073
1
原创 Spring Boot + 本地部署大模型实现:基于 LangChain4j 的集成实践
在将大语言模型集成到本地应用中时,LangChain4j 提供了一个强大的框架来简化这个过程。LangChain4j 是一个专为 Java 开发者设计的框架,帮助开发者轻松接入各类大模型并进行自然语言处理。本文将介绍如何在 Spring Boot 应用中集成 LangChain4j 来实现本地部署的大模型调用。
2025-07-03 23:43:17
356
原创 Spring Boot + 本地部署大模型实现:基于 Ollama 的集成实践
在当今的软件开发中,将大语言模型集成到本地应用中已经成为一种趋势。Spring Boot 作为 Java 开发中的一个流行框架,提供了强大的功能来构建和部署应用。本文将介绍如何在 Spring Boot 应用中集成本地部署的大模型,特别是通过 Ollama 这个工具来实现。
2025-07-03 23:41:52
280
原创 Docker:容器化技术的基石与实践指南
在现代软件开发和部署中,Docker 作为一种领先的容器化平台,已经成为了开发人员和运维工程师不可或缺的工具。它不仅简化了应用的部署过程,还提高了应用的可移植性和可扩展性。本文将深入探讨 Docker 的核心概念、基本操作以及如何在实际项目中应用 Docker 来实现高效的容器化部署。
2025-07-02 23:52:29
1256
原创 Docker:高级特性与最佳实践
在现代软件开发和部署中,Docker 已经成为了不可或缺的工具,它不仅简化了应用的部署过程,还提高了应用的可移植性和可扩展性。本文将深入探讨 Docker 的高级特性,包括网络管理、存储管理、Docker Compose、Docker Swarm 和安全最佳实践,帮助你在实际项目中更好地应用 Docker。
2025-07-02 23:51:51
574
原创 Linux 系统管理:高效运维与性能优化
在现代 IT 基础设施中,Linux 系统因其稳定性和灵活性而被广泛应用于服务器和数据中心。本文将深入探讨 Linux 系统管理的关键技术和最佳实践,帮助系统管理员高效运维和优化系统性能。
2025-07-01 23:57:48
1277
原创 Linux 系统管理:自动化运维与容器化部署
在现代 IT 基础设施中,自动化运维和容器化部署是提高系统管理效率和可维护性的关键。Linux 系统因其稳定性和灵活性而被广泛应用于服务器和数据中心。本文将深入探讨 Linux 系统管理中的自动化运维和容器化部署技术,帮助系统管理员实现高效运维和快速部署。
2025-06-30 23:59:42
667
1
原创 Linux 系统管理:高效运维与性能优化
在现代 IT 基础设施中,Linux 系统因其稳定性和灵活性而被广泛应用于服务器和数据中心。本文将深入探讨 Linux 系统管理的关键技术和最佳实践,帮助系统管理员高效运维和优化系统性能。
2025-06-30 23:59:11
702
原创 Spring Cloud:服务监控与追踪的高级实践
在微服务架构中,服务监控与追踪是确保系统稳定性和性能的关键环节。随着系统规模的扩大和业务复杂度的增加,及时发现和解决问题变得尤为重要。Spring Cloud 提供了多种服务监控与追踪工具,帮助开发者在微服务架构中实现全面的监控和追踪。本文将深入探讨 Spring Cloud 的服务监控与追踪机制,并通过具体的实战项目,展示如何在微服务应用中实现服务监控与追踪。
2025-06-29 23:55:14
1168
原创 Spring Cloud:分布式事务管理与数据一致性解决方案
在微服务架构中,分布式事务管理是一个关键问题。随着系统规模的扩大和业务复杂度的增加,确保数据一致性和事务的完整性变得尤为重要。Spring Cloud 提供了多种分布式事务管理解决方案,帮助开发者在微服务架构中实现数据一致性和事务管理。本文将深入探讨 Spring Cloud 的分布式事务管理机制,并通过具体的实战项目,展示如何在微服务应用中实现分布式事务管理。
2025-06-29 23:54:43
1056
原创 Spring Cloud:高级特性与最佳实践
在现代软件开发中,Spring Cloud 作为基于 Spring Boot 的微服务框架,提供了丰富的高级特性和最佳实践,帮助开发者构建高效、可维护的微服务应用。本文将深入探讨 Spring Cloud 的高级特性,并通过具体的实战项目,展示如何使用这些特性优化微服务应用的性能和可维护性。
2025-06-28 23:49:30
995
原创 Spring Cloud:微服务架构的基石与实践指南
在现代软件开发中,微服务架构已经成为构建大型分布式系统的重要方式。Spring Cloud 作为基于 Spring Boot 的微服务框架,提供了一套完整的解决方案,帮助开发者快速构建和管理微服务应用。本文将深入探讨 Spring Cloud 的核心组件及其在微服务架构中的作用,并通过一个具体的实战项目,展示如何使用 Spring Cloud 构建一个完整的微服务应用。
2025-06-28 23:48:40
878
原创 Java底层原理:深入理解JVM类加载机制与反射机制
在Java开发中,JVM类加载机制和反射机制是Java语言的核心特性之一。它们不仅影响Java应用的运行效率,还为Java开发者提供了强大的动态编程能力。本文将深入探讨JVM类加载机制和反射机制的底层原理,帮助你更好地理解Java应用的运行机制。
2025-06-27 23:54:08
635
原创 Java底层原理:深入理解JVM内存模型与线程安全
在Java开发中,JVM内存模型(JMM)和线程安全是理解Java并发编程的关键。本文将深入探讨JVM内存模型的底层原理以及线程安全的相关概念和实践,帮助你更好地理解Java应用的运行机制。
2025-06-27 23:53:29
960
原创 Java底层原理:深入理解JVM性能调优与监控
在Java开发中,JVM性能调优和监控是理解Java性能优化和故障排查的关键。本文将深入探讨JVM性能调优和监控的底层原理,帮助你更好地理解Java应用的运行机制。
2025-06-26 23:53:00
1078
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人