后端架构

查缓存没命中就全砸到库上,连接池满了怎么办?我用 CompletableFuture 把重复请求合并了一下

请求合并是解决缓存穿透的高效方案:用 ConcurrentHashMap 存 CompletableFuture,首个线程执行查询,后续线程挂起等待同一结果,避免数据库连接池被重复查询打满。需注意用 Optional 包装空值、finally 清理 Map、设置容量上限防内存膨胀,配合本地缓存可消化缓存过期瞬间的并发流量。