在 OpenFeature + flagd 的全链路场景下,给一个需要前后端共享语义的新 flag 做灰度发布,应该先升级后端还是先升级前端?本文通过实际案例对比两种升级路径的风险,论证为什么先 backend 兼容升级、再升级 frontend 是更稳妥的策略。
Posts for: #java25
Spring Boot 3.5 + Java 25 微服务里,Resilience4j 用在 HTTP、Redis、Kafka、DB 上的边界与最佳实践
结合最近五年的官方文档、工程资料与技术文章,整理 Spring Boot 3.5 + Java 25 微服务中 Resilience4j 在 HTTP、Redis、Kafka、DB 外部调用上的使用边界与实践建议。
Spring Boot 3.5 + Java 25 + React:在 K8s 里跑通一套跨链路 OpenFeature flag
记录一次 SB3.5 + Java 25 + kind 环境下的方案试验:不用 Spring Cloud Config Server / Netflix 套件,做出一套 Gateway + 微服务 + React 的 OpenFeature demo,并复盘 flagd、OFREP、热加载和部署过程里遇到的几个坑。
软件供应链最小基线:SBOM + cosign 镜像签名
以问答方式拆解软件供应链最小基线:用 CycloneDX 生成 SBOM、用 cosign keyless 签名容器镜像、把 SBOM 作为 cosign attestation 绑定到镜像。覆盖为什么、具体怎么做、以及绕不开的 tradeoff。
API 与 event contract 兼容性保障:工具机制与正确用法
以问答方式拆解我在 Shop Platform 中对 API 与 event contract 的兼容性保障:BFF 对外用 oasdiff 守 OpenAPI spec;内部 BFF→MS 和 MS→MS 用 JSON Schema 快照补 japicmp 的盲区;Kafka 事件用相同手法加 per-event schemaVersion。
Spring Boot 3.5 BFF 出站 HTTP 客户端:连接池、超时与 HTTP/2 实战
BFF 调用多个下游 microservice 时,连接池要不要按服务隔离?connectTimeout / readTimeout 怎么 per-service 配置?Spring Boot 3.5 内部服务用 h2c 要避哪些坑?把这三个常见问题理清楚。
shop-starter-http-client 集成指南:从零到第一个 @HttpExchange 客户端
Step-by-step 指南,按这套步骤通常可以在 Spring Boot 3.5 BFF 工程里跑起第一个 @HttpExchange 出站客户端。
shop-starter-http-client:Spring Boot 3.5 微服务 HTTP 客户端基础设施设计
Spring Boot 3.5 + Java 25 微服务下,记录我如何用一个共享 starter 统一出站 HTTP 客户端的身份传播、错误语义、可观测性和弹性。
Java 项目怎么做 contract testing:一次 Spring Cloud Contract 实践
基于 java-contract 仓库的工程复盘:REST API 和 Kafka 消息 contract 如何在 Java 25 + Spring Boot 3.5 + Maven 多模块项目里分别落地,producer 验证、consumer stubs 和 CI Quality Gates 如何串起来。
Spring Boot 3.5 下数据库实践记录:HikariCP 调优、N+1 防护、事务管理与 Testcontainers 集成
数据库往往是微服务里比较关键的依赖之一。本文结合当前仓库经验,整理 HikariCP 连接池调优、open-in-view: false 的影响、@EntityGraph 防 N+1、@Transactional 传播行为、Testcontainers @ServiceConnection 集成和 Flyway 进阶实践。