问题
Redis 故障时全栈 fail-open 且无熔断器,同一反模式横跨三子系统:
- 鉴权
is_revoked 返回 false(A3)→ 已吊销 token 复活
- 限流
RateLimiter::allow 返回 true → 限流失效,允许 DoS
- 去重 SETNX 异常后继续(由 DB 唯一索引兜底,dedup spec)
connect_timeout=2s 致每请求先阻塞再 fall through,连接池耗尽、延迟雪崩、DB 被打穿。其中 RateLimiter 无任何兜底(不同于去重有 DB 唯一索引)。
位置
common/auth/jwt_store.hpp:87-88;common/dao/data_redis.hpp(RateLimiter);transmite/source/transmite_server.h:191-194
影响
Redis 宕机期间限流失效允许 DoS、已吊销 token 复活;延迟雪崩 + DB 被打穿。
建议
引入统一的 Redis 健康探针 + 熔断器;Redis 不可用时短路(仅服务 L1/本地),并对限流采用本地令牌桶降级而非 fail-open。
来源
跨系统基础设施评审(登录鉴权 + 多级缓存 + 分布式锁,2026-07-07)
问题
Redis 故障时全栈 fail-open 且无熔断器,同一反模式横跨三子系统:
is_revoked返回 false(A3)→ 已吊销 token 复活RateLimiter::allow返回 true → 限流失效,允许 DoSconnect_timeout=2s致每请求先阻塞再 fall through,连接池耗尽、延迟雪崩、DB 被打穿。其中 RateLimiter 无任何兜底(不同于去重有 DB 唯一索引)。位置
common/auth/jwt_store.hpp:87-88;common/dao/data_redis.hpp(RateLimiter);transmite/source/transmite_server.h:191-194影响
Redis 宕机期间限流失效允许 DoS、已吊销 token 复活;延迟雪崩 + DB 被打穿。
建议
引入统一的 Redis 健康探针 + 熔断器;Redis 不可用时短路(仅服务 L1/本地),并对限流采用本地令牌桶降级而非 fail-open。
来源
跨系统基础设施评审(登录鉴权 + 多级缓存 + 分布式锁,2026-07-07)