MiMo Code 的服务健康自检是上线前强制校验环节,通过本地化探测/health端点或TCP连通性检测,在容器启动后、流量切流前执行,需满足HTTP 200、status="UP"、依赖全UP、响应≤3000ms才判定通过。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在 MiMo Code 的自动化部署流程中,服务健康自检不是可选动作,而是上线前的强制校验环节。它确保新版本服务真正就绪、可响应、无关键异常,避免“部署成功但不可用”的假象。
自检触发时机与执行位置
健康检查由部署流水线自动触发,通常发生在容器启动完成、端口监听就绪之后,但早于流量切流或服务注册。它不依赖外部调度器轮询,而是由 MiMo Code Agent 主动发起一次本地化探测(如调用 /health 或 /actuator/health),并在 10 秒内等待响应。
- 若服务未暴露健康端点,MiMo Code 会默认尝试 TCP 连通性检测(目标端口是否可建立连接)
- 若应用使用 Spring Boot,推荐显式配置
management.endpoints.web.exposure.include=health,info,并启用show-details=when_authorized便于定位失败原因 - 自检过程不经过网关或 LB,直连 Pod IP + 容器端口,排除中间链路干扰
自检通过的核心判定标准
MiMo Code 不仅看 HTTP 状态码,更关注响应内容语义和上下文状态。以下任一条件不满足即判定为失败:
- HTTP 返回码非 200(4xx/5xx 均失败;3xx 重定向不视为健康)
- 响应体 JSON 中
status字段值不是 "UP"(大小写敏感) - 依赖组件(如 DB、Redis、下游 API)任一子项显示
status: "DOWN",且该依赖被标记为 required - 响应耗时超过 3000ms(超时阈值可在 service.yaml 中通过
health.timeoutMs覆盖)
常见失败原因与快速排查建议
多数自检失败并非代码缺陷,而是环境或配置偏差。优先按以下顺序验证:
- 确认容器内应用已完全启动——加日志观察
Started Application in X seconds是否出现,避免检查过早 - 检查
application.yml中 health endpoint 是否被误设为management.server.port独立端口,而未在容器内暴露该端口 - 若使用多模块微服务,核实
spring.application.name与服务注册名一致,否则依赖拓扑识别可能出错 - 临时进入容器执行
curl -v http://localhost:8080/health,比对响应结构是否符合 MiMo Code 解析预期(如字段嵌套层级)
自定义健康逻辑接入方式
当默认检查不足以覆盖业务场景(例如需校验缓存预热完成、消息队列积压低于阈值),可通过实现 HealthIndicator 扩展:
- Spring Boot 项目:新建类继承
AbstractHealthIndicator,重写doHealthCheck(),在其中加入业务判断逻辑 - 非 Java 服务:在启动脚本末尾添加轻量级健康探针进程(如 Python 小脚本监听本地 socket 或文件锁),由 MiMo Code 通过 exec 方式调用验证
- 所有自定义检查必须返回标准 JSON 格式,且顶层含
status字段,否则会被忽略


















