枫莹 (@fengying.miao) 在 NEWAPI的High Availability的实现 中发帖
最近 IDC 机房有一段时间不太稳定,经常出现连接失败,所以花了一天左右给 New API 搭了一套偏实用向的 High Availability 架构。
目前还未实现真正意义上的全链路多活,而是先解决几个核心问题:
运行时 API 节点不再依赖单机;
PostgreSQL 有主备和自动切换;
Redis 有 Sentinel 仲裁和故障切换;
各节点通过 WireGuard 专用内网访问数据库、缓存和健康检查;
应用侧统一走本地 HAProxy 入口,避免业务服务直接感知后端主备变化。
现在的流量大概是:
国内的入口节点承担主要运行时流量,大约 60%;
主节点除了管理后台,也承担一部分运行时流量,大约 38%;
家庭服务器通过反向 SSH 隧道接入,只给 2% 低权重流量,主要用来做兜底和验证;
保底节点平时不承担主流量,主...