16REGION INFO      数字地方
摘要:近年来微服务架构被广泛使用,系统后台服务支持的对象从之前单一的Web应用,扩展到多种应用场景。API网关作为系统的入口,已经成为微服务架构中不可或缺的部分,尤其是随着5G网络的迅速发展,各服务之间的流量变化呈现出爆发性的增长,迫使API网关被赋予了更多的功能和作用。论文通过对API网关的概念、架构及作用、服务定位的论述,分析了企业如何进行API网关的选型与设计。
关键词:微服务;API网关;选型;设计
一、API 网关
网关一词最早出现于互联网,是实现不同设备之间互联的网络连接设备。实现两个系统或两个服务的通信,在中间负责API 的调用,我们把这个网关称之为API 网关(API Gateway)。在微服务架构中为了提高系统的性能,微服务化各应用服务,各服务之间的调用变得更多,也更为频繁。API 网关主要负责服务的路由请求、负载均衡、协议转换等工作,但是随着微服务架构的变迁,5G 网络和移动应用的迅猛发展,需求不断增加,业务快速增长,各服务之间的流量变化呈现出爆发性的增长趋势,迫使API 网关催生出更多的功能。
二、API 网关系统架构及作用
API 网关可以拆分成Core、Admin、Monitor 三个系统。
Core(核心网关)系统的功能主要是对客户请求的接收,它将请求指向给上层的服务端,并且会把这些处理结果返回给客户端或下层服务端。API 网关负载均衡、协议转换、路由服务等大部分功能都在核心网关系统中完成;Admin(网关管理)系统负责配置系统的各种策略,如:限流、缓存以及告警等基础信息;Monitor(监控日志)系统负责生成运维管理报表等。Admin 和Monitor 主要是为Core 服务,但是如果没有Admin 和Monitor 两个系统,作为核心网关Core 系统也可以独立运行。如图1所示,API 网关系统架构图。
API 网关在系统中具有重要的地位。它既是系统的入口,又是客户端与服务端之间的一层挡板,在整个微服务架构中起承上启下的作用。API 网关主要的作用有以下三个方面:1.系统隔离作用。作为企业系统的边界,负责隔离内部系统与外部访问,从而保障了后台服务的
浅析微服务架构API 网关的作用
姚    刚    吴海莉    王从镔
◆ 图1 API 网关系统架构图
REGION INFO    数字地方
安全性。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网关在微服务架构中的应用场景图
(一)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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。