知识卡片
配置服务器的单点故障与快速失败
内容
所有应用启动都依赖配置服务器去拉取配置,这意味着配置服务器本身变成了一个潜在的单点故障——它一旦不可用,所有依赖它的应用都可能启动失败,所以生产环境至少要部署两个副本。更细的一层风险在于配置服务器自己也要连远程 Git 仓库,这条链路也可能失败:解法是让配置服务器在启动时就把仓库克隆到本地(而不是等第一个请求来了才去拉),这样即使运行时和远程仓库的连接偶尔中断,也能用本地缓存兜底继续提供配置;但代价是启动阶段变慢一点,换来的是一旦仓库连不上就在启动那一刻就快速失败暴露问题,而不是拖到运行时才發現。发散:这是”尽早暴露问题”和”启动开销”之间的经典取舍——很多系统习惯把耗时校验推迟到懒加载,图启动快,但换来的是问题被藏到运行时才炸,配置服务器这里反其道而行之,主动选择啟動慢一点换故障定位快一点。
参考来源
《Cloud Native Spring in Action》第4章《Externalized configuration management》