当前位置:网站首页>何为API服务网关
何为API服务网关
2022-08-11 11:31:00 【51CTO】
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服务网关需要对所有微服务实例所暴露的端点进行统一的管理,这为开发和运维增加了一定的难度。
边栏推荐
猜你喜欢

Hugging Face快速入门(重点讲解模型(Transformers)和数据集部分(Datasets))

2.MySQL ---- 修改数据库的字符集(日常小技巧)

Summary of darknet structures
![[10点公开课]:AV1编码器的优化及其在流媒体和实时通讯中的应用](/img/86/a6cd309cd66eb37159fcb8ae3338b1.png)
[10点公开课]:AV1编码器的优化及其在流媒体和实时通讯中的应用

如何设计一组会出现死锁(Deadlock)的ABAP程序

a-upload上传图片

Analyzes how Flink task than YARN container memory limit

Small target stunt | Complete the small target detection upgrade of Yolov5 in the easiest way!

TX12 + ExpressLRS 915MHz RC控制链路配置及问题汇总

图像识别(八)| 还对全连接层迷迷糊糊?背会一首诗就行了
随机推荐
1.MySQL ----数据库的基础操作
C-V2X八大误区澄清和发展辩思
【毕业设计】远程智能浇花灌溉系统 - stm32 单片机 嵌入式 物联网
Neural network visualization has 3 d version of the, the United States to fall!(open source)
Go-Excelize API源码阅读(七)—— CopySheet(from, to int)
Common operations in Typora tables
独家采访 | 智能源于自发产生而非计划:进化论拥趸,前OpenAI研究经理、UBC大学副教授Jeff Clune
如何批量下载hugging face模型和数据集文件
七、一起学习Lua 函数
EXCLUSIVE INTERVIEW | INTELLIGENCE IS SPONTANED, NOT PLANNED: Evolution Fan, Former OpenAI Research Manager and UBC Associate Professor Jeff Clune
FS2956A 输入8-120V 用于液晶仪表5V-USB 充电口方案
日志使用注意事项和建议
ID3v2 Library以便能够设置
「开源推荐」一个通用的后台管理系统
Starting from zero configuration vim (11) -- plug-in management
Jetpack Compose学习(9)——Compose中的列表控件(LazyRow和LazyColumn)
在华门店数超星巴克,瑞幸咖啡完成“逆袭”?
目标检测学习笔记——小目标检测
PerfView project (first) : how to find hot spots function
神经网络可视化有3D版本了,美到沦陷!(已开源)