首页 > 其他分享 >API网关(API GATEWAY)是什么?有什么作用?

API网关(API GATEWAY)是什么?有什么作用?

时间:2025-01-15 13:56:06浏览次数:1  
标签:网关 调用 服务 Gateway API ------------- GATEWAY

API网关(API GATEWAY)是什么?有什么作用?| Id | Title | DateAdded | SourceUrl | PostType | Body | BlogId | Description | DateUpdated | IsMarkdown | EntryName | CreatedTime | IsActive | AutoDesc | AccessPermission |

| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------|
| 14903236| API网关(API GATEWAY)是什么?有什么作用?| 2021-06-19T16:11:00| | BlogPost|

一、什么是API Gateway

我们知道在微服务架构中,大型服务都被拆分成了独立的微服务,每个微服务通常会以RESTFUL API的形式对外提供服务。但是在UI方面,我们可能需要在一个页面上显示来自不同微服务的数据,此时就会需要一个统一的入口来进行API的调用。上图中我们可以看到,API Gateway就在此场景下充当了多个服务的大门,系统的统一入口,从面向对象设计的角度看,它与外观模式类似,API Gateway封装了系统的内部复杂结构,同时它还可能具有其他API管理/调用的通用功能,如认证,限流,流控等功能。

二、为什么需要API Gateway

在微服务的架构模式下,API Gateway是微服务架构中一个非常通用的模式,利用API Gateway可以解决调用方如何调用独立的微服务这个问题。

从部署结构上说,上图是不采用API Gateway的微服务部署模式,我们可以清晰看到,这种部署模式下,客户端与负载均衡器直接交互,完成服务的调用。但这是这种模式下,也有它的不足。

不足

不支持动态扩展,系统每多一个服务,就需要部署或修改负载均衡器。

无法做到动态的开关服务,若要下线某个服务,需要运维人员将服务地址从负载均衡器中移除。

对于API的限流,安全等控制,需要每个微服务去自己实现,增加了微服务的复杂性,同时也违反了微服务设计的单一职责原则。

上图为采用API Gateway模式,我们通过上图可以看到,API Gateway做为系统统一入口,实现了对各个微服务间的整合,同时又做到了对客户端友好,屏蔽系统了复杂性和差异性。对比之前无API Gateway模式,API Gateway具有几个比较重要的优点:

优点

采用API Gateway可以与微服务注册中心连接,实现微服务无感知动态扩容。

API Gateway对于无法访问的服务,可以做到自动熔断,无需人工参与。

API Gateway可以方便的实现蓝绿部署,金丝雀发布或A/B发布。

API Gateway做为系统统一入口,我们可以将各个微服务公共功能放在API Gateway中实现,以尽可能减少各服务的职责。

帮助我们实现客户端的负载均衡策略。

三、API Gateway分类

API Gateway可分为两类

  • 单节点 API 网关
  • Backends for frontends 网关

单节点的 API网关为每个客户端提供不同的API,而不是提供一种万能风格的API。

这种模式是针对不同的客户端来实现一个不同的API网关。

四、API Gateway中一些重要的功能

1、负载均衡

2、服务熔断

3、灰度发布

服务发布上线过程中,我们不可能将新版本全部部署在生产环节中,因为新版本并没有接受真实用户、真实数据、真实环境的考验,此时我们需要进行灰度发布,灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,同时影响小。API Gateway可以帮助我们轻松的完成灰度发布,只需要在API Gateway中配置我们需要的规则,按版本,按IP段等,API Gateway会自动为我们完成实际的请求分流。

4、数据聚合

由于不同的客户端往往需要的数据完全不同,而这些数据又是不同的 service 提供的,比如上面提到的查看一个商品详情页,我们可能需要同时从商品服务,库存服务,评价服务等中拉取信息,我们可以借助 Gateway 方便完成来自不同 service 的数据聚合。

5、统一对外接口

当用户需要集成不同产品或者服务之间的功能,调用不同服务提供的能力。利用APIGateway可以让用户在不感知服务边缘的情况下,利用统一的接口组装服务。

对于公司内部不同的服务,提供的接口可能在风格上存在一定的差异,通过APIGateway可以统一这种差异。 当内部服务修改时,可以通过APIGateway进行适配,不需要调用方进行调整

减少对外暴露服务可以增加系统安全性。

发布于 05-13| 648658| | 2024-04-29T20:50:00| false| | 2021-06-19T16:11:07.903| true| 一、什么是API Gateway 我们知道在微服务架构中,大型服务都被拆分成了独立的微服务,每个微服务通常会以RESTFUL API的形式对外提供服务。但是在UI方面,我们可能需要在一个页面上显示来自不同微服务的数据,此时就会需要一个统一的入口来进行API的调用。上图中我们可以看到,API Gate| Anonymous|

标签:网关,调用,服务,Gateway,API,-------------,GATEWAY
From: https://www.cnblogs.com/ralphlauren/p/18621177

相关文章

  • elasticsearch的RestAPI之操作文档
    RestClient操作文档新增文档将DB表中的数据同步到elasticsearch1)查询数据库1.1)数据库查询后的结果是一个Hotel类型的对象1@Data2@TableName("tb_hotel")3publicclassHotel{4@TableId(type=IdType.INPUT)5privateLongid;6privateString......
  • js 调用 IIS部署的 WebAPI 相关配置
    1.跨域问题处理需要在web.config添加节点<system.webServer><httpProtocol><customHeaders><addname="Access-Control-Allow-Origin"value="*"/><addname="Access-Control-Allow-Headers"......
  • 你有用过HTML5的Device API吗?说说它都有哪些应用场景?
    HTML5的DeviceAPI应用场景解析HTML5的DeviceAPI为前端开发者提供了一系列强大的工具,使得Web应用能够更深入地与用户的设备进行交互。以下是对HTML5DeviceAPI的一些主要应用场景的详细解析:一、重力感应与方向控制通过HTML5的DeviceOrientation接口,开发者可以获取到设备的方......
  • ryujin 1.2.78下载(龙神模拟器),配置19.0的key和对应固件,解决amiibo API错误(需要翻墙vpn)
    1.下载不废话Release1.2.78·Ryubing/Ryujinx·GitHub,找对应的版本下载下载后解压得到publish文件夹,打开里面的Ryujinx.exe,会报错,别管先挂着,接着看步骤22.配置switch的key和固件推荐(不用vpn):下面步骤2.1和2.2 key和固件的下载要使用vpn,你可以直接用夸克打开下面......
  • 新大陆物联网环境云数据上传网关
    软件NSTool_V2.0.1.zipadam.zip环境云_V2.0.0.zip固件NewSensorV2.0.1.zip文档NewSensor固件烧写说明20190626.pdfns烧写1.NewSensor设备接线连接串口到PC,将下载开关拨到左侧下载,并且重新给ns上电。2.固件下载工具安装2.1.注意:NewSensor固件下载工具......
  • FastGPT及大模型API(Docker)私有化部署指南
    FastGPT及大模型API(Docker)私有化部署指南​​经过优化,在不影响FastGPT功能的情况下,大幅降低了部署的设备配置要求,仅需1c1h即可正常部署使用。官方要求配置:​​优化后的实际占用情况:运行内存仅需370M(测试学习场景下)​​官方推荐部署容器:​pg​......
  • 使用NVENC API编码D3D12材质
    前言  之前在写图形引擎的时候就有个想法,想让我的图形引擎以一个固定的时间步进(DeltaTime)来渲染材质,并且把连续渲染的材质以视频的方式保存下来。其实我很久之前就把这个东西实现了,最近也是修改了下代码,准备写一篇关于这个的随笔。介绍  看了些网上的视频以及相关的文章,把......
  • UnityAPI:利器CullingGroup
    https://docs.unity3d.com/Manual/CullingGroupAPI.html这个API非常强大,可以快速的实现自定义的Occlusionculling和Lod系统,并且性能表现极佳。简要原理CullingGroup为了性能考虑,把所有的物体模拟为球形,传入摄像机后,检测球形与相机视窗的交集,通过onStateChanged通知应用......
  • Composition API与Options API的区别
    CompositionAPI相比OptionsAPI的优点主要体现在代码的灵活性、可重用性、逻辑组织等方面,尤其是在大型项目或复杂组件中更为显著。1.更好的逻辑组织在OptionsAPI中,组件的不同逻辑通常分散在data、computed、methods、mounted等不同选项中。当组件逻辑复杂或包含多个功......
  • 诗歌创作 AI 大师 API 数据接口
    诗歌创作AI大师API数据接口AI/文本生成基于AI模型的诗歌创作大师诗歌创作/文学生成。1.产品功能支持根据主题生成高质量原创诗歌;自动识别主题内容,生成符合情感和语境的诗歌;多语言支持,可创作不同语言的诗歌;基于AI模型,持续优化诗歌生成质量;适用于文学创作、......