跳转到内容

SLA 与高可用边界

本文档适用于六虚拟机全离线部署:三台应用 / Swarm 节点、两台 PostgreSQL 高可用节点和一台 witness 节点。

层级 当前设计 高可用边界
应用运行时 Enterprise New compose 在固定的 tier0_app_active_node 上运行。 backendredisEMQXSourceFlowEventFlowMarimoOPC UA Server 尚未自动多副本化。
HTTP 入口 三台应用节点运行 keepalived APP VIP + HAProxy。 VIP 可漂移。HAProxy 转发到活动节点的 8088/TCP,并检查 /healthz
MQTT / OPC UA EMQX 使用 1883/8883/8083/8084;OPC UA 使用 4840 这些端口直接连接活动节点,不包含在 TCP VIP 代理中,因此不承诺协议入口高可用。
数据库 PostgreSQL / TimescaleDB 流复制 + repmgr + witness + DB VIP。 primary 故障时 standby 可自动提升。异步复制不能承诺严格零 RPO。
备份与恢复 backup-db.sh / restore-db.sh 提供可恢复性,但不等同于在线高可用。
服务对象 推荐表述 约束
平台 HTTP 入口 从月可用性 99.5% 开始。 VIP 故障切换不等同于活动应用节点自动迁移。
数据库访问 运维目标:RTO <= 2 minutes RPO 取决于复制延迟。同架构历史故障切换测试约为 59-64 秒。
MQTT / OPC UA 当前设计不承诺 HA SLA。 必须先增加 HAProxy TCP 代理、独立 VIP 或服务集群。
备份与恢复 每日备份;重大变更前必须备份。 恢复时间取决于数据量和现场 I/O。

在声明 99.9% 或更高可用性之前,需要完成应用自动迁移或多副本部署、协议入口高可用、监控告警和恢复演练。不要把规划能力描述为已交付能力。

每次部署或升级至少需要满足以下条件:

  • verify-materials.sh 通过,交付包 SHA256 校验通过。
  • 三台 Swarm 节点均为 Ready
  • APP VIP /healthz/readyz 返回 200,首页和 /uns 可访问。
  • 活动节点上的七个 compose 服务正在运行。
  • DB VIP:5432 可访问,primary、standby 和 witness 拓扑正常。
  • 默认账号可以实际登录。不要只根据端口、容器或 HTTP 200 响应判断 IAM 初始化成功。
  • HTTP、EMQX 端口、WebSocket/WSS 和 OPC UA TCP 冒烟检查通过。

每天运行以下命令:

Terminal window
./bin/verify.sh --site config/site.conf
./bin/smoke-business-emqx.sh --site config/site.conf

至少配置以下告警:

  • APP VIP /healthz/readyz 失败。
  • DB VIP 不可达、无 primary、split-brain 风险、复制中断或复制延迟超过阈值。
  • keepalived、HAProxy、PostgreSQL 或 repmgrd 状态异常。
  • backendredisEMQX 等关键容器退出或频繁重启。
  • 数据盘使用率超过 80% / 90%
  • 最新备份失败或未生成。
演练 频率 验证标准
APP VIP 故障切换 交付前和每季度。 停止当前 VIP 节点上的 keepalived 后,/healthz/readyz 恢复。
DB primary 故障 交付前和每半年。 standby 被提升,DB VIP 恢复,旧 primary 被重建为 standby。
数据库恢复 每月抽样,并在重大变更前执行。 备份可恢复。恢复后 verify、冒烟检查和登录验证通过。
物料验证 每次打包构建。 源物料、包 SHA 和解包验证通过。
  1. 先确认影响范围:HTTP、MQTT、OPC UA、数据库以及单节点影响。
  2. 优先恢复 VIP、HAProxy、活动应用和数据库 primary。
  3. 保留日志、数据目录和备份。不要直接清理或覆盖事故现场。
  4. 对于数据库事件,先确定当前 primary,再决定故障切换、重新加入或恢复。
  5. 恢复后运行 verify、冒烟检查和实际登录验证。
  • 将应用改为多副本,或建立可验证的活动节点自动迁移流程。
  • 将 EMQX 集群化,或通过 HAProxy TCP / TLS 和专用 VIP 路由。
  • 通过 HAProxy TCP、专用 VIP 或服务集群为 OPC UA 提供高可用入口。
  • 使用 PostgreSQL 同步复制,或明确可接受的复制延迟和 RPO。
  • 自动化备份计划、异地复制和定期恢复演练。
  • 将容器、主机、数据库、日志和黑盒探针接入统一告警。

相关流程:运维 Runbook标准端口清单