微服务中的 API 网关(API Gateway)

article/2025/8/27 6:24:35

以下是个人于搭建脚手架过程中的一些理念。

SpringCloud微服务架构中,会使用到网关服务。那么可想而知,网关作为边缘服务,其承受的压力是最大的,当然是要考虑网关的高可用,那么就需要多个网关服务集群部署,从而达到高可用目的。层看到过“双重网关”的概念,不过目前不讨论这个,有兴趣的可以看双重网关。

需求设求
众所周知,一切架构都必须按需求来设计,万能构架基本上是不存在的,即使是像Spring Security安全架构也只是实现了一个能用方式,并不是放之四海而皆准的,但是一个构架的良好扩展性是必须的,可以让使用者按照自己的需要进行扩展使用。所以为了说明本示例的实现,先假定这样一个需求
1,需要有一个Web网关服务进行权限统一认证
2,网关后面有其他的微服务,负责用户、商品、支付等等,但是这些服务需要认证成功之后才能访问
3,需要支持同一个请求可以被多个角色访问

问题
由于我们使用的服务系统架构,所以没办法像传统单体应用一样依靠数据库的 join 查询来得到最终结果,那么如何才能访问各个服务呢?

按照微服务设计的指导原则,我们的微服务可能存在下面的问题:

1·服务使用了多种协议,因为不同的协议有不同的应场景用,比如可能同时使用 HTTP, AMQP, gRPC 等。
2·服务的划分可能随着时间而变化。
3·服务的实例或者Host+端口可能会动态的变化。
那么,对于前端的UI需求也可能会有以下几种:

1·粗粒度的API,而微服务通常提供的细粒度的API,对于UI来说如果要调用细粒度的api可能需要调用很多次,这是个不小的问题。
2·不同的客户端设备可能需要不同的数据。Web,H5,APP
3·不同设备的网络性能,对于多个api来说,这个访问需要转移的服务端会快得多
以上,就是我们构建微服务的过程中可能会遇到的问题。那么如何解决呢?

这种情况下,我们就需要一个东西, API 网关(API Gataway)。

下面是百度上针对于 API 网关的介绍:

API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。
API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。

Chris Richardson 在他的博客中把 API 网关划分为以下两种:

1·单节点 API 网关
2·Backends for frontends 网关

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

这个网关和微软在 eShop 项目中推荐的网关是一致的。

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

通常情况下, API 网关要做很多工作,它作为一个系统的后端总入口,承载着所有服务的组合路由转换等工作,除此之外,我们一般也会把安全,限流,缓存,日志,监控,重试,熔断等放到 API 网关来做,那么可以试想在高并发的情况下,这里可能会出现一个性能瓶颈。

另外,如果没有开源项目的支撑前提下,自己来做这样一套东西,是非常大的一个工作量,而且还要做 API 网关本身的高可用等,如果一旦做不好,有可能最先挂掉的不是你的其他服务,而就是这个API网关。

至于以上我提到的双重网关,暂不做讨论,主要是没那个能力呀。

个人spring cloud开源脚手架,快速上手开发


http://chatgpt.dhexx.cn/article/7YNQFSsw.shtml

相关文章

API网关,网关平台API流量统一入口

API网关作为API网关平台的API流量的统一入口承担着非常重要的数据输入输出工作,API网关最核心的作用是对服务进行路由并进行数据转发,API网关将成为前后端交互以及内外网交互的唯一数据进出口,所以API网关适合于进行服务鉴权.数据缓存.流量控…

API 网关 (API Gataway)

API 网关 (API Gataway) API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会…

云原生中为什么需要API网关?

目录 一、API 的状态二、API 价值链三、API 挑战四、安全和访问控制五、可靠性和性能六、可见性和治理七、什么是 API 网关?八、为什么需要 API 网关?九、结论越来越多的组织正在转向 API 驱动的架构。 这种强大的方法可帮助他们快速创新,与同类最佳的外部服务集成,并以前所…

API网关介绍及选型(kong)

文章目录 为什么需要 API 网关API网关的功能API网关选型API 网关实现对比 kong vs tyk kongKong 支持功能Kong 的管理方式kong端点kong策略模式 docker启动kong基于kong oauth2 acl的用户接入权限管理整体流程需求实现 API网关是一个服务器,是系统的唯一入口。从面…

API 网关如何工作?

API 网关如何工作? 在本文中阅读和探索 API 网关、其优势及其工作原理! 鲁奇塔瓦玛 API 网关是微服务架构的重要组成部分。API 网关是一种软件模式,它放置在应用程序编程接口 (API) 或一组微服务之前,以促进传入请求和传出数据和服…

API网关

1、API网关介绍 API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分…

一文搞懂 API 网关

Content 前言API GatewayAPI注册协议转换服务发现服务调用优雅下线性能缓存限流稳定性熔断降级日志隔离网关管控平台其他 总结 前言 假设你正在开发一个电商网站,那么这里会涉及到很多后端的微服务,比如会员、商品、推荐服务等等。 那么这里就会遇到一…

使用spring cloud搭建微服务框架

bubbozookeeper制作的基于dubbo的微服务框架,可以说算是有点过时了,我们先来了解一下什么是微服务。 微服务就是对某个应用系统的每个API进行有效的拆分,然后通过某种连接方式,用以提供给其他应用系统调用的API的服务,…

开源微服务框架 汇总

诞生于 2014 年的“微服务架构”,其思想经由 Martin Fowler 阐述后,在近几年持续受到重视,理论与相关实践都不断发展,目前它已经成为了主流软件架构模式。 关于微服务架构是什么,没有一个明确的定义,每个实…

微服务框架支持

事务上下文 目录概述需求: 设计思路实现思路分析1.Seata 的事务上下文由 RootContext 来管理。2.应用可以通过 RootContext 的 API 接口来获取当前运行时的全局事务 XID。3.应用是否运行在一个全局事务的上下文中,就是通过 RootContext 是否绑定 XID 来判…

开源微服务框架

诞生于 2014 年的“微服务架构”,其思想经由 Martin Fowler 阐述后,在近几年持续受到重视,理论与相关实践都不断发展,目前它已经成为了主流软件架构模式。 关于微服务架构是什么,没有一个明确的定义,每个实…

微服务框架入门(springcloud)

在学习微服务之前我们先理解一下什么是微服务? 微服务是springcloud吗? 微服务是分布式架构的一种,分布式架构就是要把服务拆分,拆分的过程中存在着许多的问题,springcloud仅仅是解决了拆分过程中的服务治理问题,至于其他的复制的问题并没有给出方案 传统的架构把业务写在…

golang 微服务框架

rpcx是一个类似阿里巴巴 Dubbo 和微博 Motan 的分布式的RPC服务框架,基于Golang net/rpc实现。 谈起分布式的RPC框架,比较出名的是阿里巴巴的dubbo,包括由当当网维护的dubbox。 不知道dubbo在阿里的内部竞争中败给了HSF,还是阿里有意将其闭源…

微服务框架-SpringCloud

3 总结 拜托!面试请不要再问我Spring Cloud底层原理_云深i不知处的博客-CSDN博客 最后再来总结一下,上述几个Spring Cloud核心组件,在微服务架构中,分别扮演的角色: Eureka:各个服务启动时,E…

SpringCloud微服务框架(通俗易懂,一秒上手)

🎁🎁资源:https://pan.baidu.com/s/1zRmwSvSvoDkWh0-MynwERA&pwd1234 SpringCloud微服务框架 (一)认识微服务服务架构演变SpringCloud (二)微服务拆分案例服务拆分服务间调用 (三…

微服务学习——微服务框架

Nacos配置管理 统一配置管理 配置更改热更新 将配置交给Nacos管理的步骤: 在Nacos中添加配置文件在微服务中引入nacos的config依赖在微服务中添加bootstrap.yml,配置nacos地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去nacos读取哪个…

SpringCloud 微服务框架

单体架构:将业务全部功能集中到一个项目中,打成一个war包存储,部署在一台服务器中,只有一个数据库 优点 :架构简单,部署成本低。适合小型项目 问题:高并发性能问题,开发时代码耦合问题&#x…

零基础秒懂:手把手教你搭建一套微服务框架!

个人博客请访问 http://www.x0100.top 这套微服务框架能干啥? 这套系统搭建完之后,可以实现: 微服务架构,你的整个应用程序将会被拆分成一个个功能独立的子系统,独立运行,系统与系统之间通过 RPC 接口通…

微服务架构 — 微服务框架

目录 文章目录 目录微服务框架第一代微服务框架Spring CloudDubbo下一代微服务框架 — Service MeshIstioEnvoyKubernetes + Service Mesh = 完整的微服务框架微服务框架 微服务架构首先要面对分布式架构的内生复杂性,即:服务通信和服务治理的复杂性,例如:服务发现、熔断、…

微服务架构与开源框架

微服务架构介绍及实践 微服务现在是一个很火的概念,尤其是搞IT的大多数都对其有所了解。 到底火到什么程度呢?2016年有一个统计说,两千家企业里,30%在使用微服务,15%在实验开发和测试微服务架构,24%在学习…