发布模型
OpenFlare 的发布模型以完整配置版本为中心,而不是在线修改节点配置。
标准链路:
text
修改规则 -> 预览/查看 diff -> 发布 -> 生成完整配置版本 -> 激活版本 -> Agent 拉取 -> 本地应用 -> 上报结果发布规则
Server 发布时必须:
- 读取全部启用的
proxy_routes。 - 读取 Server 侧 OpenResty 主配置与结构化参数。
- 渲染完整 OpenResty 配置。
- 计算
checksum。 - 写入
config_versions。 - 切换激活版本。
- 让 Agent 在后续 heartbeat 中发现并应用。
版本号格式固定为 YYYYMMDD-NNN。
不可变历史
历史版本不可变。回滚不是修改旧版本,而是重新激活旧版本。
全局同时只能有一个激活版本,当前不做按节点分组的差异化版本。
Agent 应用策略
Agent 发现新版本后会备份旧文件,写入主配置、路由配置、证书与必要 Lua 资源,再执行配置校验和 reload。
如果新配置激活失败,Agent 必须尝试恢复运行;回滚成功时上报警告,回滚后仍无法恢复运行时上报失败。
某个目标 version + checksum 一旦应用失败并回退,Agent 会在本地状态中阻断该目标重复应用。只有远端激活版本或 checksum 发生变化,才允许再次尝试。