结合官方文档、工程资料与技术文章,整理 Spring Boot 3.5 + Java 25 微服务中 Resilience4j 在 HTTP、Redis、Kafka、DB 外部调用上的使用边界与实践建议。
软件供应链最小基线:SBOM + cosign 镜像签名
软件供应链的最小基线按问答展开:CycloneDX 生成 SBOM、cosign keyless 给镜像签名、再把 SBOM 作为 attestation 绑到镜像上,为什么这么做和绕不开的 tradeoff 一并回答。
Claude Code 为什么会拒绝 git push?harness 与 vibe coding 时代的工程边界
从一次被 Claude Code 拒绝的 git push 出发,结合最近几个月能查到的官方文档、CVE、论文与失败案例,整理 vibe coding 时代为什么需要工程边界、Claude Code 的 harness 如何分层,以及其他 AI 编码 agent 的不同取舍。
OceanBase 与 TiDB 容量压测:瓶颈定位
这轮 OceanBase 与 TiDB 容量压测的口径先定清楚,九层瓶颈逐层定位下来只有三个真落在数据库上,同一个运行区间还要按两种计费模型各算一遍账。
Liquibase (XML) 在微服务里的 14 个问题:schema 归属、changeSet ID、大表 DDL 与回滚
围绕真实项目里常见的 Liquibase(XML)反模式,按问题整理我目前更倾向采用的做法:从 changelog 怎么组织、changeSet 怎么命名,到大表 DDL、K8s 下的锁和回滚,最后是 CI 里怎么把这些挡住。
REST API 版本管理:四种常见策略、Spring Boot 4 原生支持与一些陷阱
四种常见的 REST API 版本管理策略各有代价,Spring Boot 4 的原生支持进来之后,跟历史实现方案怎么取舍、哪些坑容易踩到,得重新对一遍。
ADR 与 Service Catalog:shop-platform 的架构决策记录与服务目录约定
微服务规模增大后我开始补的两类结构化文档,问答体:ADR 记下为什么这样选,catalog-info.yaml 记下这是什么、归谁、依赖什么。
shop-starter-http-client 接入:跑通第一个 @HttpExchange 客户端
Step-by-step 指南,按这套步骤通常可以在 Spring Boot 3.5 BFF 工程里跑起第一个 @HttpExchange 出站客户端。
Feature flag 的隐藏成本:被低估的复杂度、flag 债务的成因、Keystone Interface 模式
Pete Hodgson 在 KubeCon NA 2025 讲《Feature Flags Suck!》:加开关的代价大多在水下,清理要靠元数据和激励对齐,更根本的是从源头少加,标准那一层交给 OpenFeature。
Homelab 消息通知:Alertmanager 通过 Gotify 推送告警
在 Homelab K3s 集群中,通过部署 alertmanager_gotify_bridge 将 Prometheus Alertmanager 的告警推送到 Gotify,实现自托管消息通知。记录从 Vault 存储 Token、ESO 同步 Secret、到 Alertmanager 路由配置的完整步骤。