不仅仅是简单和稳定,还有API网关的这些好处API网关的核心目的是简化和稳定暴露给客户端的接口。除此之外,由于API网关在架构中的独特位置,它还启用了一些附加功能,例如监控、日志记录、安全性、负载平衡和流量操纵。APIGateway类似于Facade设计模式,但应用在网络层面。这两种情况的目标都是提供一个简化的接口配置文件,以隐藏系统的复杂性。下图中可以看到一个简单的API网关的想法。简化接口API网关的作用是将客户端与服务解耦,并在此过程中为入站和出站流量提供单点联系。微服务后端可能涉及许多交互服务,它们的URL和协议可能是异构的。APIGateway可以为客户端提供简化的交互界面。从某种意义上说,这就像一个简化的代理。此外,API网关可以更复杂,能够接受单个请求、检索必要的资源并将它们组合成一个响应。例如,对用户配置文件的请求可能会检索用户详细信息、最近的消息和兴趣。网关可以接收单个请求,从每个必要的服务请求数据,并将它们统一到一个响应中。这种功能需要在架构级别进行编排,并对其他微服务组件(例如断路器和服务网格)产生影响。因为APIGateway能够翻译后端使用的协议和URL,所以很适合帮助迁移服务。也就是说,API网关可以在某种程度上隐藏后端发生的更改。API稳定性API网关还可以提高客户端与服务交互的API的稳定性。网关平滑了可能破坏客户端或要求他们进行更改的小更改,开发人员可以使用网关将一些流量定向到新版本的服务以对其进行测试。通常,API网关为客户端提供单点联系,这有助于最大限度地减少更改对后端服务的影响。服务越复杂,变化越频繁,网关的功能就越有价值。请注意,API网关还简化了API表面,即使对于内部客户端也是如此。也就是说,网关可用于使微服务架构本身内的拓扑更易于管理。如何监控API网关在架构中的角色也使其非常适合某些类型的监控、警报和跟踪。同样,在网关处收集统计数据对于广泛分析流量和使用情况很有用。带有日志记录的API网关如下图所示。有多种方法可以处理API网关日志记录的分析,例如使用AmazonElasticsearchService。安全性由于网关是系统的单点入口,因此它首当其冲地承担着系统加固的任务。这类似于跳转主机在系统管理最佳实践中的作用。这允许服务主要专注于保护与单个API网关的通信,这比处理多个面向公众的API简单得多。以上适用于基础架构级别的安全性。但是,网关也可以承担业务层面的认证和授权工作。这需要编排所涉及的后端服务,但可以通过将安全逻辑集中在一个地方来简化事情。这自然与速率限制或现收现付有关,因为网关将拥有用于计费目的的客户帐户。API网关解决方案API网关解决方案分为两大类:托管和自主开发。在托管解决方案领域,每个云供应商都提供一种产品。这些可以通过搜索找到,因为它们被(毫无想象力地)命名为“AmazonAPIGateway”、“AzureApplicationGateway”和“GoogleCloudAPIGateway”。在开发您自己的框架时,最好从一个有助于完成大量繁重工作的框架开始。比如在Java生态中,SpringCloud提供了SpringCloudGateway。Nginx是另一个不错的选择。API网关的实际应用我们已经讨论了API网关可以提供的许多好处。然而,记住这种权衡很重要:网关也是需要维护的另一部分基础设施。特别是,API网关必须与后端和客户端的更改保持同步。也就是说,如果您的架构复杂性或您的业务需要它,API网关可能是一个很好的解决方案。【翻译稿件,合作网站转载请注明原译者和出处.com】
