AiHummer
中文
登录帐户
v1.2.x
{ }Swagger

升级政策

v1.2.x · 已更新 2026-08-04

稳定性是产品原则,而不是事后考虑。AiHummer 遵循这一原则 语义化版本,适用 自动前向安全的数据库迁移,并且可以 自我更新 来自CDN — 因此升级是常规操作而非高风险操作。

版本控制(语义化版本)

版本发布遵循语义化版本控制。版本由…报告 /healthz 以及由 aihummer version,因此您可以在升级前后随时确认正在运行的内容。

迁移是向前安全且自动的

在启动时,网关会自动应用待处理的数据库迁移。有两个属性可以保证这一过程的安全:

  • 向前安全。 迁移是为了使更新的二进制能够对应 它迁移到的模式,这就是使自动应用和滚动升级安全的原因。
  • 通过咨询锁的单一应用者。 迁移在……下运行 PostgreSQL 建议锁所以当几个网关同时启动时,只有一个会应用它们 其他的等待——绝不重复迁移。

[!NOTE] 迁移总是在拥有者数据库池上运行。受限的 RLS 角色 (AIHUMMER_DB_APP_URL) 是用于处理流量的,而不是用于模式更改。

更新

新版本从供应商的发行 CDN 拉取。受支持的更新方式是在服务器上执行一条命令:

aihummer update --check   # report whether a newer version is available
aihummer update           # download and apply the update

--check 不写入任何内容,因此不需要 root 权限。而应用更新会重写安装根目录并重启服务,所以要通过 sudo 执行。

预期结果: --check 打印当前版本与可用版本,随后退出,不做任何改动。aihummer update 下载构件,校验其 sha256 校验和与 cosign 签名,替换二进制文件并重启服务;之后 aihummer version 会显示新版本。若校验未通过,更新会在替换文件之前中止:正在运行的版本保持不变。

[!NOTE] 自动更新由供应商开启,而不是由您开启。 自动更新的模式与时间安排属于发行版维护的一部分, 由供应商的签名指令设定。无论是在 Web 界面还是在 aihummer settings 中都没有对应的开关; 写进 gateway.env 的自动更新变量网关不会读取——即使您在那里看到它们,也不起任何作用。 若要按自己的节奏更新,请使用上面的 aihummer update 命令。

回滚

逐项来看,哪些内容可以回滚:

  • 二进制文件 — 可以退回到上一个版本(先前发行版的构件仍保留在 CDN 上;重新安装您需要的版本即可)。
  • 数据库架构 — 迁移是前向安全的,因此旧版二进制文件也能在较新的架构上工作;不存在单独的架构回滚。
  • 插件 — 版本按安装实例管理;如有需要,可从目录中把某个插件退回到先前版本。
  • 配置 — 更新不会改动它;必要时从备份中恢复。

零停机部署

AiHummer 设计为可在不中断的情况下升级:

  • 在代理后运行 2 个以上的网关。 一次投掷一个;准备探针 (/readyz) 会将正在重启的节点保持在非轮换状态,直到它开始提供服务。
  • 调度器是单主节点的。 后台调度选举一个领导者 通过 PostgreSQL 顾问锁,因此运行多个网关不会重复 计划工作
  • 交付是幂等的。 可靠的投递加上幂等键意味着 回复永远不会在重启时发送两次,这就是滚动的原因 安全地重新启动您的网关。

接下来去哪儿