1.1 API网关是什么

网关,英文 Gateway,是一个计算机网络世界的词汇。它的基本作用是,充当若干网络之间的连接器。

网关就像一扇门,连通着不同的房间,也像从一个国家通向另一个国家的边境口岸。在生活中,门的作用是控制两个房间的开闭,网关的核心功能与之类似,它用来控制两个网络之间的连通。除此以外,网关还有一项重要任务,就是对网络协议进行转换。典型的网关是运行在 OSI 模型网络层的一些设备,不过,网关并不限定运行在哪一层。一些其它层的设备甚至一些软件,也被人们称为“网关”,比如本书所讲的“API网关”。

在现实生活中,我们通常所说的网关,有可能指以下事物:路由器,云存储网关,物联网网关,API网关等。

本书所说的网关,都是指API网关。API的全程是Application Programming Interface,即应用程序编程接口。Web API的常见形态,是使用HTTP协议从客户端向服务端发出请求并接收响应,HTTP消息的正文通常是JSON或XML格式的。API是现代应用程序的架构核心。一个大型系统,无论其功能多么复杂,最终往往都是由一个个API构成的。在理想情况下,每个API的功能是单一的,表现是统一的,同时也是易于维护的。只有这样,才能支持起一个大规模的应用。而API网关在这其中的作用,就是为API提供单一的、一致的入口。

随着微服务架构的流行,开发者倾向于将单体的系统拆分成一个个低耦合的微服务,这样的做法使得系统中API数量快速增长,此时,API网关几乎成为了系统中不可或缺的部分。

API网关可以定义为客户端和后端服务之间的连通点,它接收客户端的API调用,并将每个调用路由到合适的后端服务上。目前市场上的网关产品各有异同,但是通常都具有以下核心功能:

  • 协议支持:支持特定的网络协议如 HTTP,TCP,UDP,gRPC等)。

  • 请求路由:将来自客户端的请求路由到合适的后端服务。

  • 身份验证:使用 SON Web令牌(JWT)等方式对访问者进行验证和鉴权。

  • 流量限制:限制请求速率。

Last updated