API 网关选型及包含 BFF 的架构设计

本文探讨了微服务架构中的API Gateway角色,分析了Java技术栈中的Spring Cloud Gateway与Zuul的选型,强调了Spring Cloud Gateway的性能优势。此外,还提到了非Java选项如Kong和APISIX,并通过性能对比,指出APISIX的潜力。最后,文章讨论了BFF层的重要性和实践中可能遇到的问题,以及如何借助GraphQL优化架构。
摘要由CSDN通过智能技术生成

一 背景介绍

下图是我从网络上找到的一个微服务架构的简单架构图,如图可见 API Gateway 在其中起到一个承上启下的作用,是关键组件。

图片

图片来源于网络

在更通用的场景下我们会使用 NGINX 这样的软件做前置,用来处理SLB负载均衡过来的流量,作用是反向代理、集群负载均衡、转发、日志收集等功能。

然后再将 NGINX 的请求 proxy 到 API Gateway 做统一网关处理。

在上面的这个场景下 API Gateway 可以包含以下功能:

  • 安全

  • 限流

  • 缓存

  • 熔断

  • 重试

  • 负载

  • 反向路由

  • 认证、鉴权

  • 日志收集和监控

  • 其他

熟悉 NGINX 的朋友应该可以看出来,上面列出的这些功能和 NGINX 的部分功能是重合的,不过由于架构结构不同,在上面我提到的场景中,即 NGINX 在前 API gateway 在后的结构中,他们两者关注的维度也不一样,所以即使有重合也正常。

二 架构调整

下图是我基于云原生微服务架构设计的架构图其中前端流量是通过 SLB -> NGINX -> API Gateway 再到具体服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值