作者:遥望星星

虚拟线程实战:把线程池换成虚拟线程后发生了什么

把线程池换成虚拟线程 我们有个网关聚合服务,每请求要并发调 5 个下游,原来用 200 个平台线程的池子,峰值打满就排队。用户多的时候,线程池耗尽,请求在队列里干等,RT 从 200ms 飙到 2 秒。听说 JDK 19 的虚拟线程能把"一个任务一个线程"做到近乎免费,就拿来做了对照实验,想看看是不

遥望星星 遥望星星 发布于 2023-01-28

Spring Authorization Server 搭建统一认证

自研鉴权撑不住了 公司原来的登录是各个系统各写一套 Session,互不相通。用户在我们三个产品里要登三次,运营吐槽了半年。我们决定用 Spring Authorization Server(基于 Spring Security 6)搭一个统一认证,做 OAuth2 授权中心,让所有子系统一处登录、

遥望星星 遥望星星 发布于 2023-01-14

生产环境 OOM 自动 dump 与分析流水线

半夜的 OOM,却没留下证据 有天凌晨一个服务 OOM 自杀重启,等我早上到公司,堆已经被 GC 一遍、镜像重建了,啥都看不到。这种"看过现场却没拍照"的故障最折磨人,只能凭日志猜是哪块吃内存,结果猜了一上午猜错方向。从那以后我定下规矩:任何 Java 服务 OOM 必须自动留证,不能让现场随重启蒸

遥望星星 遥望星星 发布于 2023-01-08

Nginx 在 Java 架构中的常见用法与调优

我们为什么离不开 Nginx 后端是 Spring Boot 起的 8080 服务,但直接把 8080 暴露在公网既不安全也难扩展。一来没有 TLS 卸载,二来单实例挂了没容灾,三来限流得在每个应用里写。Nginx 在我们架构里身兼数职:反向代理、负载均衡、限流、长连接优化。它配一次能管一片服务,是

遥望星星 遥望星星 发布于 2022-12-26

Spring Framework 6 新特性与 AOT 支持

为什么关心 AOT Spring Boot 3.0 刚出,主打对 GraalVM 原生镜像的支持。我们一个网关侧边车想压启动时间,原来 JVM 冷启动要 2 秒多,在弹性伸缩场景里每次扩容都得等,想试试原生镜像能不能降到几百毫秒。决定试 AOT 之前,我先把"AOT 到底是什么"搞清楚,不然很容易把

遥望星星 遥望星星 发布于 2022-12-16

Spring Bean 初始化顺序那些事

一个偶发的空指针 服务启动时偶发 NPE,堆栈指向缓存预热器里取到的 RedisTemplate 是 null。但 RedisTemplate 明明配好了——问题是它被用在了配置类的 @PostConstruct 里,而那时它依赖的连接工厂还没就绪。重启三四次才复现一次,最磨人。这种"时灵时不灵"的

遥望星星 遥望星星 发布于 2022-12-05

一次主从延迟导致的线上数据不一致

用户投诉:刚改完昵称又变回去了 那天下午客服转来 7 个工单,都是"改了资料刷新又回旧值"。我第一反应是缓存,清了一遍没用。查监控才发现,是主从延迟在作怪——前端查到了还没同步过去的旧数据。更诡异的是,有的用户反馈"改完看是对的,过两秒刷新又变回去",典型的读到了从库旧快照。 定位过程 用户在主库改

遥望星星 遥望星星 发布于 2022-12-04

Service Mesh 之 Istio 接入体验与代价评估

为什么想上 Mesh 团队有 30+ 微服务,TLS、重试、熔断这些逻辑散落在每个 Dubbo/Spring Cloud 应用里,升级一次 SDK 全员陪跑。一次熔断规则改版,光是让各服务升级 SDK 就花了两周,还有三个老服务因为没人维护迟迟不动。我们想试试把这部分下沉到基础设施,于是拉了一套 I

遥望星星 遥望星星 发布于 2022-11-23

Spring4Shell 漏洞应急响应与修复

周五下午的告警 2022-03-31 Spring4Shell(CVE-2022-22965)被公开,我们安全群里炸了。我负责的两个服务跑在 Spring Boot 2.3 上,得立刻确认是否在影响范围内。应急响应的第一步不是升级,而是确认影响面——盲目全量升级可能引入别的问题,先搞清楚"我中没中"

遥望星星 遥望星星 发布于 2022-11-20

Spring 事件驱动改造同步调用链

下单接口越来越慢 createOrder 接口 RT 一度到了 800ms,点进去一看,主链路里塞了发短信、记风控、推积分三件"顺带"的事。它们慢一点,用户下单就卡一下。最糟的是,积分服务抖动时连下单都失败了,核心链路被旁路拖死。监控里下单 RT 的 P99 曲线和积分服务的 RT 曲线几乎同涨同落

遥望星星 遥望星星 发布于 2022-11-19