先说结论
我是余杰,写了 8 年 Java 后端,杭州人,习惯在凌晨被告警叫醒,然后一边骂骂咧咧一边把问题按在地上摩擦。这个站叫「非攻」——墨子说的是不攻击别人,我的理解是:只攻 Bug,不攻同事。
站里有两类东西:一类是技术笔记(Java、Spring、Redis、MQ、MySQL……面试和日常都用得上);另一类是《生产问题排查手记》,专门记录线上出事时怎么一步步查出来的——现象、命令、根因、复盘,全都写清楚,既是给自己的备忘录,也希望你下次出事时能少熬半小时夜。
我踩过的三片“坑地”
我怎么排查问题
八年下来,我的“排查心法”其实很朴素,只有五句话,贴在显示器上:
- 先保留现场,再动手。重启是个好按钮,但它也会带走证据(jstack、heap dump、日志、监控截图先存下来)。
- 先问范围,再问原因。是全部用户还是部分?从几点开始?最近改过什么?有没有规律?
- 分层定位,别跳步。网络 → 机器 → 进程 → 线程 → 代码;每一层用一条命令排除,别一上来就怀疑 JVM。
- 先止血,再根治。限流、降级、摘流量、回滚,先让业务活过来,然后再慢慢查。
- 每次事故都写复盘。写不清楚,就说明没真懂;这个站的“排查手记”就是这么来的。
技术栈速览
| 领域 | 常用 | 备注 |
|---|---|---|
| 语言与框架 | Java、Spring Boot、Spring Cloud、Dubbo、MyBatis | 主力,从 JDK 8 用到新版本 |
| 数据与缓存 | MySQL、Redis、MongoDB、Elasticsearch、Sharding-JDBC | 分库分表、多级缓存、分布式锁 |
| 消息与调度 | RocketMQ、RabbitMQ、Kafka、XXL-JOB、Canal | 削峰、异步、Binlog 实时同步 |
| 部署与运维 | Linux、Docker、Nginx、Nacos、Apollo、ELK、Grafana | 环境搭建、发布流程、排查手册 |
| AI 应用 | LLM、Function Calling、知识库检索、AI Coding | 结构化输出,人工确认后才落库 |
近几年的“战绩”
- 做过日均千万级的短信中台:多通道智能路由,触达率、对账、SDK 一条龙。
- 做过财税 SaaS 的申报清册:重构后新地区接入从 2 周缩到 3–5 天,征期高峰保持平稳。
- 做过税局数据网关:缓存合并 + 限流熔断,局端重复调用约减半,失败率明显下降。
- 把大模型接进业务:只读、可溯源、人工确认后才落库——AI 说了不算,会计说了才算。
- 2026 年业余时间,用 AI Coding Agent 独立交付了 App 与小程序:人负责架构、约束与验收,机器负责敲键盘。
关于这个站的几件小事
- 排查手记里的案例,是怎么来的?它们综合了我自己踩过的坑和公开的技术复盘、官方文档,再按“第一人称”重新讲一遍;涉及公司、客户、内网信息的细节一律做了脱敏或改写。命令和原理是认真核对过的,故事里的“我”偶尔会稍微夸张一点点——毕竟凌晨三点的记忆本来就不太可靠。
- 为什么文章里总有图?因为我自己看文章最怕“一大段文字然后一句‘如图所示’”,所以能画的都画了。
- 发现错误怎么办?欢迎留言指出。线上问题最怕以讹传讹,你帮我纠错,就是帮下一个凌晨被叫醒的人。
- 接私活吗?接。企业官网、小程序、App 初版、AI 知识库客服,都在页面下方的服务入口里,价格透明、分阶段付款、源码交付。
一句话介绍自己:8 年后端,专治“在我电脑上是好的”。