掌握基础概念和工程实践后,这一章讲三个生产环境必须关注的话题:性能优化与安全防护(查询成本分析、深度限制、恶意查询防范)、Schema演进与自定义扩展(@deprecated指令、自定义标量和指令的工程应用)、以及可观测性体系(日志、分布式追踪和监控指标)。
这些内容是区分"能用"和"生产可用"的关键。
第一节:性能优化与安全防护。GraphQL 的灵活性让一个恶意查询可以在一秒内耗尽数据库连接。这一节讲查询成本分析、深度限制、超时控制、别名轰炸与字段枚举等攻击面的防御,以及持久化查询如何作为安全加固手段。
第二节:Schema 演进与自定义扩展。Schema 上线后还要持续演进。@deprecated 指令怎么标记废弃字段、自定义标量和指令怎么实现、如何在不破坏现有客户端的前提下平滑升级——这一节给出一套可操作的演进流程。
第三节:可观测性:日志、追踪与监控。生产环境的 GraphQL 服务需要回答三个问题:谁在什么时候调了什么、一次跨解析器调用花在哪、整体健康度如何。这一节用具体配置演示解析器日志、分布式追踪和指标采集的落地。
三个主题看起来独立,实际是一条链:安全防护让服务不被恶意查询打垮,Schema 演进让服务能持续迭代,可观测性让你在服务和 Schema 都复杂起来之后仍然看得清问题。生产环境里,这三个能力通常一起上线——上线前做好防护和监控,上线后用演进机制管理变更,缺任何一个都会在某个深夜变成事故。读这一章时,建议对照自己正在维护的服务逐项检查:有没有成本限制,有没有字段废弃流程,有没有慢查询告警——没有的项,就是下一周要补的功课。