生产部署与运维

共 20 题
📑 题目列表 20 题
#
★★★

1. MCP Server 的进程模型选择,stdio(本地子进程)vs HTTP+SSE(远程服务)vs Streamable HTTP,各自的部署拓扑、扩缩容和故障隔离

MCP Server 的进程模型应如何选择?stdio(本地子进程)、HTTP+SSE(远程服务)与 Streamable HTTP 各自的部署拓扑、扩缩容和故障隔离有何差异?

  • 理解三种传输模型的部署拓扑差异
  • 掌握扩缩容与故障隔离的差异
  • 理解选型与场景匹配

三种模型代表了不同的部署形态。stdio:Server 作为 Host 的子进程运行,通过标准输入输出通信,部署简单、无网络、最适合本地单机工具(文件系统、本地 CLI),但无法远程、无法独立扩缩容,故障隔离依赖进程边界(一个 Server 崩溃只影响该进程)。HTTP+SSE(旧版远程):Server 是独立远程服务,通过 HTTP 请求 + SSE 长连接推送,可远程部署、可独立扩缩容,但 SSE 长连接在网关/负载均衡、断线重连上有缺陷,连接状态难管理。Streamable HTTP(新版):单端点处理 POST/GET,支持可选 SSE 流式响应,兼容 HTTP 语义,更适合无状态网关、水平扩展、负载均衡与标准基础设施(限流、缓存、认证)。选型原则:本地/单进程工具用 stdio;需要远程、多租户、可扩展的服务用 Streamable HTTP;旧 HTTP+SSE 应迁移到 Streamable HTTP。故障隔离上,stdio 靠进程隔离,远程靠容器/副本隔离与负载均衡的故障转移。

进程模型选择本质是"部署形态决定扩缩容与隔离能力"。stdio 简单但不可扩展,远程模型可扩展但复杂度高。Streamable HTTP 是目前推荐的标准,因为它与 HTTP 生态兼容、可无状态化、易水平扩展。选型要结合工具的部署位置(本地 vs 远程)与扩展需求。

#
★★★

2. MCP Server 的健康检查、重连和超时策略如何设计,Server 崩溃时 Host 如何优雅降级而非整体失败

MCP Server 的健康检查、重连和超时策略应如何设计?Server 崩溃时 Host 如何优雅降级而非整体失败?

  • 掌握健康检查(存活/就绪)与重连策略
  • 理解超时与背压
  • 理解崩溃时的优雅降级与熔断

健康检查:远程 Server 提供 health/readiness 端点,区分"存活"(进程在)与"就绪"(可处理请求),Host 周期性探测,异常时标记不健康。重连:对瞬时故障做指数退避重连(加抖动),重连成功后重新协商能力(重新 initialize、重新拉取工具列表)。超时:为每个请求设置超时(连接、读、总预算),超时后按幂等规则重试或降级,避免请求无限挂起。降级:Server 崩溃时,Host 不应整体失败,而是优雅降级——标记该 Server 不可用、把该 Server 的工具标记为不可用、熔断该 Server 的调用、切换到备用工具或回退到"无工具"路径,并告知用户该能力暂不可用。降级要与全局能力隔离:一个 Server 崩溃不影响其他 Server 与其他能力。熔断器(circuit breaker)可防止对已崩溃 Server 的持续调用。

优雅降级的关键是"故障隔离 + 可恢复路径"。健康检查发现问题、超时防止挂起、重连恢复、熔断防止雪崩、降级保证用户体验。设计目标不是"永不失败",而是"失败时系统仍可用、可恢复、可感知"。

#
★★★

3. MCP 在企业级部署中的网关层设计,认证代理、限流、日志聚合、Tool 级路由和灰度如何统一治理

MCP 在企业级部署中的网关层应如何设计?认证代理、限流、日志聚合、Tool 级路由和灰度如何统一治理?

  • 理解网关在 MCP 部署中的作用
  • 掌握认证、限流、日志、路由与灰度的网关能力
  • 理解网关统一治理的价值

企业级 MCP 网关作为统一入口,把横切能力集中治理。1) 认证代理:网关统一处理 OAuth 2.1/mTLS/API Key 认证,签发并校验令牌,把身份注入到后端,避免每个 Server 各自实现认证。2) 限流:按用户/租户/Server 做速率限制与配额,防止滥用与资源耗尽。3) 日志聚合:网关统一采集请求日志、工具调用日志、审计日志,关联到请求 ID,形成集中可检索的日志。4) Tool 级路由:网关按工具名/Server 路由到正确的后端,基于 Mcp-Method/Mcp-Name 等路由,无需解析 JSON body。5) 灰度:网关按流量比例/租户把新版本 Server 的流量分流,实现灰度发布与回滚。统一治理的价值是"单一控制面":安全、限流、可观测、路由、发布策略都在网关集中配置,企业可控、可审计、可灰度,避免每个 Server 各自为政。

网关是"横切能力的集中化"。它把认证、限流、日志、路由、灰度这些每 Server 都要有的治理能力收敛到一处,既降低每 Server 的复杂度,又保证策略一致性与可审计性。网关也是 MCP 无状态化后路由与治理的天然载体。

#
★★★

4. MCP Server 的版本管理与灰度发布,Schema 变更如何做向后兼容,新旧版本并行时 Client 如何选择

MCP Server 的版本管理与灰度发布如何设计?Schema 变更如何做向后兼容,新旧版本并行时 Client 如何选择?

  • 理解 Schema 变更的向后兼容规则
  • 掌握版本管理与语义化版本
  • 理解灰度发布与 Client 版本选择

版本管理采用语义化版本(SemVer):主版本(major)破坏性变更、次版本(minor)新增能力、补丁(patch)修复。Schema 变更向后兼容的规则:新增可选参数、扩大枚举、新增字段是兼容的;删除参数、改必填、收紧约束、改变含义是破坏性变更,需升主版本。灰度发布:新旧版本并行,按流量比例/租户/白名单分流,新版本先小流量验证,指标稳定后逐步扩大,异常可回滚。新旧版本并行时 Client 的选择:通过能力协商(capability negotiation)与协议版本声明,Client 声明支持的版本,Server 据此返回兼容的工具集合;或 Client 通过版本感知路由选择匹配的 Server 版本。灰度期间,网关可按版本路由,保证同一用户/会话内版本一致。兼容测试(契约测试)应验证新旧 Client 对 Schema 的兼容性。

版本管理与灰度的核心是"向后兼容 + 可控发布"。SemVer 提供兼容性语义,向后兼容规则让旧 Client 不因 Schema 变更崩溃,灰度让新版本风险可控。Client 通过版本协商与路由选择兼容版本,避免"新旧混杂"产生的不一致。

#
★★★

5. MCP 无状态(stateless) 模式下服务端水平扩展:把多个 MCP server instance 放在 L4 LB 后面 round-robin 不再需要 session 共享的工程价值?

MCP 无状态模式下服务端水平扩展的工程价值是什么?把多个 MCP Server instance 放在 L4 LB 后面 round-robin 且不再需要 session 共享,带来什么好处?

  • 理解无状态协议对水平扩展的意义
  • 掌握 L4 LB round-robin 与无 session 共享的价值
  • 理解无状态化对运维与可靠性的影响

无状态模式下,每个请求都是独立的请求/响应,Server 不维护跨请求的会话状态(不依赖 session),因此多个 Server instance 可以放在 L4 LB 后面做 round-robin 负载均衡,任意请求可被任意 instance 处理,无需 session 亲和(sticky)或共享 session 存储。工程价值:1) 水平扩展简单——加副本即可扩容,无需同步 session 状态;2) 故障转移自然——某个 instance 崩溃,无状态请求被 LB 路由到其他 instance,无需会话恢复;3) 弹性伸缩——按负载自动扩缩容,无需迁移会话;4) 简化运维——无需 session 存储(Redis/DB)的共享与一致性管理,降低复杂度与故障面;5) 与标准基础设施兼容——L4/L7 LB、K8s 水平 HPA 都能直接工作。状态(如工具选择、进度)由客户端或外部存储管理,而非 Server 内存。

无状态化的价值核心是"状态从 Server 移除,扩展到哪都行"。没有 session 依赖,水平扩展、故障转移、弹性伸缩都变得简单可靠。这也是 MCP 从有状态双向协议演进为无状态请求/响应的根本动机——用标准网络基础设施直接服务。

#
★★★

6. MCP 无状态协议客户端用 server/discover RPC 获取能力列表(可选),而非强制 initialize 的工程取舍?

MCP 无状态协议客户端用 server/discover RPC 获取能力列表(可选)而非强制 initialize 的工程取舍是什么?

  • 理解 server/discover 与 initialize 的取舍
  • 掌握无状态化下能力发现的灵活性与降级
  • 理解简化与兼容的平衡

在有状态协议中,initialize/initialized 握手是强制的,用于协商协议版本与能力并建立会话。无状态协议中,能力发现被抽象为可选的 server/discover RPC,客户端可主动查询 Server 的能力列表(tools、resources、prompts、sampling 等),而非依赖强制握手的隐式状态。工程取舍:1) 灵活性——discover 可按需调用,适合无状态、无会话的场景,客户端可轻量启动(不强制握手),需要能力时再 discover;2) 兼容性——server/discover 作为可选机制,旧客户端与不支持 discover 的 Server 仍可基于默认能力工作,避免强制握手破坏兼容;3) 简化——去掉强制 initialize 减少了握手往返与状态管理,让客户端更简单,也便于无状态网关路由。代价是可能存在"能力协商缺失"——若不显式 discover,客户端可能不知道 Server 的完整能力,需在调用时容错。因此工程上往往"可选 discover + 调用时校验"结合。

取舍的核心是"从强制握手到可选发现"的演化。强制握手保证确定能力但带状态负担;可选 discover 提供灵活性与轻量性,但把能力确定的责任交给客户端。无状态化倾向简化与灵活,因此 discover 做成可选,配合调用时容错。

#
★★★

7. 故障演练,对 MCP Server、上游 LLM 与网络故障做注入演练,验证降级路径与重连是否真实可用?

故障演练应如何设计?对 MCP Server、上游 LLM 与网络故障做注入演练,如何验证降级路径与重连真实可用?

  • 理解故障注入(fault injection)的演练方法
  • 掌握对 Server、LLM、网络三类故障的演练
  • 理解验证降级与重连的评估指标

故障演练通过主动注入故障验证系统在异常下的行为。注入维度:1) MCP Server 故障——杀掉 Server 进程、注入延迟、注入错误返回,验证 Host 的熔断、降级、重连与重试;2) 上游 LLM 故障——模拟 LLM 超时、限流、5xx、内容异常,验证生成层的降级(回退模型、缓存、兜底回答);3) 网络故障——模拟丢包、延迟、断连、DNS 故障,验证重连、超时、退避与请求重放。演练要验证"降级路径真实可用":注入故障后,确认系统切换到备用路径(备用工具、缓存、模板答案、人工),且度量 P99 延迟、错误率、重连成功率、降级覆盖率等指标。演练要区分"故障注入"与"正常流量"隔离,用混沌工程平台(如 Chaos Monkey)在受控环境/灰度流量中执行,逐步扩大范围,演练后生成报告并修复发现的问题。同类故障可重复演练以验证修复有效性。

故障演练的价值是"验证降级不是纸面设计"。通过主动注入故障,暴露真实环境下的降级、重连、重试是否按预期工作,以及是否有未覆盖的故障路径。混沌工程的核心是"在生产-可控范围制造故障,验证系统韧性"。

#
★★★

8. 容量规划,Tool 调用与 LLM 请求混合负载的压测方法、水位线与扩容触发条件如何确定?

容量规划应如何进行?Tool 调用与 LLM 请求混合负载的压测方法、水位线与扩容触发条件如何确定?

  • 理解混合负载的压测方法
  • 掌握水位线(阈值)与扩容触发条件
  • 理解容量规划与成本平衡

容量规划要针对"Tool 调用 + LLM 请求"的混合负载。压测方法:构造真实混合负载(一定比例走 LLM 生成、一定比例走工具调用、一定比例是工具+LLM 组合),用压测工具(如 k6、Locust)施加压力,观察吞吐、延迟、错误率与资源(CPU/内存/连接)。LLM 请求本身延迟高、并发受限(受上游配额与成本),工具调用是同步短请求,两者混合会放大资源竞争。水位线确定:基于压测结果设定关键指标阈值——如 CPU 使用率、请求队列深度、P99 延迟、错误率、上游配额使用率。扩容触发条件:如 CPU 超 70% 持续 N 分钟、队列深度超阈值、P99 延迟超预算、错误率超 0.5% 时触发扩容,且与上游 LLM 配额/成本预算联动(扩容前确认配额充足)。容量规划要按峰值预留 buffer,并做成本封顶(LLM token 成本是 mix 中的大头)。

混合负载压测的关键是"真实比例 + 资源竞争观察"。LLM 请求的高延迟与高并发限制、工具请求的同步性,混合后要分别度量。水位线、扩容触发条件要基于压测数据设定,并与配额、成本联动,避免"扩容了但上游配额不够"或"成本失控"。

#
★★

9. MCP Server 的性能优化,Tool 调用延迟预算、并发限制、连接池和结果缓存如何按业务 SLA 配置

MCP Server 的性能优化如何配置?Tool 调用延迟预算、并发限制、连接池和结果缓存如何按业务 SLA 落地?

  • 理解延迟预算与 SLA 的分解
  • 掌握并发限制、连接池与结果缓存
  • 理解按 SLA 配置优化策略

性能优化要围绕 SLA 展开。1) 延迟预算:把端到端 SLA 分解为"模型生成 + 工具调用 + 网络"各环节预算,为工具调用设定明确延迟上限(如 P99 < 500ms),超预算的慢工具降级或异步化。2) 并发限制:为工具调用设置并发上限(信号量/连接池限额),防止慢工具耗尽线程导致整体卡死,超限时排队或拒绝。3) 连接池:对远程 Server 复用连接(连接池),避免每次调用新建连接,降低握手开销;配置池大小与超时。4) 结果缓存:对高频、结果稳定的工具调用做缓存(按参数 hash 作为 key,带 TTL),减少重复调用与模型上下文重复注入。按 SLA 配置意味着:高 SLA 场景(订单、支付)配置更严格的延迟预算与更可靠的降级;低 SLA 场景(模糊查询)可放宽。优化目标是"在 SLA 内用最少资源满足吞吐"。

性能优化的核心是"SLA 驱动的资源分配"。延迟预算把端到端目标分解到各环节,并发限制与连接池防止资源耗尽,结果缓存减少重复开销。配置要随业务 SLA 差异化,而非一刀切。

#
★★

10. MCP 在多租户 SaaS 中的隔离,每个租户连接独立 Server 实例 vs 共享 Server + 租户上下文注入的取舍

MCP 在多租户 SaaS 中的隔离如何设计?每个租户连接独立 Server 实例 vs 共享 Server + 租户上下文注入的取舍是什么?

  • 理解两种多租户隔离方案
  • 掌握各自的取舍(隔离强度 vs 成本复杂度)
  • 理解按租户规模与安全需求选型

两种方案各有取舍。独立 Server 实例:每个租户启动/连接专属 Server 进程,隔离最强(数据、故障、资源完全隔离),适合大租户、高安全需求(金融、医疗),但成本高、实例多、运维复杂(每租户部署、监控、更新)。共享 Server + 租户上下文注入:所有租户共享一个 Server,请求携带租户上下文(租户 ID),Server 在数据访问与权限上按租户隔离(强制租户过滤),成本低、运维简单、可共享连接池,但隔离依赖服务端正确实现租户过滤,若泄露会造成跨租户事故,且资源竞争(一个租户的爆量影响他人)。选型取舍:小租户/海量租户、安全等级中低用共享 + 租户上下文;大租户/高安全/强隔离要求用独立实例。中间态可做"按租户分池"(把若干租户分到一组实例)。无论哪种,多租户隔离都必须在服务端强制校验租户边界。

多租户隔离的关键是"隔离强度"与"成本/复杂度"的权衡。独立实例隔离强但成本高,共享实例成本低但依赖租户过滤的正确性。工程上常按租户规模与安全等级分层,且无论哪种都要在数据层强制租户隔离。

#
★★

11. MCP Server 的可观测性,如何将 Tool 调用 trace 接入 OpenTelemetry,与 LLM 推理 span 关联形成端到端链路

MCP Server 的可观测性如何实现?如何将 Tool 调用 trace 接入 OpenTelemetry,与 LLM 推理 span 关联形成端到端链路?

  • 理解 OpenTelemetry 的 trace 接入
  • 掌握 Tool 调用 span 与 LLM span 的关联
  • 理解端到端链路与上下文传播

用 OpenTelemetry 把 MCP 工具调用纳入可观测性:1) 在 Server 端为每个工具调用创建 span(span 名含 tools/call 或工具名),记录工具名、参数 hash、耗时、结果状态、错误;2) 在 Client/Host 端把 LLM 推理也创建 span(标注 model、prompt/response token、延迟),并通过 trace context 传播(W3C Trace Context 头)把"模型生成 span"与"它调用的工具 span"关联为父子关系,形成端到端调用链;3) 用 trace id 关联一次用户请求涉及的所有 span(LLM 推理、多次工具调用、检索、外部 API),便于按请求回溯;4) 把 span 导出到 OTLP 后端(Jaeger、Tempo、Datadog),与指标、日志关联(按 trace id 关联 logs)。关键是把"一次用户请求"作为 trace 根,其下的 LLM 与工具调用都是子树,这样可观测"模型为什么调用工具、各步骤耗时多少、成本多少"。

端到端链路的本质是"把模型推理与工具调用编织进同一 trace"。通过 trace context 传播与 span 父子关系,让运维能回答"一次请求经历了哪些模型调用、哪些工具调用、哪里慢、哪里错"。这是 MCP 可观测性的核心。

#
★★

12. MCP Server 的配置管理,环境变量、密钥注入、配置文件热更新如何与 12-Factor 原则对齐

MCP Server 的配置管理如何设计?环境变量、密钥注入、配置文件热更新如何与 12-Factor 原则对齐?

  • 理解 12-Factor 的配置管理原则
  • 掌握环境变量、密钥注入与热更新
  • 理解配置与密钥分离

12-Factor 原则要求"配置与代码分离",且配置不进入代码库。MCP Server 的配置管理对齐:1) 环境变量——把非敏感配置(地址、端口、开关、超时)通过环境变量注入,Server 启动时读取,不硬编码在代码里;2) 密钥注入——把数据库密码、API Key、OAuth 密钥等敏感配置通过密钥管理(Kubernetes Secret、Vault、云 KMS)注入为环境变量或挂载文件,不写入源码、不落日志、不进入镜像;3) 配置文件热更新——把可动态调整的配置(限流阈值、功能开关、工具名单)放在外部配置中心(如 Nacos、Consul、etcd),Server 订阅变更热更新,无需重启;4) 环境差异——dev/staging/prod 通过不同环境变量/配置区分,代码复用。对齐 12-Factor 意味着 Server 可移植、可复现、配置可审计,且环境差异通过配置而非代码表达。

12-Factor 的配置管理核心是"配置外置 + 密钥安全 + 环境差异由配置表达"。环境变量与密钥注入解决"配置不落代码",热更新解决"配置变更不重启"。这让 Server 可移植、可复现、可审计。

#
★★

13. LLM 服务的扩缩容,请求排队深度、并发上限与弹性伸缩应如何与上游配额和成本预算联动?

LLM 服务的扩缩容应如何设计?请求排队深度、并发上限与弹性伸缩应如何与上游配额和成本预算联动?

  • 理解请求排队与并发上限
  • 掌握弹性伸缩的触发条件
  • 理解与上游配额、成本预算联动

LLM 服务扩缩容要同时考虑系统负载与上游限制。1) 请求排队深度:设置队列上限,请求超限时拒绝或降级(避免无限排队拖垮延迟);队列深度是负载信号。2) 并发上限:限制与上游 LLM 的并发连接数(受上游配额与速率限制),避免超限被上游 429 限流。3) 弹性伸缩:基于队列深度、CPU、P99 延迟、吞吐触发扩容(HPA/自动伸缩),缩容时排空。4) 与上游配额联动:扩容前确认上游 LLM 配额充足(token 上限、RPM),否则扩容无意义;按配额利用率限制最大并发。5) 与成本预算联动:LLM token 成本是主要成本,扩缩容要控制 token 消耗(如按日/月成本预算设定最大吞吐,超预算降级到更小模型或缓存)。核心是"扩容的上限受上游配额与成本预算约束",而非只看自身负载。

LLM 扩缩容的独特之处是"自身负载 + 上游配额 + 成本预算"三重约束。队列与并发反映自身负载,扩缩容触发要同时满足上游配额充足与成本可控。否则会出现"扩容了但被上游限流"或"成本失控"。

#
★★

14. 优雅停机与排空,发布或缩容时在途请求如何排空、会话如何恢复、连接如何优雅关闭?

优雅停机与排空如何设计?发布或缩容时在途请求如何排空、会话如何恢复、连接如何优雅关闭?

  • 理解优雅停机与排空(drain)机制
  • 掌握在途请求处理与会话恢复
  • 理解连接优雅关闭

优雅停机(graceful shutdown)的目标是"不丢在途请求、不突然中断"。流程:1) 停止接收新请求——从 LB/注册中心摘除实例,或标记不健康,让新流量不再路由过来;2) 排空在途请求——给一个排空窗口(如 30s),等待已接收的请求完成,未完成超时再强制终止;3) 会话恢复——对无状态请求无需恢复;对有状态会话,把会话状态持久化或让客户端在重连后恢复上下文(如重新协商、重放请求);4) 连接优雅关闭——发送 shutdown 信号,Server 停止处理新请求但处理完在途,关闭连接前发送通知(如 SSE 的结束事件),客户端收到后尝试重连到其他实例。发布/缩容时,K8s 的 preStop hook + terminationGracePeriod 配合 LB 的 drain 机制实现排空。客户端要能感知 Server 关闭并重连,避免长时间等待。

优雅停机的核心是"先排空再关闭"。摘除流量 → 排空在途 → 关闭连接 → 通知客户端重连,配合会话恢复机制保证不丢请求。K8s 的 preStop/gracePeriod 与 LB 排空是标准实现。

#

15. MCP Server 的容器化部署(Docker/K8s),资源限制、网络策略、Secret 挂载和镜像签名

MCP Server 的容器化部署应如何设计?Docker/K8s 下的资源限制、网络策略、Secret 挂载和镜像签名如何落地?

  • 理解容器化部署的资源限制与网络策略
  • 掌握 Secret 挂载与镜像签名
  • 理解容器化安全

MCP Server 容器化部署的安全与运维要点:1) 资源限制——用 K8s 的 resources.requests/limits 设置 CPU/内存,防止某个 Server 耗尽节点资源;设(可选)Pod 级限额。2) 网络策略——用 NetworkPolicy 限制 Server 的进出流量(只允许访问白名单后端、外部 API),禁止任意外联,限制入站来源。3) Secret 挂载——把数据库密码、API Key 等通过 K8s Secret 挂载为文件或环境变量,不写入镜像、不落日志,配合最小权限(只挂载所需 Secret)。4) 镜像签名——用 cosign/Notary 对镜像签名,部署时校验签名,确保镜像来自可信构建且未被篡改;配合镜像扫描(Trivy、Clair)检查漏洞。5) 容器本身用非 root 运行、只读文件系统、privileged=false,降低提权风险。容器化让 MCP Server 可移植、可伸缩,同时用资源限制、网络隔离、Secret 与签名保障安全。

容器化部署的核心是"可移植 + 安全边界"。资源限制防资源耗尽,网络策略防横向移动,Secret 挂载防凭据泄露,镜像签名防供应链投毒。非 root 与只读文件系统进一步降低攻陷后的影响。

#

16. MCP 生态的 Server 市场(Smithery、Glama、mcp.run)如何评估 Server 质量、安全性和活跃度

MCP 生态的 Server 市场(Smithery、Glama、mcp.run)如何评估 Server 质量、安全性和活跃度?

  • 理解 Server 市场的评估维度
  • 掌握质量、安全性与活跃度的评估
  • 理解评估流程与选型

从第三方市场选 Server 时,从几个维度评估:1) 质量——看 Server 的 Schema 是否规范、描述是否清晰、是否有测试与文档、代码结构是否良好、是否维护者持续更新;2) 安全性——看是否提供签名/清单、是否公开源码可审计、依赖是否扫描、是否有已知 CVE、是否过度索取权限、权限声明是否合理;3) 活跃度——看更新时间、提交频率、issue 解决速度、star/下载量、社区反馈、是否有维护者响应。评估流程:先看市场标签与评分,再深入源码审计+依赖扫描+沙箱运行,最后在隔离环境验证行为,确认无异常再准入。市场评分可作初步筛选,但不可替代实质审查。活跃度用"最近更新时间 + 提交频率 + 维护者响应"判断 Server 是否被维护,避免选用已停止维护的 Server。

市场评估是"筛选 + 实质审查"的组合。市场评分、下载量、star 是表面信号,安全与质量需源码审计、依赖扫描、沙箱验证。活跃度决定长期可用性——停止维护的 Server 有累积漏洞风险。第三方市场不能替代企业准入门槛。

#

17. MCP legacy HTTP+SSE transport 弃用 12 个月过渡期的迁移计划:何时全量切 HTTP Streamable?

MCP legacy HTTP+SSE transport 弃用 12 个月过渡期的迁移计划如何制定?何时全量切换 HTTP Streamable?

  • 理解 legacy HTTP+SSE 弃用的背景
  • 掌握迁移计划(双跑、兼容、切换)
  • 理解全量切换的判定条件

legacy HTTP+SSE 被 Streamable HTTP 取代,弃用设 12 个月过渡期。迁移计划:1) 盘点——列出所有用 legacy HTTP+SSE 的 Server 与 Client,评估依赖;2) 双跑——新版本同时支持 legacy 与 Streamable,让 Client 逐步迁移(先新 Client 用 Streamable,旧 Client 保留 legacy);3) 兼容测试——验证 Streamable 下功能、SSE 流式、断线重连、鉴权是否与 legacy 等价;4) 逐步切换——按 Server/接口/租户比例把流量切到 Streamable,观察指标;5) 全量切换——在过渡期结束前,当所有 Client 都支持 Streamable、且双跑验证无回归后,全量切 Streamable 并下线 legacy。全量切换的判定条件:所有在线 Client 已升级、端到端兼容测试通过、灰度无回归、无遗留 legacy 依赖。切换后要保留 legacy 的短期观察窗口,必要时回滚。

迁移的关键是"双跑 + 逐步切换 + 条件判定"。legacy 弃用不能一刀切,而要在过渡期内让新旧 Client 并存,逐步验证后再全量切换。全量切换的时机是"所有依赖已升级且验证无回归",而非盲目按时间删除。

#

18. 推理服务的可观测性,延迟、吞吐与 token 成本应如何归集到一次端到端用户请求?

推理服务的可观测性如何实现?延迟、吞吐与 token 成本应如何归集到一次端到端用户请求?

  • 理解推理服务的延迟、吞吐与成本指标
  • 掌握归集到单次请求的机制
  • 理解 trace id 与成本分摊

推理服务的可观测性要能"按一次用户请求归集延迟、吞吐与成本"。做法:1) 用 trace id 作为贯穿一次请求的关联键,把该请求的所有 LLM 调用、工具调用、检索、外部 API 的 span 关联起来;2) 延迟——在 span 上记录每次 LLM 调用的首 token 延迟、总延迟、模型、token 数,聚合为请求级 P95/P99;3) 吞吐——记录请求数、token 数、按接口/模型聚合出吞吐,评估容量;4) token 成本——按每次调用的 prompt/completion token 数 × 单价计算成本,累加到 trace 或请求级,实现"一次请求成本";5) 归集——用 trace id 把延迟、成本、日志、错误关联,支持按用户/租户/接口/模型维度的成本与性能分析。这要求所有探针都传递 trace id,并在 span 上带 token 计数与模型信息。

归集的关键是"统一关联键 + token 计量"。trace id 把分散的调用串起来,token 计数与单价把成本归集到请求。这让"一次请求花了多少钱、多慢、在哪个环节慢"可回答,支撑成本治理与性能优化。

#

19. 模型更新的灰度发布,新旧模型在同一批流量上的质量、延迟与成本对比应如何设计并支持自动回滚?

模型更新的灰度发布如何设计?新旧模型在同一批流量上的质量、延迟与成本对比如何实现,并支持自动回滚?

  • 理解模型灰度发布的分流与对比
  • 掌握质量、延迟、成本评估指标
  • 理解自动回滚的触发条件

模型灰度发布把新旧模型在同一批流量上做对比评估。设计与实施:1) 分流——按流量比例(如 5%、10%、50%)或特定用户/请求类型把流量打到新模型,其余走旧模型,保证同一批真实流量覆盖;2) 对比指标——质量(回答正确率、人工/LLM 评测、用户反馈、任务成功率)、延迟(首 token、总延迟 P99)、成本(token 单价、token 消耗量)、错误率;3) 影子评估——可用 shadow 模式让新模型在旁路跑同一请求,不返回用户,仅评估输出质量与成本,降低风险;4) 回滚——预设质量/延迟/成本阈值(如准确率下降、P99 超预算、错误率上升、成本失控),触发自动回滚到旧模型,回滚要能快速切换(路由层配置化)。灰度发布配合 A/B 对比与自动回滚,让模型更新风险可控,且评估基于真实数据而非主观判断。

模型灰度的核心是"真实流量对比 + 自动回滚"。分流让新旧模型在同一批请求上可比,质量/延迟/成本三指标决定是否放量,阈值触发自动回滚保证安全。影子评估可先低成本验证。

#

20. 多环境配置漂移治理,dev/staging/prod 的 MCP Server 配置与依赖一致性如何保证?

多环境配置漂移治理如何实现?dev/staging/prod 的 MCP Server 配置与依赖一致性如何保证?

  • 理解配置漂移(drift)问题
  • 掌握环境一致性保证方法
  • 理解配置即代码与依赖锁定

配置漂移指 dev/staging/prod 环境的配置、依赖、版本不一致,导致"测试环境能跑、生产崩溃"。治理方法:1) 配置即代码(IaC)——用 Terraform/Helm/Ansible 等把 MCP Server 的部署配置版本化,环境差异通过参数化(values/变量)表达而非复制粘贴,保证同一份模板驱动各环境;2) 依赖锁定——锁定 Server 依赖版本(lockfile、镜像 tag、依赖版本固定),避免不同环境解析到不同版本;3) 环境差异显式化——dev/staging/prod 的差异(密钥、端点、开关)通过环境变量/配置中心显式管理,而非散落各处;4) 一致性校验——用 CI 对 staging 与 prod 的配置做 diff 校验,或把 staging 作为 prod 的预演(生产与 staging 同配置),发现漂移即告警;5) 基线管理——把"一份配置"作为基线,各环境在此 + 最小差异,避免各自为政。目标是"同一份代码 + 同一份配置模板 + 显式环境差异"。

配置漂移的根源是"环境配置各自为政"。治理核心是"配置即代码 + 依赖锁定 + 环境差异显式化",让一套模板驱动所有环境,差异可控、可审计、可复现。staging 与 prod 一致是"测试可信"的前提。