foms — 主备切换核心模块

FOMS 的领域核心(业务逻辑层),独立可安装模块。 应用壳(构建/配置/启动/首页)在纯伞仓 foms_app

内容

部分 文件 说明
包入口 foms/init.py 集群/节点 CRUD、心跳、仪表盘、远程命令队列、load_foms()
切换编排器 foms/failover.py 六步状态机 + 逆向回滚 + 防脑裂 + 健康判定器
表定义 models/*.json clusters、nodes、switchover_logs、switchover_steps、node_commands
CRUD 定义 json/*.json clusters_list、nodes_list
端点 wwwroot/api/*.dspy 心跳、命令、切换、仪表盘等
Agent scripts/foms-agent.py 被管主机守护进程(独立部署,非本包代码)
运维文档 docs/deploy-operations.md 部署 + 运维手册

切换闭环2026-08-26 补全)

健康判定器(防抖告警,半自动)→ 人工确认 → 六步状态机:

precheck → fence → promote → flip_sync → verify → converge

失败逆向回滚防脑裂不变量fence 先于 promotefence 失败硬中止。 详见 docs/deploy-operations.md

安装

pip install -e .

由 foms_app 的 build.sh 统一组装。load_foms() 时自动注册切换编排器 并拉起健康判定器后台任务(幂等)。

邻接模块(独立仓库)

  • dbbackup — 数据库备份 + 日志同步binlog 复制)
  • filesync — 运行文件同步rsync
  • hostwatch — 日志监控 + 日志分析 + 主机指标

仪表盘对这三模块的表做同库只读聚合(松耦合)。

Description
No description provided
Readme 102 KiB