yangshan.link / 山之志 · 后端工程笔记

Backend · JVM · Authorization

把踩过的坑,写成
下次能直接抄的步骤

线上排障、权限建模、基础设施搭建。不写"是什么",只写"当时怎么定位到的、最后改了哪一行"。

top -Hp 8123 — flame java.lang.Thread.run Executor… RuleEngine.eval Pattern.matcher backtrack ×∞ CPU 380% · 单线程占满 GW 网关 热点服务 DB 存储
Focus
Java / JVM
Spring Cloud、多租户平台、线上性能
In progress
统一权限
功能准入 × 数据范围 × 字段可见性
Articles
3 篇
只写自己完整跑通过的
Since
2026
更新随缘,但每篇都能复现

最近写的

全部归档 →

JVM 线上 CPU 飙高排查:从 top 到火焰图的一条完整链路

凌晨三点告警,CPU 98%,重启能好但两小时后复发。这篇把当时敲的每一条命令按顺序排出来——怎么用 top -Hp 锁到线程、怎么把线程号换算成 jstack 里的 nid、什么时候该上 async-profiler 而不是继续看堆栈,以及四类高频真凶的特征指纹。

JVM线上排障性能arthas

Hermes 搭建指南:从零到能收发第一条消息

一份不跳步的部署手册。容器编排、存储与元数据初始化、集群参数、接入方 SDK 配置、以及上线前必须验证的七件事——包括那些官方文档里写了但很容易读漏的默认值。

Hermes基础设施部署

从 RBAC 到 ABAC:一套权限模型怎么长出三个维度

角色够用,直到资源类型从"只有设备"扩到组织、配置、人员。这篇讲清楚功能准入、数据范围、字段可见性为什么必须拆成三条正交的轴,以及怎么用一条并行链路把老实现平滑换掉。

权限架构RBACABAC

MySQL 深分页的四种改法,以及它们各自的失效场景

游标分页、延迟关联、覆盖索引、预计算页表——为什么"换成 id > ?"在带排序和过滤条件时会悄悄给出错误结果。

这个博客的写法

一篇文章合格的标准是:三个月后的我照着做,不用再查任何东西

所以每篇都带完整命令、真实输出片段、以及"这一步失败了怎么办"

大概在做什么

关于我 →

平台后端

Java · Spring Cloud · 多租户

做 IoT 能源平台的后端,日常和设备、站点、组织这几种资源打交道。服务不算多,但每一个都要面对"谁能看到哪些行"。

统一权限

当前主线

把散在六七处的硬编码判断收敛成一套模型:功能准入、数据范围、字段可见性三条轴,加一条可灰度、可回退的并行链路。

线上性能

被迫点亮的技能

CPU、GC、慢 SQL、线程池。工具链固定就那几样,难的从来不是工具,是在告警响的那五分钟里按对顺序。