当我们谈论 API,很少会提到双簧管、小号、定音鼓或长笛。然而,管弦乐队是理解 API 管理的绝佳隐喻:一群技巧各异的音乐家,照着同一份乐谱演奏出美妙作品。真正无名英雄是指挥——他读懂乐谱、引导每个声部,并在需要时补强。
在 API 领域,一位可靠的「指挥」至关重要。API 可能调用成百上千个微服务与系统,一个能用专业知识在规模上引导交互的中介,能带来效率、准确性与稳定性的巨大提升。在众多编排方案中,我们重点看两种:API 网关与服务网格。
API 越复杂越需要编排工具。本文编译自 Nordic APIs(作者 Kristopher Sandoval,2024),用通俗比喻讲清 API 网关与服务网格的异同、各自优劣,以及它们如何配合支撑微服务体系。
当我们谈论 API,很少会提到双簧管、小号、定音鼓或长笛。然而,管弦乐队是理解 API 管理的绝佳隐喻:一群技巧各异的音乐家,照着同一份乐谱演奏出美妙作品。真正无名英雄是指挥——他读懂乐谱、引导每个声部,并在需要时补强。
在 API 领域,一位可靠的「指挥」至关重要。API 可能调用成百上千个微服务与系统,一个能用专业知识在规模上引导交互的中介,能带来效率、准确性与稳定性的巨大提升。在众多编排方案中,我们重点看两种:API 网关与服务网格。
API 网关是一个抽象层,提供路由、认证、限流等能力,让你能在规模上完成复杂而强大的操作。它简化了微服务之间的交互,高效地标准化通信并路由请求流量。它本质上是边缘方案,就像整座豪宅的前门,连接外部与内部。
与网关不同,服务网格运作方式迥异。它是一个基础设施层,通过专用通道连接微服务。关键点是:它不在边缘,而是通过网络内部一个叫 sidecar(边车)的独立基础设施层来协调路由。
sidecar 像是「为微服务的微服务」——它充当连接节点,与其他服务的 sidecar 建立并标准化连接,最终织成一张网。可以把它想象成微服务的「手机」:不一定长在身上,但对沟通很有帮助。
选网关还是网格,主要取决于你要解决的问题与当前 API 环境。
API 网关擅长把能力暴露到边缘——若要把内部系统推向外部世界,正确实现的网关不会错;它关心网络边缘与外部用户。
服务网格则完全关心内部通信基础设施——若痛点在内部服务间通信效率,它是二者中唯一解,能连接离散、异构的服务。
有趣的是,这不是「或」的问题:两者可协同。服务网格先管好内部,网关再把能力以简洁高效的方式暴露给客户端。
哪怕最简单的 API,底层也承载着巨大的潜力与复杂性。API 网关与服务网格并非二选一——理解各自定位,才能用对工具、搭好架构。