写点什么

API 服务网关

作者:阿泽🧸
  • 2022 年 8 月 10 日
    北京
  • 本文字数:1190 字

    阅读完需:约 4 分钟

API服务网关

API 服务网关顾名思义就是出现在微服务边界上的一个面向 API 的、串行集中式的、对访问请求强管控的服务,采用的是一个外观模式。API 服务网关是微服务访问的统一入口,负责服务请求路由、组合及协议转换等处理。


API 服务网关的核心是:为所有客户端请求或其他消费者提供统一的网关,通过该网关接入不同的微服务,并隐藏架构实现的细节。当 API 服务网关成为微服务访问的唯一入口后,就可以实现对系统内部架构的封装,将一些与业务无关的公共逻辑抽象到 API 服务网关中实现,比如之前提到的客户端身份验证、业务鉴权、流量与并发控制及响应数据脱敏等功能。


对于 API 服务网关,其核心功能之一就是负责服务请求路由、组合及协议转换。首先,所有客户端请求都会经过 API 服务网关;然后,API 服务网关再将服务请求路由到合适的微服务,以提供具体的服务处理。所以,API 服务网关经常会通过编排多个微服务来处理一个服务请求。


另外,还可以利用 API 服务网关为不同类型的客户端提供定制的 API。这样通过整合为客户端暴露一个粗粒度的 API,从而隐藏了系统架构的实现细节,客户端只需要同服务网关交互,而不必了解特定的微服务相关细节信息,减少了客户端与服务器之间的交互次数,同时也大大降低了客户端的开发难度和后期维护成本。


虽然 API 服务网关有上述优点,但在实施时开发者不得不面对 API 服务网关的不足。首先,需要为 API 服务网关开发一个具有高可用的组件,当使用 API 服务网关后,API 服务网关极有可能会成为系统的一个瓶颈,所以高可用是构建 API 服务网关首要考虑的。


此外,为了能够将微服务的端点接入 API 服务网关,开发人员需要及时地将微服务相关端点更新/注册到 API 服务网关中。因此,API 服务网关的更新/注册过程要尽可能地简单。否则,开发人员将耗费大量的精力,更新/注册服务网关的配置信息,这显然违背了微服务架构开发的初衷。


还有,API 服务网关需要知道与之通信的每个微服务服务器地址和端口信息,特别是在 API 服务网关中启用了负载均衡时。在传统的开发中,可以通过硬编码的方式(包含通过配置文件的方式)实现服务网关与各微服务地址的绑定,但在微服务架构下的开发,可以通过整合服务治理来实现。这样一个微服务的上线、下线等都可以进行自动处理,不需要手工去管理。


对 API 服务网关总结如下:

  • API 服务网关帮助开发者隐藏系统架构实现的细节,提供统一的入口供客户端访问,让微服务使用更为友好。

  • 通过微服务的统一访问控制,简化了客户端开发的复杂度,降低了客户端与微服务之间的通信次数,客户端不需要与多个微服务之间进行通信,也不需要了解各个微服务的详细信息。

  • 借助 API 服务网关可统一做切面任务,避免每个微服务自己开发,提升效率,使系统更加标准化。·通过 API 服务网关,可以将异构系统进行统一整合。

  • API 服务网关需要实现一个高可用伸缩性强的服务,避免单点失效。

  • API 服务网关需要对所有微服务实例所暴露的端点进行统一的管理,这为开发和运维增加了一定的难度。

发布于: 刚刚阅读数: 5
用户头像

阿泽🧸

关注

还未添加个人签名 2020.11.12 加入

还未添加个人简介

评论

发布
暂无评论
API服务网关_API网关_阿泽🧸_InfoQ写作社区