离线韧性
临时失去控制面连接时,实时流量路径与管理工作流的行为会有所不同。运行中的 AISIX 网关可以在重新连接期间继续使用最近一次接受的配置提供服务,但无法接收新资源,部分 AISIX Cloud 服务也仍然依赖连接。
离线韧性保护的是依赖网关现有配置的流量。它并不意味着控制面可有可无,也无法让自身发生故障的外部上游恢复可用。
继续使用已接受的配置
网 关应用有效的投射配置后,会将该快照保存在内存中,并在配置连接不可用时继续使用它提供服务。AISIX 不会仅因未收到更新的配置事件就让网关退出流量服务。应将配置新鲜度用于运维告警,而不是用作负载均衡器的健康判定条件。
连接恢复前,资源变更不会到达网关。控制面在中断期间接受的变更会等待投射,不会影响正在提供服务的快照。
从缓存配置重启
无论网关从 AISIX Cloud 接收资源还是直接从 etcd 读取资源,磁盘快照缓存都默认关闭。运行中的网关断连后,仍会保留内存中已接受的配置。若还需要在进程重启后恢复该配置,请显式启用持久化:
managed:
snapshot_cache_enabled: true
snapshot_cache_path: "/var/lib/aisix/config_cache.json"
managed.snapshot_cache_enabled: false 会关闭缓存读取、编码和写入,即使已经配置了路径。开启后,省略路径或设为 null 时使用 /var/lib/aisix/config_cache.json;空路径仍会禁用持久化。参见 AISIX Cloud 启动配置。
此前版本在托管模式下默认开启缓存。升级后若需保留磁盘恢复能力,请设置 snapshot_cache_enabled: true;仅保留原有的 snapshot_cache_path 不再启用缓存。
重启后的网关只有在启用缓存且缓存包含有效快照时,才能在重新连接期间提供服务。AISIX 会忽略缺失、不可读、损坏或不兼容的缓存。
没有可用快照时,网关在连接成功并应用有效配置之前没有任何东西可以提供服务。完成任意一次初始 etcd 连接后,指标/状态监听器上的 GET /status/ready 会在网关等待期间返回 503。带凭据的连接如果停滞,会发生在 AISIX 创建任何监听器之前,因此在更早的这个阶段,指标/状态端口同样会拒绝连接。/readyz 始终没有响应:承载它的代理监听器在应用第一个配置之前不会绑定。参见启动与第一个配置。
启用持久化时,请为每个网关实例提供独立的可写状态目录。api7/aisix Helm Chart 默认使用每个 Pod 独立的 emptyDir:同一 Pod 内的容器重启可以保留数据,但 Pod 被替换后数据就会丢失。若需跨 Pod 替换恢复配置,必须提供替换后仍可用的存储,并为每个副本使用独立的缓存位置。没有可用缓存的替代 Pod 必须重新连接并获取配置,之后才会打开代理监听器。
快照包含未经加密的模型服务提供方凭证和其他敏感配置。请像保护配置存储一样限制缓存目录及其备份的访问权限;Base64 编码不能保护密钥。
依赖连接的工作流
网关分别处理以下依赖控制面的工作流:
| 工作流 | 断开连接时的行为 |
|---|---|
| 资源投射 | 新增和更新的资源不会到达网关,最近一次接受的快照继续提供服务。 |
| AISIX Cloud 预算 | AISIX 最多复用上次决策 AISIX_DP_BUDGET_STALE_MAX_SECONDS 秒,默认值为 600。没有缓存决策时,会拒绝请求。超过该过期窗口后,按上次决策返回的故障模式处理。参见预算的可用性与缓存。 |
| AISIX Cloud 用量遥测 | 失败的批次会被丢弃。AISIX 不会持久化、重试这些批次,也不会在连接恢复后重放它们。实时请求不会为了保留遥测数据而失败或延迟。 |
| 外部可观测性导出器 | 网关直接向各个已配置的目标发送数据,因此仅控制面连接中断不会影响导出。导出仍然依赖网关与目标之间的连接。 |
| 心跳与证书轮换 | 心跳状态停止更新。证书轮换需要控制面连接;当前证书仍然有效时,网关会继续使用它。 |
检测与恢复
正在使用快照提供服务的网关仍处于流量就绪状态。请单独检查管理路径的健康状态:
GET /status/config报告source.connected: false,并保留已应用的版本号和配置哈希。GET /status/ready在应用有效配置后仍返回200;重启后没有可用快照时返回503。aisix_config_*指标提供连接状态、已应用配置和加载失败信息,可用于告警。- 心跳停止后,AISIX Cloud 中的网关状态会过期。
完整的状态字段、指标和告警示例参见配置状态。指标与状态监听器不提供认证,应仅允许私有网络访问。
恢复时,请恢复网关到 AISIX Cloud 控制面端 点的 DNS、网络和 TLS 连接。确认心跳恢复,对比已发布和已应用的版本号,并通过恢复后的网关发送调用方可见的请求。实时请求成功可以确认流量路径恢复,但无法恢复中断期间被丢弃的遥测批次。