JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

API网关是什么 api网关管理系统

wys521 2024-09-29 22:47:34 精选教程 23 ℃ 0 评论

API网关是什么?

微服务兴起的一种架构模式,微服务拆分使API规模成倍增长,API的管理难度日益增加,使用API网关发布和管理API逐渐成为一种趋势,API网关是运行于外部请求与内部服务之间的一个流量入口,实现对外部请求的请求转发,安全认证(身份/权限认证),流量控制,负载均衡,降级熔断,日志,监控,协议转换等通用功能,一般外层用nginx高可用做API网关负载,保证高可用,避免单点故障。

常规功能

请求转发:将请求转发到目标微服务

负载均衡:根据各个微服务实例的负载情况或者具体的负载均衡策略配置对请求实现动态的负载均衡

安全认证:对用户请求进行身份验证并仅允许可信客户端访问 API,并且还能够使用类似 RBAC 等方式来授权

参数校验:支持参数映射与校验逻辑

日志记录:记录所有请求的行为日志供后续使用

监控告警:从业务指标、机器指标、JVM 指标等方面进行监控并提供配套的告警机制

流量控制:对请求的流量进行控制,可以限制某一时刻内的请求数

熔断降级:实时监控请求的统计信息,达到配置的失败阈值后,自动熔断,返回默认值

响应缓存:当用户请求获取的是一些静态的或更新不频繁的数据时,一段时间内多次请求获取到的数据很可能是一样的。对于这种情况可以将响应缓存起来。这样用户请求可以直接在网关层得到响应数据,无需再去访问业务服务,减轻业务服务的负担

响应聚合:某些情况下用户请求要获取的响应内容可能会来自于多个业务服务。网关作为业务服务的调用方,可以把多个服务的响应整合起来,再一并返回给用户

灰度发布:将请求动态分流到不同的服务版本(最基本的一种灰度发布)

异常处理:对于业务服务返回的异常响应,可以在网关层在返回给用户之前做转换处理。这样可以把一些业务侧返回的异常细节隐藏,转换成用户友好的错误提示返回。

API 文档:如果计划将 API 暴露给组织以外的开发人员,那么必须考虑使用 API 文档,例如 Swagger 或 OpenAPI

协议转换:通过协议转换整合后台基于 REST、AMQP、Dubbo 等不同风格和实现技术的微服务,面向 Web Mobile、开放平台等特定客户端提供统一服务。

常见网关

Netflix Zuul

Zuul 是 Netflix 开发的一款提供动态路由、监控、弹性、安全的网关服务,基于 Java 技术栈开发,可以和 Eureka、Ribbon、Hystrix 等组件配合使用。

Spring Cloud Gateway

诞生的目标是为了替代老牌网关 Zuul,为了提升网关的性能,SpringCloud Gateway 基于 Spring WebFlux 。Spring WebFlux 使用 Reactor 库来实现响应式编程模型,底层基于 Netty 实现同步非阻塞的 I/O。

Kong

APISIX

Shenyu

一般整体架构

思维导图


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表