目录

基于微服务架构的大模型智能体推理服务治理平台

面向可靠推理任务的限流、熔断、降级与流量隔离实践

项目简介

本项目是“分布式计算环境”课程大作业,课题方向为基于微服务架构的服务治理

项目选择大模型智能体推理作为应用场景,构建一个可真实运行的微服务系统。系统接收用户提交的推理任务,通过推理编排、模型调用和结果验证完成任务,并记录完整的服务调用与治理事件。在此基础上,项目重点实现和验证限流、熔断、降级及流量隔离等服务治理机制。

本项目的核心是微服务架构与服务治理。可靠推理是业务场景和长期研究方向,而不是对课程目标的替代。

项目目标

  • 构建由多个独立服务组成、能够真实运行的大模型推理云服务。
  • 实现服务注册与发现、统一网关、服务间调用和可观测性等基础能力。
  • 实现限流、熔断、降级和流量隔离,并提供可重复的故障演示。
  • 对比治理前后的可用性、成功率、响应时间及故障影响范围。
  • 支持推理任务的执行、验证、轨迹记录和实验结果分析。
  • 沉淀可扩展的推理基础设施,为后续可靠推理研究提供工程基础。

系统架构

初步业务调用链如下:

用户 / Web 控制台
        |
        v
    API 网关
        |
        v
  推理任务服务
        |
        v
  推理编排服务
     /      \
    v        v
模型网关   验证器服务
    |          |
    v          v
大模型服务   规则 / 工具 / 测试
        \
         v
   调用轨迹与评测结果

计划包含以下服务:

服务 主要职责
API 网关 统一入口、路由、身份识别和请求限流
推理任务服务 管理任务、状态、结果及实验配置
推理编排服务 执行推理流程,控制重试、回退和模型切换
模型网关服务 统一封装不同模型提供方,采集延迟、错误和 Token 用量
验证器服务 使用规则、确定性工具或模型验证推理结果
Web 控制台 提交任务,展示调用链、治理状态和实验指标

最终服务边界将根据实现和实验需要调整,但各服务必须能够独立启动和发生真实的网络调用。

服务治理设计

1. 限流

  • 按用户或接口限制请求频率。
  • 对模型调用增加 Token 或并发预算。
  • 在突发流量下保护模型网关及下游服务。

2. 熔断

  • 监测模型服务的超时率和失败率。
  • 主模型持续异常时打开熔断器,阻止故障继续扩散。
  • 在半开状态下使用少量请求探测服务是否恢复。

3. 降级

  • 主模型不可用时切换至备用模型或备用推理策略。
  • 验证器不可用时采用规则检查、有限重试或返回可恢复任务状态。
  • 降级结果将被明确标识,避免将不完整结果伪装为正常结果。

4. 流量隔离

  • 隔离在线交互任务与批量评测任务。
  • 为不同任务类型配置独立的线程池、并发额度或消息队列。
  • 避免批量任务耗尽资源而影响在线请求。

演示与评测

项目将提供可重复执行的正常流量、突发流量和故障注入场景,重点展示:

  1. 高并发请求触发限流,系统保持可用。
  2. 主模型连续超时或失败后触发熔断。
  3. 熔断后自动执行备用模型或可恢复状态降级。
  4. 批量评测产生高负载时,在线推理仍能获得稳定响应。
  5. 服务恢复后,熔断器完成探测并恢复正常调用。

计划采集的指标包括:

  • 请求成功率与拒绝率
  • 平均响应时间及延迟分位数
  • 超时率与错误率
  • 熔断器状态和降级次数
  • 在线任务与批量任务的资源使用情况
  • 模型调用次数、Token 用量与推理成本
  • 推理任务正确率或验证通过率

可靠推理扩展

在满足课程服务治理要求的基础上,项目将为以下研究方向预留扩展能力:

  • 验证器引导的生成、检查、重试与回退闭环
  • 预算约束下的自适应模型及推理策略路由
  • 直接回答、自一致性和验证后重试等策略对比
  • 多智能体协作中的错误传播与共识机制
  • 长程推理任务的检查点、恢复和可复现轨迹

服务可靠性和推理可靠性是两个不同概念。前者关注系统在故障和负载下能否持续提供服务,后者关注推理结果是否正确、稳定和可验证。本项目将分别度量二者,并分析它们之间的关系。

技术选型

当前基础工程已验证的版本与后续选型如下:

  • Java 21(Temurin 21.0.12)与 Spring Boot 3.4.5
  • Spring Cloud 2024.0.1 与 Spring Cloud Gateway 4.2.1
  • Spring RestClient:当前内部 HTTP 调用;接口稳定后再评估是否引入 OpenFeign
  • Nacos:计划用于服务注册、发现与配置管理;最小闭环先使用环境变量配置服务地址
  • Resilience4j:后续用于熔断、超时和降级;网关限流使用 Spring Cloud Gateway 过滤器
  • 独立线程池或消息队列:流量隔离与异步任务
  • Micrometer、Prometheus 和 Grafana:指标采集与展示
  • OpenTelemetry:分布式调用链追踪
  • React 或 Vue:演示与治理控制台
  • Shell 启停脚本与进程管理:在课程作业容器内运行各独立服务
  • Docker Compose:在具备 Docker 的外部环境中进行可选部署

模型网关计划兼容 OpenAI API 风格的接口。模型地址和密钥仅通过环境变量或本地配置注入,不写入源码、示例配置或 Git 历史。系统也将提供可控的故障模拟服务,保证服务治理实验能够稳定复现。

当前运行环境

项目工作区本身位于云服务器分配的作业容器中。当前容器的有效资源配额约为 8 vCPU 和 60 GiB 内存,足以运行本项目的多个微服务及监控组件。容器内没有 Docker Socket,且当前用户不是 root,因此项目不依赖 Docker-in-Docker。

开发和课程演示将采用以下方式:

  • 在用户目录安装便携式 JDK 和 Maven,不修改宿主机环境。
  • 将各微服务构建为独立进程,通过不同端口进行真实网络通信。
  • 使用统一脚本完成构建、启动、健康检查、故障注入和停止。
  • 将日志和进程标识写入项目运行目录,便于排障和清理。
  • 根据云平台提供的端口映射方式,对外暴露 Web 控制台和 API 网关。

如需在其他机器复现,项目可额外提供 Docker Compose 配置,但它不是当前作业容器中的主要运行方式。

完整环境核验见 docs/environment.md,服务边界、架构决策和逐阶段验收标准见 docs/architecture.md,分支与合并要求见 docs/collaboration.md

快速开始

首次运行会把便携式 JDK 和 Maven 安装到已忽略的 .tools/ 目录:

./scripts/bootstrap-tools.sh
./mvnw clean package
./scripts/start.sh
./scripts/e2e-test.sh

API 网关监听 http://127.0.0.1:8080。可直接提交一次在线推理任务:

curl -sS -H 'Content-Type: application/json' \
  -d '{"prompt":"Explain circuit breaking","taskType":"ONLINE"}' \
  http://127.0.0.1:8080/api/v1/inference/tasks | jq .

查看所有服务健康状态或停止服务:

./scripts/health.sh
./scripts/stop.sh

五个服务分别监听 8080 至 8084,日志和 PID 位于 .runtime/。模型网关当前使用确定性本地适配器作为可重复实验基线,返回结果会如实标注模型名;它不是对真实大模型调用的伪装。OpenAI-compatible 适配器将在熔断和降级阶段加入。

课程要求对应关系

课程要求 本项目落实方式
开发微服务架构的云服务 多个独立服务通过网络协作完成推理任务
系统需要真实运行 在云端作业容器中启动多个独立服务进程,并提供一键启动、健康检查和端到端演示脚本
展示服务治理的好处 通过故障注入和治理前后指标对比进行验证
至少包括两类治理机制 计划实现限流、熔断、降级和流量隔离四类机制
微服务及治理技术分析 报告分析架构、技术原理、设计取舍及实验结果
近年相关领域顶会论文 调研微服务、云系统、分布式推理和可靠智能体研究
互联网企业真实应用分析 调研企业级服务治理及 AI 网关实践
提交报告和设计说明 在仓库中维护报告、架构设计、部署及演示文档
源码上传 Trustie/GitLink 使用 Git 管理源码,并保留分支、提交和协作记录

计划交付物

  • 可真实运行的微服务源码
  • Web 演示与治理控制台
  • 服务启动、停止和故障注入脚本
  • 自动化测试与端到端演示脚本
  • 系统架构及详细设计说明
  • 部署与运行手册
  • 实验数据、图表和结果分析
  • 课程报告及答辩演示材料
  • 成员学号、分工和贡献说明

实施阶段

  1. 环境与设计基线:核验资源、端口、服务边界、接口和实验指标。
  2. 最小业务闭环:完成五个独立服务间的端到端推理、验证及结果回查。
  3. 限流:实现网关请求限流和模型并发预算,完成突发流量实验。
  4. 熔断与降级:实现故障注入、熔断状态迁移、主备模型和显式降级结果。
  5. 流量隔离:隔离在线请求与批量评测,验证故障与资源影响范围。
  6. 可观测与实验:接入指标和调用链,产出治理前后对比数据。
  7. 控制台与答辩:完成 Web 控制台、论文调研、企业案例和演示材料。

项目状态

阶段 0 和阶段 1 已完成。当前仓库包含五个可独立启动的 Spring Boot 服务、共享 HTTP 契约、便携工具链、进程管理脚本、健康检查、单元测试和端到端测试。

2026-08-09 基线验证结果:Maven Reactor 七个模块构建成功;模型网关和验证器单元测试共 2 个通过;8080-8084 五个健康端点均为 UP;端到端创建、编排、模型生成、规则验证和任务回查断言通过。下一阶段进入网关限流和模型并发预算实现。

团队成员

姓名 学号 主要贡献
待补充 待补充 待补充

安全说明

  • 不向仓库提交模型 API Key、GitLink Token、密码或其他凭据。
  • 使用 .env.example 说明配置项,真实 .env 文件由 .gitignore 排除。
  • GitLink 凭据由 Git 凭据管理器、SSH Key 或临时环境变量管理。
  • 工具调用和代码执行功能必须在受限环境中运行,并记录审计信息。

License

本项目用于课程学习与研究。开源许可证将在首次发布前确定。

关于

distributed-computing-project

77.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号