切换主题
单实例与多实例部署
默认运行模式是单活。需要多个平台实例时,为所有实例设置 SPARKTIDE_CLUSTERED=true 并共享 PostgreSQL。
切换步骤
- 停止接收新任务,等待活动任务完成,备份数据库。
- 停止所有旧实例。
- 对全部新实例使用相同数据库、管理员和模型/密钥配置,统一启用 clustered。
- 为每个实例设置独立服务地址,通过负载均衡接入。
- 验证跨实例读取事件、同一幂等键和确认请求的行为,再恢复流量。
禁止混用单活与 clustered 模式。当前 Compose 把服务映射到固定宿主端口,不能直接 --scale platform=2;应调整部署编排和网关,不给不同副本绑定同一个宿主端口。
一致性与并发
同库实例通过短事务与数据库锁协调注册、运行、幂等、事件序号和审批。最大并发受 SPARKTIDE_MAX_RUNS 限制。事件读取可以到达任一同库实例。
此模式优先保证一致性。实际吞吐与数据库锁、模型延迟、连接池和业务回调有关,应针对自身流量测试。
失联后的处理
执行器每 5 秒心跳;超过 30 秒未续期,其他实例会把其未完成任务终结为 FAILED / WORKER_LOST。已保存事件仍可读取,未知副作用不会自动重放。
运维人员应查找对应 runId、traceId 和业务 callId,核对业务事务与工具账本后,再决定是否重新发起用户请求。重放事件与重跑任务是不同操作。
