前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >初识API网关 / API Gateway

初识API网关 / API Gateway

原创
作者头像
七七分享
修改于 2020-07-13 02:25:20
修改于 2020-07-13 02:25:20
9.7K3
举报
API网关是什么

在日常工作中,不同的场合下,我们可能听说过很多次网关这个名称,这里说的网关特指API网关API Gataway)。字面意思是指将所有API的调用统一接入API网关层,由网关层负责接入和输出。

那么在什么情况下需要一个API网关呢?下面从单体应用到微服务演变的过程去阐述,回顾单体应用时代,在业务简单、团队组织规模很小的时候,我们常常把功能都几种与一个应用中,统一部署,统一测试,如下图:

1.png
1.png

随着业务的迅速发展,组织成员日益增多。将所有的功能几种在一个Tomcat中的时候,没更新一个功能模块,势必要更新所有的程序。牵一发而动全身,系统将很难维护。

单体应用满足不了日趋增长的需求之后,微服务出现了。我们利用微服务的思想,将原来的单体应用进行微服务化。将原来集中于一体的功能(如商品、订单服务)进行拆分,每个功能模块又各自的自成体系的发布、运维等功能。这样就解决了单体应用的弊端,如下:

2.png
2.png

这时,我们还没有看到API Gateway。举例来说,原先IOS、Android、PC客户端调用服务的地方,需要多个URL地址,有订单的、商品的、用户的。微服务化后就必须有统一的出入口,这种情况下,API Gateway就出现了。API Gateway很好的解决了微服务下调用、统一接入等问题,如下图所示:

3.png
3.png

有了API网关之后,各个API服务提供团队可以专注于自己的业务逻辑处理,而API罔顾赞更专注于安全、流量、路由等问题。

看到上面的图示与描述,我们可能会想到另外一个与网关类似的东西——代理。网关与代理的区别:代理是纯粹的数据透传,协议不会发生变化;网关在数据透传的背景下,还会设计协议的转换,比如上图中用户请求传输到网关的协议是HTTP,通过网关透传到下游则可能已经转换成企业内部的RPC了(比如JSF、Dubbo等企业自研的RPC框架)。

API网关涵盖的基本功能

一个API网关的基本功能包含了统一接入、协议适配、流量管理与容错、以及安全防护,这四大基本功能构成了网关的核心功能。网关首要的功能是负责统一接入,然后将请求的协议转换成内部的接口协议,在调用的过程中还要有限流、降级、熔断等容错的方式来保护网关的整体稳定,同时网关还要做到基本的安全防护(防刷控制),以及黑白名单(比如IP白名单)等基本安全措施,如下图所示:

4.png
4.png
API网关的架构示例

除了基本的四大功能,网关运行良好的环境还包括注册中心(比如:ZK读取已发布的API接口的动态配置)。为了实现高性能,将数据全部异构到缓存(如:Redis)中,同时还可以配合本地缓存来进一步提高网关系统的性能。为了提高网关的吞吐率,可以使用NIO+Servlet 3 异步的方式,还可以利用Servlet 3 的异步特性将请求线程与业务线程分开,为后续的线程池隔离做好基本的支撑。访问日志的存储我们可以放到Hbase中,如果要作为开放网关使用,那么需要一个支持OAuth2.0的授权中心。还可以引入Nginx + lua的方式将一些基本的校验判断放到应用系统之上,这样可以更轻量化的处理接入的问题,整体的网关架构示例如下所示:

5.png
5.png
小结

文章中,我们从单体系统到微服务系统演变,引入了API网关的概念,紧接着介绍了API Gateway的基本功能,以及展示一个线上生产网关的架构示意图。通过本片文章,可以对API Gateway的内容有一个基本的认知。

内容来源:《架构修炼之道》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
3 条评论
热度
最新
本文节选自《架构修炼之道》第一章网关之道。
本文节选自《架构修炼之道》第一章网关之道。
22点赞举报
谢谢,已标明内容来源《架构修炼之道》
谢谢,已标明内容来源《架构修炼之道》
回复回复点赞举报
大佬您好,刚才反应过来您是《架构修炼之道》的作者,抱歉,之前学习的时候觉得精彩的内容写了两篇博文,写博文没有经验,未标明内容来源。如有冒犯,还请见谅,已标明内容来源《架构修炼之道》一书。
大佬您好,刚才反应过来您是《架构修炼之道》的作者,抱歉,之前学习的时候觉得精彩的内容写了两篇博文,写博文没有经验,未标明内容来源。如有冒犯,还请见谅,已标明内容来源《架构修炼之道》一书。
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
一文速通Nginx网关与gateway网关区分
网关的角色是作为一个 API 架构,用来保护、增强和控制对于 API 服务的访问。API 网关是一个处于应用程序或服务(提供 REST API 接口服务)之前的系统,用来管理授权、访问控制和流量限制等,这样 REST API 接口服务就被 API 网关保护起来,对所有的调用者透明。因此,隐藏在 API 网关后面的业务系统就可以专注于创建和管理服务,而不用去处理这些策略性的基础设施。
一个风轻云淡
2023/10/25
6.8K0
构建高可用网关之容错实践
自从微服务概念以来,众多的软件架构在践行着这一优秀的设计理念。各自的系统在这一指导思想下收获了优雅的可维护性,但一方面也给接口调用提出了新的要求。比如众多的API调用急需一个统一的入口来支持客户端的调用。在这种情况下API GATEWAY诞生,我们将接入、路由、限流等功能统一由网关负责,各自的服务提供方专注于业务逻辑的实现,从而给客户端调用提供了一个稳健的服务调用环境。之后,我们在网关大调用量的情况下,还要保证网关的可降级、可限流、可隔离等等一系列容错能力。 一、网关 这里说的网关是指API网关,直面意思是
纯洁的微笑
2018/04/18
1.3K0
构建高可用网关之容错实践
Spring Cloud Gateway解析
Gateway( 网关),顾名思义,是出现在系统边界上的一个面向API或应用服务的、串行集中式的强管控服务,这里我们讨论的边界可以基于企业IT系统的边界,当然,可以理解为企业级应用防火墙,其目标主要起到隔离外部访问与内部系统交互的作用。在微服务概念的流行之前,网关就已经诞生了,在面向SOA体系中已经成熟,然而,随着微服务体系的快速发展,更进一步将Gateway推向更高的浪口。与其说网关催生了微服务体系,不如说微服务体系拥抱了网关。
Luga Lee
2021/12/09
8600
Spring Cloud Gateway解析
架构师如何选型分布式业务网关
在日常工作中,不同的场合下,我们可能都会听说网关的概念,当然通常是指业务网关(API网关),负责API的输入和输出。有了业务网关之后,各个API服务提供者可以专注于自己的业务逻辑处理,而API网关更专注于安全、流量、路由等问题。从功能层次我们又会联想到一个概念——代理。网关与代理的区别:代理本质是数据的透传,协议不会发生变化;网关在数据透传的背景下,还会涉及协议的转换,比如从HTTP到Dubbo。
35岁程序员那些事
2022/09/23
9040
架构师如何选型分布式业务网关
B站基于微服务的API网关从0到1的演进之路
如果你在 2015 年就使用 B 站,那么你一定不会忘记那一年 B 站工作日选择性崩溃,周末必然性崩溃的一段时间。
JackJiang
2022/06/14
1K0
B站基于微服务的API网关从0到1的演进之路
SpringCloud-Alibaba | 微服务架构介绍
微服务架构, 简单的说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独立运行的项目。
码神联盟
2020/12/03
7590
SpringCloud-Alibaba |  微服务架构介绍
SpringCloud——微服务介绍+系统架构
* 全部功能集成在一个工程中,对于大型项目来讲不易开发和维护* 项目模块之间紧密耦合,单点容错率低* 无法针对不同模块进行针对性能优化和水平扩展
用户10196776
2022/11/22
1.1K0
SpringCloud——微服务介绍+系统架构
微服务网关系列:为什么需要API网关
微服务是指开发应用所用的一种架构形式。具体表现是将大型应用分解成多个独立的服务,以API形式对外提供服务。
AIOPS
2023/11/01
5030
初步了解SpringCloud微服务架构
针对上述问题,传统的单体结构已经不再适用于复杂度日益渐增的产品,因此一种新的软件架构提供了解决方案 —— 微服务 。
程序员Leo
2023/08/07
1.1K0
初步了解SpringCloud微服务架构
原创好文!亿级流量网关设计思路
本文准备围绕七个点来讲网关,分别是网关的基本概念、网关设计思路、网关设计重点、流量网关、业务网关、常见网关对比,对基础概念熟悉的朋友可以根据目录查看自己感兴趣的部分。
cxuan
2021/03/12
2.1K0
云原生环境下的API业务安全思考
针对单体架构的应用,安全防护往往在边界网关设备处。随着业务需求的不断变化以及技术的持续更新,企业应用开始从单体架构向微服务架构转变。不同应用模块可以根据业务规模进行动态扩缩容,与此同时,微服务应用也为API安全防护带来了新的挑战。
绿盟科技研究通讯
2021/11/17
1.1K0
云原生环境下的API业务安全思考
快速学习-微服务简介
随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。
cwl_java
2020/08/28
6640
快速学习-微服务简介
5款基于Java开发的开源API网关
在微服务架构中,API网关是一个必不可少的组件之一,下面推荐几款基于Java语言开发的高性能API网关。
openapplus
2020/10/30
6.2K0
微服务网关除了zuul、spring cloud gateway还有更出色的
在微服务架构中,由于系统和服务的细分,导致系统结构变得非常复杂, 为了跨平台,为了统一集中管理api,同时为了不暴露后置服务。甚至有时候需要对请求进行一些安全、负载均衡、限流、熔断、灰度等中间操作,基于此类种种的客观需求一个类似综合前置的系统就产生了,这就是API网关(API Gateway)。API网关作为分散在各个业务系统微服务的API聚合点和统一接入点,外部请求通过访问这个接入点,即可访问内部所有的REST API服务。目前常用的微服务网关有zuul、gateway,今天来简单介绍一下另一种选择——Kong 。说到Kong可能对大家有点陌生,我们来先了解下另一种不陌生的中间件——OpenResty。
码农小胖哥
2019/12/10
2K0
微服务网关除了zuul、spring cloud gateway还有更出色的
nginx和gateway什么关系_api网关和redis的关系
对于具体的后端业务应用或者是服务和业务有一定关联性的策略网关就是上图左边的架构模型——业务网关。 业务网关针对具体的业务需要提供特定的流控策略、缓存策略、鉴权认证策略等等。
全栈程序员站长
2022/11/07
1.7K0
nginx和gateway什么关系_api网关和redis的关系
普元EOS 8网关设计及应用
普元EOS 8 API Gateway作为一个独立模块,可以对API进行创建、发布、维护、监控等全生命周期管理。
yuanyi928
2019/03/07
1.2K0
gateway 鉴权_gateway网关集群
说起鉴权,大多数会立马想到各种鉴权的技术,比如过滤器、拦截器、安全治理框架shiro、spring-security等等,它们在不同的业务场景下发挥的作用各不相同,但是总体来说都有一个相似的作用,就是作为后端服务的安全防护层
全栈程序员站长
2022/11/10
1.4K0
【云原生应用安全】云原生应用安全防护思考(一)
应用是云原生体系中最贴近用户和业务价值的部分,笔者在之前《云原生应用安全风险思考》一文中分析了云原生应用面临的风险,相信各位读者已经有所了解,本文为云原生应用安全防护系列的第一篇,主要针对传统应用安全、API安全、云原生应用业务安全这三方面风险提出笔者的一些防护见解及思考。另外,文章篇幅较长,且内容上与前述风险篇相互对应,若结合在一起阅读,思路会更清晰些,希望本文可为各位读者带来更多思考。
绿盟科技研究通讯
2021/09/27
2K0
TSF微服务治理实战系列(四)——服务安全
导语 “道路千万条,安全第一条。治理不规范,老板两行泪”。 当企业从单体架构逐渐转向微服务架构时,服务安全的需求也随之分散到了整个微服务体系的各个部分中。这就需要构建一套配置活、成本低的安全防控体系,覆盖请求链路中的各个部分,满足用户的安全诉求。本章将从安全的视角介绍TSF相关的能力,包括服务和网关的鉴权机制、如何保证应用配置的安全、权限管理及事件审计等方面。 作者简介 崔凯 腾讯云 CSIG 微服务产品中心产品架构师 多年分布式、高并发电子商务系统的研发、系统架构设计经验,擅长主流微服务架构技术平台的
腾讯云中间件团队
2022/11/24
1.3K0
TSF微服务治理实战系列(四)——服务安全
云原生之微服务架构
傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波
山河已无恙
2023/01/30
9480
云原生之微服务架构
相关推荐
一文速通Nginx网关与gateway网关区分
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档