SpringCloud Gateway系列【1】API网关概述

API网关作为微服务架构中的重要组件,负责统一接入、协议适配、流量管理和安全防护。其作用包括统一对外接口、增加系统安全性、统一鉴权和限流。文章提到了Zuul、SpringCloudGateway、Kong和APISIX等API网关的选型选项,分别介绍了它们的特点和适用场景。

概念

我们知道在微服务架构中,大型服务都被拆分成了独立的微服务,每个微服务通常会以RESTFUL API的形式对外提供服务。API网关是所有服务调用的统一出入口,由于这种特殊的地位,我们可以在API网关实现多种非功能性需求,比如:安全、流量、路由等。

基本功能

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

API网关的作用

API网关作用

  • 统一对外接口
    当用户需要集成不同产品或者服务之间的功能,调用不同服务提供的能力。利用APIGateway可以让用户在不感知服务边缘的情况下,利用统一的接口组装服务。
    对于公司内部不同的服务,提供的接口可能在风格上存在一定的差异,通过APIGateway可以统一这种差异。 当内部服务修改时,可以通过APIGateway进行适配,不需要调用方进行调整。

  • 增加系统安全性
    APIGateway对外部和内部进行了隔离,减少对外暴露服务可以增加系统安全性,保障了后台服务的安全性。

  • 统一鉴权
    通过APIGateway对访问进行统一鉴权,不需要每个应用单独对调用方进行鉴权,应用可以专注业务。

  • 服务注册与授权
    可以控制调用方可以使用和不可以使用的服务。

  • 服务限流
    通过APIGateway可以对调用方调用每个接口的每日调用及总调用次数限制。

  • 提升预发能力
    为服务熔断,灰度发布,线上测试提供简单方案。

  • 全链路跟踪

API网关选型

  • ZUUL
    zuul是Netflx公司开源的一个API网关组件,Spring Cloud对其进行二次基于Spring Boot的注解式封装做到开箱即用。目前来说,结合sring Cloud 提供的服务治理体系,可以做到请求转发,根据配置或者默认的路由规则进行路由和Load Balance,无痛集成hystrix。
  • Spring Cloud Gateway
    Spring Cloud Gateway是基于Spring生态系统之上构建的API网关,包括: Spring 5,Spring Boot 2和Project Reactor。Spring cloud Gateway旨在提供一种简单而有效的方法来路由到API,并为它们提供跨领域的关注点,例如:安全性,监视/指标,限流等。由于Spring 5.0支持Netty,Http2,而Spring Boot 2.0支持 Spring 5.0,因此Spring Cloud Gateway支持 Netty和Http2顺理成章。
  • Kong
    Kong 是 Mashape提供的一款API管理软件,它本身是基于Ngnix + Lua的,但比 Nginx提供了更简单的配置方式,数据采用了Apache Cassandra/PostgresSQL存储,并且提供了一些优秀的插件,比如验证,日志,调用频次限制等。Kong非常诱人的地方就是提供了大量的插件来扩展应用,通过设置不同的插件可以为服务提供各种增强的功能。
  • APISIX
    Apache APISIX 是一个动态、实时、高性能的 API 网关,提供负载均衡、动态上游、灰度发布、精细化路由、限流限速、服务降级、服务熔断、身份认证、可观测性等数百项功能。在认证鉴权方面,APISIX 也是提供了非常多且方便的途径。

参考:网关概述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平凡的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值