2024年4月25日发(作者:)

REGION INFO

数字地方

浅析微服务架构API网关的作用

姚 刚 吴海莉 王从镔

摘要:近年来微服务架构被广泛使用,系统后台服务支持的对象从之前单一的Web应用,扩展到多种

应用场景。API网关作为系统的入口,已经成为微服务架构中不可或缺的部分,尤其是随着5G网络的迅速

发展,各服务之间的流量变化呈现出爆发性的增长,迫使API网关被赋予了更多的功能和作用。论文通过对

API网关的概念、架构及作用、服务定位的论述,分析了企业如何进行API网关的选型与设计。

关键词:微服务;API网关;选型;设计

一、API网关

网关一词最早出现于互联网,是实现不同设备之间

互联的网络连接设备。实现两个系统或两个服务的通信,

在中间负责API的调用,我们把这个网关称之为API网

关(API Gateway)。在微服务架构中为了提高系统的性能,

微服务化各应用服务,各服务之间的调用变得更多,也

更为频繁。API网关主要负责服务的路由请求、负载均衡、

协议转换等工作,但是随着微服务架构的变迁,5G网络

和移动应用的迅猛发展,需求不断增加,业务快速增长,

各服务之间的流量变化呈现出爆发性的增长趋势,迫使

API网关催生出更多的功能。

Core(核心网关)系统的功能主要是对客户请求的接收,

它将请求指向给上层的服务端,并且会把这些处理结果

返回给客户端或下层服务端。API网关负载均衡、协议转

换、路由服务等大部分功能都在核心网关系统中完成;

Admin(网关管理)系统负责配置系统的各种策略,如:

限流、缓存以及告警等基础信息;Monitor(监控日志)

系统负责生成运维管理报表等。Admin和Monitor主要是

为Core服务,但是如果没有Admin和Monitor两个系统,

作为核心网关Core系统也可以独立运行。如图1所示,

API 网关系统架构图。

API 网关在系统中具有重要的地位。它既是系统的

入口,又是客户端与服务端之间的一层挡板,在整个微

服务架构中起承上启下的作用。API 网关主要的作用有以

下三个方面:1.系统隔离作用。作为企业系统的边界,

负责隔离内部系统与外部访问,从而保障了后台服务的

二、API 网关系统架构及作用

API 网关可以拆分成Core、Admin、Monitor 三个系统。

图1 API 网关系统架构图

16

安全性。2.解耦作用。不再担心其他方面对微服务的不

利影响,它能够灵活、高效地调整微服务系统的各方,

因为减少了客户端与服务的耦合,所以服务可以独立自

由的运行。3.应用基础设施。通过提供的访问地址,对

服务请求进行处理,有利于实现应用层面的扩展。另外

API网关在减少变更流程、提升访问效率、降低服务开发

成本、便于扩展等方面都具有独特的优势。

一个基于HTTP的服务请求,首先通过DNS解析,

然后进行负载均衡,再把这个请求分配到OpenResty 

API Gataway,在OpenResty API Gataway中主要实现

安全、限流、缓存、日志、监控和身份认证等功能,另

外还可以实现制定服务的注册、路由重写等策略;通过

OpenResty API Gataway的服务请求,负载均衡地传输到

不同的 Aggr API Gateway中,在Aggr API Gateway中可

以使用超时、缓存、熔断、重试、查询聚合等策略,如

图2所示,API网关在微服务架构中的作用图。图中黄

色框区域由开发人员进行程序开发,通过 Json配置与聚

合代码的方式实现聚合服务;请求由Aggr API Gateway 

到后端各Micro Service属于内部通讯,使用通讯协议进

行RPC调用。

图2 API网关在微服务架构中的作用图

三、API 网关服务定位

API 网关具有处理请求的能力,其服务定位有以下分

类,如图3所示,API网关在微服务架构中的应用场景图。

图3 API网关在微服务架构中的应用场景图

REGION INFO

数字地方

(一)Web App,面向Web应用

系统以网站和 H5 应用为主。Web App不是全功能的

Web App,在物理形态上它通过前后端分离设计,把大部

分的业务功能都放在了后端,前端 Web App仅仅实现页

面展示功能。

(二)Mobile App,面向移动应用

此设计思路与Web App很相似,后端服务的消费者

和使用者都是Mobile App,但是对于设备的注册、使用、

激活等Mobile的API网关还具有移动设备管理的职能

(MDM),因此对于移动设备服务请求,需要考虑请求

与使用者和设备的关系。

(三)Partner Open API,面向合作伙伴的开放API

为了实现业务形态的对外开放,系统对合作伙伴在

有时间、流量等限制条件的情况下提供接口访问服务,

这些接口会全部或部分的开放,因此Partner Open API需

要流量、安全、以及协议转换等管理,API网关需要增加

流量控制、令牌等方面的安全管控功能。

(四)External API,面向外部API

主要用于外部用户的接入,如今很多系统都会依靠

外部合作伙伴来实现流量导入,如第三方支付平台的使

用等,此时API 网关需要更多地考虑功能的边界划分、

认证、授权等访问控制类问题,在边界上为内部服务调

用和外部的API访问制定相应的控制策略。

(五)IoT SmartDevice,面向IoT智能设备

接收来自IOT设备的请求,如工业传感器等物联网

设备,需要考虑协议转换和数据过滤等问题。

在微服务架构下的API网关,主要是把企业内部

API处理请求的能力推荐给其他应用使用,因此Web 

App、Mobile App、Partner OpenAPI三种场景会较多的

使用,相对而言External API和IoT SmartDevice用的比

较少。

四、企业API网关选型与设计

(一)企业API网关选型

[1]

企业API网关选型主要考虑安全性、高性能、高可

用性、扩展性,以及API生命周期管理等几个方面。

1.安全性。安全性是任何系统选型的第一位要素。

API网关给企业系统带来诸多优点,但其中最大的优点就

是保障了后台服务的安全性,在微服务中企业把服务暴

露给外部使用,各服务之间相互调用,需要防止外部系

统或服务恶意的访问行为,尤其是涉及商务交易、电子

支付等服务,更是需全面考虑安全性问题。因此,在通

讯链路的创建、数据的加密和完整性等方面都需要确保

系统的安全性。

2.高可用性。API网关作为逻辑上的单点,存在故

障的风险,一旦发生故障,对系统将会致命性的打击,

高可用的API网关是整个企业系统稳定运行的基本保障。

17

REGION INFO

数字地方

在企业API网关选型时,需要考虑网关的自动伸缩能力,

以及系统在运行状态下的热更新能力等。

3.高性能。API 网关作为系统的入口,所有的服务

请求都会通过网关进行转发,每分钟甚至每秒钟千万次

的访问量,使API网关承受着巨大的性能压力,犹如人

体心脏、血流压力一旦超出心脏自身的承受能力,心脏

和身体都会出现问题。5G网络的快速发展,海量的移动

终端服务请求时刻需要与后端的服务进行交互,高性能

API网关是应对大流量、高并发服务请求的有力保障。

4.扩展性。日志、安全、监控、鉴权等一些非功能

性问题,会随着企业系统业务需求和规模的改变而变化,

在这种情况下,我们不需对网关层进行频繁的改动以适

应新变化,只需要在网关层建立一种调整机制,灵活地

进行调整,即可保证网关层的稳定。

5.生命周期管理。API的全生命周期一般包括:计划、

设计、实施、发布、操作、监控、维护和下线等过程,

其中安全策略贯穿于整个生命周期。如图4所示,API全

生命周期图。面对不同的服务和用户,需要提供不同的

访问策略,但这些策略都需要遵循基本的安全性。为了

适应各种服务需求,在API的使用过程中改造和升级已

经成为API管理的一项日常性工作,致使API生命周期

在不断的发生调整和改变。因此,API网关需要建立一个

配套系统,负责对微服务系统的使用者和管理者进行API

服务的运维管理。

图4 API全生命周期图

(二)企业API网关设计

[2-3]

企业级API网关,除了具备请求转发、协议转换、

路由等这些基本功能外,还需要满足高性能、高适用性

和易维护的设计要求。另外在网关实施中,需要规划好

网关层与服务层的交互方式,减少客户端与服务的耦合。

1.功能性设计。API网关的功能包括:安全防护、

流量控制、请求管理、开发、告警、API生命周期管理等。

满足功能是API网关设计的基本要求。

2.高性能设计。传统的基于线程的并发模型一个请

求分配一个进程,随着这些进程数量的增加,当服务需

求调用在频繁切换时候,系统性能会急剧下降。微服务

架构下所有的服务请求都通过API网关进行转发,高性

能的API网关可以应对大数据流量增长的多进程问题。

因此在设计企业API网关时,必须考虑企业系统应对请

求服务增长量的问题。

3.高适用性设计。高适用性包括高可用性和易扩展

性。无状态的cookie+session服务器方式的网关层设计,

网关不负责session的维护;接受请求、转发请求、返回

数据给请求者是网关处理一个服务请求的一般过程,其

中各环节都是功能扩展点;前端和后端的服务管理需要,

配置映射关系,解耦网关层对服务层的依赖;另外还需

要保证服务在下线和上线过程的压力分配。

4.易维护设计。API网关的选型与设计都需要考虑

网关层与服务层的协作问题,网关层需要知道API的接

口形式,以及发布的地址等信息,在API上线和发布过

程中网关层密切配合,可靠的API网关设计可以使API

管理更高效,运行维护更便捷。

五、结语

通过对微服务架构API网关的分析和论述,我们可

以看出API网关在微服务架构中具有极其重要的作用,

成为架构中不可获缺的部分。虽然API网关在系统中主

要发挥隔离作用、解耦作用、应用基础设施的作用,但

是随着移动应用和5G网络的迅猛发展,各服务间数据

流的快速增长催生了API网关,诸如:限流、缓存、告

警等更多的功能。企业API网关的选型和设计以安全性

为前提,需要围绕API的全生命周期中各环节制定相应

策略,同时随着系统不断变化和新需求的增长,还需要

保证系统的稳定运行,选择和设计一个功能完善,且高

性能、高适用性、易维护的API网关是成熟企业系统的

关键。

H

参考文献

[1]张晶,黄小锋,李春阳.微服务框架的设计与实现[J]. 计算

机系统应用,2017(06).

[2] 廖俊杰,陶智勇.微服务API网关的设计及应用[J].自动

化技术与应用,2019(08).

[3]李春阳,刘迪,崔蔚,等.基于微服务架构的统一应用开发

平台[J].计算机系统应用,2017(04).

(作者单位:中国石油勘探开发研究院西北分院)

18