API 网关策略二三事

解决提示工程API网关问题:容器编排的Ingress策略 Ingress作为Kubernetes等平台提供的流量入口抽象,本应是解决方案的核心,但如果缺乏精心设计的Ingress策略,它反而会成为新的混乱源头。例如,NGINX Ingress可以通过。我们面临的“API网关问题”,在Ingress的语境下,就是如何通过“工程化”的Ingress策略设计,来系统化地解决路由、安全、可观测性、扩展性等挑战,将混乱的流量入口治理得井井有条。这一部分是本文的核心,我们将从多个维度详细阐述Ingress策略的设计要点,采用“提示工程”的思维,力求配置的清晰、高效和可维护。 阅读详情

作者暴渊,API7.ai 技术工程师,Apache APISIX Committer。

近些年随着云原生和微服务架构的日趋发展,API 网关以流量入口的角色在技术架构中扮演着越来越重要的作用。API 网关主要负责接收所有请求的流量并进行处理转发至上游服务,API 网关的策略决定了 API 网关处理这些流量的逻辑与规则,直接决定了实际的业务流量行为。

什么是 API 网关策略?

API 网关一般位于所有的上游服务之前,当用户向服务发送请求后请求会先到 API 网关,API 网关接收到请求之后一般会判断几件事情:

  1. 请求是否合法,比如是否来自被禁止访问的用户列表中;
  2. 这个请求是否通过认证,访问的内容是否是经过授权的;
  3. 请求是否触发了某些限制规则,比如限流限速等;
  4. 请求应该转发给哪个上游服务。

经过这一系列步骤,这个请求要么不符合预设的规则被拒绝,要么经过了层层处理正确到达指定的上游服务中。我们将这些处理规则称之为 API 网关的策略。这些规则由网关的管理员在网关运行时不断添加至网关中,网关接受这些规则并根据这些规则作出正确的流量处理行为。

以 API 网关 Apache APISIX 为例,APISIX 的配置信息有两种:网关启动用的配置文件,比如 config.yaml,这个文件决定了网关正常启动所必须的一些配置。另外在运行时管理员可以通过 Admin API 动态创建各种规则与配置,比如 Route、Consumer、Plugin 等等。API 网关的策略就是管理员通过 Admin API 动态创建的各种规则与配置。

本文不再额外描述基本常用场景,而是针对认证授权、安全、流量处理与可观测性这四类 API 网关中重要的场景进行阐述,介绍每种场景下包含的一些 API 网关策略的作用以及使用方法。

认证和授权策略

认证可以确认 API 调用者的身份,授权主要限制调用者仅能访问权限内的资源。

在这里插入图片描述

比如说一位乘客前往车站出行,进入车站之前会使用身份证进行“认证”确认身份,在进入车站后出示车票,经工作人员确认后被“授权”进入某班列车。

认证授权类策略主要目的是保证网关转发到上游服务的所有请求都是经过认证和授权的,不会出现非法请求。并且访问的都是权限范围内的资源。比较常用的策略有下面几种:

Basic Auth

基本访问认证策略,这是一种最简单的访问控制技术。一般由用户的 HTTP 代理在发出请求时携带用于认证的请求头,一般为:Authorization: Basic <credentials>,credentials 中即包含了用户认证需要的用户 ID 和密码,使用 : 隔离。这种方式不需要登陆页面、cookie 等繁杂的设置,仅仅基于请求头中的简单凭据信息进行认证,一般为用户名和密码,配置使用起来较为简单。

携带基本认证的 cURL 请求的示例如下,用户名为 username,密码为 password:

curl -i -u 'username:password' http://127.0.0.1:8080/hello

需要注意的是 credentials 中的信息在传输过程中并不会被加密,仅仅做 Base64 编码,所以通常需要和 HTTPS 一起使用来保证密码的安全性。

在网关中实施这一策略后,未携带凭据的请求将无法正常通过网关转发,除非在请求中携带了正确的认证信息,实现了最小成本下为 API 添加了访问验证。

Key Auth

Key Auth 策略通过在 API 中添加 Key 来限制 API 调用,并识别请求携带的 Key 来进行访问资源的控制。只有携带了正确的 Key 之后的请求才能正常访问,可以在请求头中或 Query 中携带。通常还可以通过这个 Key 来区分不同的 API 调用方,从而可以针对不同的调用方实施不同的其他策略或资源控制。同样的 Key 在 HTTP 中是明文传输的,确保请求使用了 HTTPS 以保证安全。

以 APISIX 的 key-auth 插件为例,插件需要通过 Admin API 创建一个具有唯一 key 值的 Consumer:

curl http://127.0.0.1:9180/apisix/admin/consumers \
-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "username": "jack",
    "plugins": {
        "key-auth": {
            "key": "jack-key"
        }
    }
}'

这一请求创建了一个名字为 jack 的 Consumer,它的 key 值为 jack-key。在路由中启用插件时需要配置网关从请求中读取 Key 值的位置和字段名称。默认的配置位置为 header ,字段名称为 apikey, 那么正确的请求这个路由的示例为:

curl -i http://127.0.0.1:8080/hello -H 'apikey: jack-key'

APISIX 在收到这一请求后会从请求中解析出 Key,然后从配置的所有 Key 中找到和这个请求匹配的 Consumer jack,这样网关就清楚这个请求是 jack 发出的。如果没有找到匹配的 Key 即可判定为非法请求。

JSON Web Token

JSON Web Token (JWT) 是一个开放的标准,它定义了一种以 json 对象形式在各方之间安全传递信息的方式。JWT 策略可以集认证和授权于一身,在用户取得授权后会向用户传输一个 JWT Token,在后面的所有请求中调用方都会携带这个 Token 从而保证请求是被授权的。

在 API 网关中可以通过 JWT 策略将 JWT 身份验证能力添加到网关中,从而把这层逻辑从业务中抽离出来,业务实现者可以更加专注实现业务逻辑。以 APISIX 的 jwt-auth 插件为例,插件需要在 Consumer 中启用并配置唯一的 Key、加密用的公私钥、加密算法、Token 过期时间等。同时还需要在路由中启用这一插件并配置网关读取 Token 的位置和字段,比如 header、query、cookie 等。该插件会在 API 网关中添加一个 API 用于签发 Token。在发送请求之前需要请求签发 token 的 API 获得 Token,发送请求时需要根据配置信息在指定的位置上携带这一 Token。在请求到达网关后网关会按照配置信息从请求的指定位置读取 Token 并验证 Token 的有效性,验证通过后该请求才能被转发至上游服务。

相较于前两种策略,JWT 策略包含了过期时间选项,签发的 Token 随着时间流逝是可以过期的,但是 Basic Auth 和 Key Auth 的有效期是永久的,除非服务端更换了密码或 Key。除此之外 JWT 策略可以在多个服务之间公用,尤其是针对单点登录场景下很有用。

OpenID Connect

OpenID Connect 是建立在 OAuth2.0 协议之上的身份认证方法,为应用的授权提供了比较完整的方案,API 网关中的 OpenID Connect 策略将允许上游服务从身份提供者(IdP)中获取请求中的用户信息,从而保护 API 安全。常见的身份提供者有 Keycloak、Ory Hydra、Okta、Auth0 等等。以 Apache APISIX 为例网关中的 OpenID Connect 策略工作流程如下:

在这里插入图片描述

  1. 客户端向网关发出请求
  2. 网关收到请求后向 IdP 发出认证请求
  3. 用户将被重定向到 IdP 提供的页面完成登陆认证
  4. IdP 重定向到网关并携带认证 code
  5. 网关通过 code 向 IdP 请求 Access Token 从而获取用户信息
  6. 网关向上游转发请求时即可携带用户信息

通过这一流程可以将认证和鉴权从业务中独立出来放置于网关中解决,使架构更加清晰。关于更多 APISIX 的认证授权方法可以参考 API Gateway Authentication。

安全策略

API 网关安全策略像门卫一样保证 API 安全访问,允许正常请求被网关转发并在网关上拦截非法请求。根据 OWASP API Security Project,在 API 的调用者中存在着大量可能的威胁和攻击。使用 API 网关安全策略可以对所有的 API 请求进行安全验证,在 API 免于遭受这些安全威胁上起到了重要作用。

在这里插入图片描述

以下是几种比较重要的 API 网关安全策略。

IP 访问限制

IP 限制策略通过将某些 IP 或 CIDR 设置为白名单或者黑名单来限制某些客户端对 API 的访问,确保重要数据不会被随意访问。正确配置这一策略很大程度上提高了 API 的安全性,实现了更高的 API 安全治理。

URI 拦截

URI 拦截策略主要通过设置 URI 的一些规则来阻止潜在的危险 API 请求。比如一些安全攻击通过嗅探 URI 路径从而发现潜在的安全漏洞进而攻击。

Apache APISIX 提供了 uri-blocker 插件来提供这一能力。通过 uri-blocker 插件可以设置一些正则规则,如果请求命中规则就可以拦截当前用户的请求,例如设置 root.exe、admin ,这一插件就可以阻止 */root.exe 和 */admin 这种类似的请求,进一步保护 API 安全。

CORS

CORS 即浏览器针对跨域请求作出的安全策略。一般情况下在浏览器中发出 xhr 请求前浏览器会验证请求地址和当前地址是否为同一域,如果在同一域下请求可以直接发出,否则浏览器会先出发一个 OPTION 类型的跨域预检请求,然后在该请求的响应头中会有 CORS 相关的设置,例如允许跨域请求的方法、允许请求携带的凭据等。浏览器会根据这些信息决定是否发出正式的请求,详细可以参考 CORS。

一般情况下包含 CORS 设置的响应是由后端服务设置的,但是如果服务数量很多,在网关层面针对不同服务统一处理会更加便捷安全。CORS 策略可以在不同的 API 上设置不同的跨域解决策略,上游服务无需再处理这些逻辑。

CSRF

CSRF 即跨站请求伪造攻击,通常情况下会使终端用户在他们已经认证的站点中执行非自愿的动作。这种攻击通常伴随着社会工程学(通过电子邮件向攻击者发送攻击链接),当用户点击这一链接后利用攻击者在网站中已登陆认证的身份执行攻击操作。在网站看来因为用户已经登陆,所以所做的任何操作都是正常的。

通常网站的后端服务需要添加额外的中间件处理这部分逻辑,防范的方法也都有统一的标准。使用 CSRF 策略可以为网关提供防范这一攻击的能力,在网关层统一做 CSRF 安全处理,简化上游服务逻辑复杂度。

流量处理策略

流量处理策略主要保证 API 网关进行流量转发的上游负载都在健康范围内,同时在请求转发前或者返回给调用者前对请求进行按需改写。这一类型的策略主要围绕限流限速、熔断、缓存、重写等功能展开。

限流限速

在资源有限的情况下,API 可以提供的服务能力是有一定限度的,如果调用超过了这一限制可能会使上游服务崩溃继而引起一些连锁反应。限流限速可以防范这种情况的发生,另一方面也可以有效防止 API 遭受 DDOS 攻击。

在限流限速策略中可以设置一个时间窗口和可允许最大的请求数量,在时间窗口内超过这个数量的请求会被拒绝并返回设置的信息,直到请求数量低于设定的值或到下一个时间窗口后会允许继续访问。

请求计数的凭据可以设置为请求中的变量或着某一个请求头等,例如根据不同的 IP 设置相应的限速策略。实现更加灵活的控制。

熔断

API 熔断策略可以为上游服务提供熔断能力,使用这一策略时需要设置上游服务健康和不健康的状态码,用于网关判断上游服务状态。另外还需要设置触发熔断或者恢复健康的请求次数,连续达到这一次数后即判定为对应的状态。当上游服务连续向网关返回一定次数的不健康状态码后,网关就会熔断该上游服务一段时间,在这段时间内不再向该上游转发请求而是由网关直接返回错误。可以防止上游服务因为错误后继续接收请求出现 “雪崩”,保护业务服务。超过这一时间后网关会再次尝试向上游转发请求,如果还是返回不健康的状态码,网关就会继续熔断更长的时间(加倍)。直到转发请求后上游连续返回了一定次数的健康状态码,则网关认为上游服务恢复健康,后续会继续往该上游节点转发流量。

在这个策略中还需要设置当不健康后需要返回的状态码和信息,当上游服务不健康后请求在网关层面直接返回,保护业务服务稳定。

流量拆分

流量拆分策略可以动态控制将流量按比例转发给不同的上游服务,这在灰度发布或蓝绿发布中非常有用。

灰度发布又名金丝雀发布,当服务发布新功能时可以仅让一部分请求使用新的服务,另一部分仍然停留在旧的服务中。如果新服务保持稳定,则可以增加比例逐步将所有请求转移到新的服务中,直至比例完全切换,完成服务升级。

蓝绿发布则是另一种发布模式,可以做到在用户使用的高峰期进行发布,同时不会中断服务。服务的旧版本和新版本会同时共存。一般会将生产环境(蓝色)复制到一个相同但是单独的容器中(绿色)。在绿色环境中发布新的更新,之后将绿色和蓝色一同发布至生产环境。之后就可以在绿色环境中进行测试和修复,在这期间用户访问的还是蓝色系统。之后可以使用某些负载均衡策略将请求重定向到绿色环境中。蓝色环境即可保持待机作为灾难恢复选项或者用作下一次更新。

APISIX 的 traffic-split 插件通过流量拆分对上述提到的两种发布类型都进行了很好的支持,使得业务部署更加便捷可靠。

请求重写

在现代微服务架构中,尤其是服务端与服务、服务与服务之间充斥各种不同的协议,或着请求数据格式不统一,这些问题如果单独在各自服务之间实现转换处理会产生很多冗余的逻辑代码并且难以管理。一些请求重写策略可以处理一些协议转换、请求体改写等逻辑。

APISIX 提供了 response-rewrite 插件可以用来修改上游服务返回的 Body 或者 Header 信息内容,支持添加或者删除响应头,设置规则修改响应体等。这在设置 CORS 响应头实现跨域请求设置或者设置 Location 实现重定向等场景中很有用。

另一方面,对于请求重写 APISIX 则提供了 proxy-rewrite 插件也可以处理代理到上游服务的请求内容,可以对请求的 URI、方法、请求头等重写,在很多场景下为业务处理提供了便捷。

故障注入

故障注入测试是一种软件测试方法,通过在系统中故意引入错误来确保系统的行为正常。通常在部署之前进行测试以保证在生产环境中没有潜在的故障。在一些混沌测试场景下,需要对服务注入一些错误来验证服务的可靠性。

软件的故障注入可以分为编译时注入和运行时注入。编译时注入指在编写软件的过程中通过改变某些代码或逻辑来实现;运行时注入通过向正在运行的软件环境中设置错误来测试软件的行为。故障注入策略可以在网关中以运行时注入的方式,模拟应用网络请求中的故障。通过在策略中设置一个比例,命中这个比例内的请求会执行设置好的故障逻辑,比如延迟时间返回,或直接返回设置的错误码和错误信息给调用方。

通过这种方式可以增加软件的适应性,让开发人员提前看到可能出现的一些错误情况,在发布之前针对问题做出适应性修改。

协议转换

协议转换类的策略可以做一些常见协议之间的转换。比如常见的 HTTP 请求和 gRPC 之间的转换。Apache APISIX 提供了 grpc-transcode 插件可以实现在网关接收到 HTTP 请求之后,将请求转码并转发给 gRPC 类型的服务,接收到响应后以 HTTP 的格式返回给客户端。这样客户端无需关注上游 gRPC 的类型,只处理 HTTP 即可。

可观测性策略

可观测性指在一个系统中通过系统的输出数据来衡量这个系统运行状态的能力。在一些简单的系统中,因为系统组件数量相对较少,出现问题时可以通过分析各个组件状态得到答案。但是在大型分布式系统中,各种微服务组件数量非常大,对组件一一进行排查显然是不现实的,这个时候就需要系统具备可观测性。可观测性提供了对分布式系统的“可见性”,当系统出现问题时它可以提供工程师所需的控制能力,准确定位问题。

在这里插入图片描述

可观测性的数据收集可以在应用程序组件内实现,也可以在其他位置实现。API 网关作为所有流量的入口,在 API 网关中实现系统的可观测性,可以清晰反映出系统 API 的使用情况。API 网关的可观测性策略可以帮助到公司的每个团队:

  • 工程师团队可以监控并解决 API 问题;
  • 产品团队可以了解 API 的使用情况以挖掘背后的商业价值;
  • 销售和增长团队可以监控 API 使用情况,观察商业机会并确保 API 提供正确的数据。

可观测性策略根据输出的数据类型一般分为三类:Tracing,Metrics 和 Logging。

Tracing

在大型分布式系统中服务之间的调用关系错综复杂,Tracing(链路追踪)可以在分布式应用中追踪完整的调用链路、应用之间的依赖分析以及请求统计等内容。在系统出现问题时可以帮助工程师确定排查范围和位置。

Tracing 策略可以在 API 网关上集成一些其他的分布式调用链路追踪系统,收集信息并记录。常见的服务比如 Zipkin、SkyWalking 等。通过 Tracing 策略将这些服务集成到 API 网关中,实现在网关上数据收集和与这些服务之间的通信,可以帮助工程师解决诸如这个请求接触了什么服务以及引入了多少延迟等问题。Tracing 策略使工程师能够进一步确认在特定的会话或相关的 API 调用中要看哪些日志,确认排查范围。

Metrics

Metrics 指在服务运行期间收集到的一个时间间隔内软件自己的各种观测数据,这些数据默认是结构化的,可以更好地实现查询和可视化。通过对这些数据分析可以掌握系统当下的运行状态和行为。

Metrics 策略可以在 API 网关中集成 Prometheus 或 Datadog 这一类服务,为系统提供监控、报警等能力。这一策略通过 API 网关中的各种接口收集网关运行过程中的数据,并将数据上报至上述服务中。通过将这些数据可视化后开发者可以清晰看到网关的运行状态,API 请求的统计信息等数据统计图。

Logging

日志是在某个特定时间系统事件的文本记录,当系统出现问题时日志是首要排查的地方。当服务出现一些意外情况时工程师依赖日志内容查看系统“发生了什么”从而找出对应的解决方法。日志内容一般分为两类:API 请求日志和网关自身的运行日志。API 请求日志记录了 API 网关在运行期间所有的 API 请求记录,通过这些记录工程师可以掌握 API 访问情况,及时发现并排查异常请求。网关自身的运行日志则包含了网关在工作期间发生的所有事件的记录,当 API 网关自身出现异常时可以作为排查问题的重要依据。

Logging 策略可以将 API 网关中的日志存储在服务器磁盘中或是推送到一些其他的日志服务器中,比如 HTTP 日志服务器、TCP 日志服务器、UDP 日志服务器等,或者是其他的日志系统比如 Apache Kafka、Apache RocketMQ、Clickhouse 等。

总结

这篇文章介绍了什么是 API 网关策略,并针对认证授权、安全、流量处理与可观测性这四类 API 网关中常用的策略进行描述。API 网关在所有上游服务之前接收请求的流量,控制一个请求是否要转发以及如何进行转发,对不安全的、未授权的请求直接拒绝或进行限制,这些行为都可以由 API 网关策略决定。

面试题:说一下API网关的作用?企业如何应用API网关? 系统需要采用非阻塞的IO,如epoll,NIO等,网关和各种依赖的交互也需要是非阻塞的,这样才能保证整体系统的高可用性,如:Node.js的响应式编程和基于java体现的RxJava和Future。2、 对于作为微服务网关的API网关,业界的选择可以选择的解决方案比较多,也取决于微服务器的实现方案,有一些微服务架构的实现方案是不需要微服务网关的。在微服务架构中,有一个组件可以说是必不可少的,那就是微服务网关,微服务网关处理了负载均衡,缓存,路由,访问控制,服务代理,监控,日志等。 阅读详情

相关推荐

双轴按键摇杆模块原理与嵌入式驱动实战

双轴按键摇杆是一种融合模拟量(X/Y轴)与数字量(Z轴按键)的复合型人机交互传感器,其本质基于电位器分压原理与机械开关通断特性。通过ADC采集连续电压信号并结合数字IO检测按键状态,可实现高鲁棒性的二维运动感知与触发控制。该方案技术门槛低、成本可控、兼容性强,广泛应用于智能小车、DIY游戏手柄、工业HMI及教育开发板等嵌入式场景。文中深入解析电位器线性度、KEY引脚开漏特性、ADC参考电压稳定性及软件消抖状态机等关键工程要素,为基于Arduino、STM32或ESP32平台的快速集成提供可复用的技术路径。

weixin_30995917的博客 83

如何选择适合你的微服务 API 网关:对比 Kong、APISIX、Trk、Apigee 和其他网关

微服务 API 网关有什么作用? 让我们先来看下微服务 API 网关的作用,下图是一个简要的说明: API 网关并非一个新兴的概念,在十几年前就已经存在了,它的作用主要是作为流量的入口,统一的处理和业务相关的请求,让请求更加安全、快速和准确的得到处理。它有以下传统的功能: 反向代理和负载均衡,这和 Nginx 的定位和功能是一致的; 动态上游、动态 SSL 证书和动态...

October 1万+

别再手动切换了!用SP3485+三极管搞定RS485自动收发电路(附完整原理图)

本文详细介绍了如何利用SP3485芯片和三极管设计RS485自动收发电路,解决传统手动切换带来的IO资源占用和软件复杂度问题。通过原理分析、电路设计拆解和实战注意事项,帮助工程师打造稳定可靠的自动收发通信模块,显著提升系统性能和可靠性。

weixin_26833939的博客 513

基于SpringBoot的API网关实现

目录 一、背景&目标 二、基于SpringBoot的API网关架构 2.1、概要架构图 2.2、架构说明 2.3、实现说明 2.3.2 高性能 2.3.3 高可用 2.3.4 安全性 三、总结 一、背景&目标 在微服务架构已经很普及的今天,API网关是整个微服务体系中是必不可少的基础服务。提到API网关大家可能会想到Zuul、Spring Cloud Gateway等开源API网关,Zuul2.x、Spring Cloud GateWay这些基于Reactor模式(

Knight_hf的专栏 5885

AI量化投资开源平台——Qlib(微矿)的学习使用笔记(随缘更新)

Qlib 涵盖了量化投资的全过程,为用户的 AI 算法提供了高性能的底层基础架构,从框架设计上让用户可以更容易地应用 AI 算法来辅助解决量化投资的各个关键问题(例如 Alpha 预测,风险预测,市场动态性建模)。本文旨在记录一些面向初学者的基础内容。

in_void的博客 3133

Ubuntu 22.04 LTS升级OpenSSH 9.6p1完整指南(附OpenSSL 3.2.0适配方案)

本文详细介绍了在Ubuntu 22.04 LTS系统中升级OpenSSH至9.6p1版本的全流程,包括OpenSSL 3.2.0的适配方案。从准备工作、依赖库安装、源代码编译到系统集成与配置,提供了完整的操作指南和常见问题解决方法,帮助用户安全高效地完成升级,提升服务器安全性和性能。

i8j9k0l1的博客 320

API安全网关之可视化相关科普

F5不论在传统应用还是API应用交付过程中都扮演着不可或缺的网络中间件角色,成为不折不扣的战略控制点,除了其出众的应用感知,流量分发能力之外,F5产品也不断在应用可视化方面提供卓越的产品特性。 近两年F5推出了BIG DATA Engine解决方案,旨在处理应用交付的同时,借助高速日志引擎High Speed Logging模块为提供数据可见性,配合企业各类可视化平台,将“降噪”的业务流量,精准地向企业展现出来,协助企业业务建立各种“画像”,同时为企业快速发现流量异常、业务异常、安全威胁以及风险控制贡献了可

hanniuniu13的博客 606

Vue3结合vue-office实现Word文档上传与预览全流程解析

本文详细解析了如何在Vue3项目中集成vue-office插件实现Word文档上传与预览功能。从项目初始化、插件安装到文件上传处理(包括ArrayBuffer转换)、预览优化及常见问题解决方案,提供了一套完整的实现流程,帮助开发者快速实现高效的文档预览功能。

weixin_29001327的博客 464

API Gateway/API 网关(一) - Kong的安装

version: "3" networks: kong-net: driver: bridge services: kong-database: image: postgres:9.6 restart: always networks: - kong-net environment: POSTGRES_USER: ko...

anron的专栏 1140

告别蓝牙音质妥协:用ESP32和PCM5102搭建WiFi无损音频播放器(附完整代码)

本文详细介绍了如何利用ESP32微控制器和PCM5102 DAC芯片构建一套完整的WiFi无损音频流媒体系统,彻底摆脱蓝牙协议的音质束缚。从硬件原理到软件实现,包括核心器件选型、电路设计、I2S音频驱动实现以及系统优化方案,帮助音频发烧友实现高保真无线音频传输。

weixin_30733003的博客 542

2025年CSP-X初赛真题及答案解析(江西)(完善程序第1题)

2025年CSP-X初赛真题及答案解析(江西)(完善程序第1题)

王老师青少年编程 714

API网关在API安全性中的作用

从单一应用程序切换到微服务时,客户端的行为不能与客户端具有该应用程序的一个入口点的行为相同。简单来说就是微服务上的某一部分功能与单独实现该应用程序时存在不同。目前在使用微服务时,客户端必须处理微服务体系结构带来的所有复杂性,例如聚合来自各种服务的数据,维护多个端点,客户端和服务器之间的联系增加以及对每个服务进行单独的身份验证等,同时客户端对微服务的依赖性也直接导致了重构服务的困难。一种直观的方法是将这些服务隐藏在新的服务层后面,并提供针对每个客户端量身定制的API。

小王的储物间 1373

深度学习驱动的股票波动率预测:LSTM和Transformer模型的实战解析

股票市场的波动率一直是金融领域关注的焦点之一。波动率预测对于风险管理、期权定价和资产配置至关重要。深度学习模型,如长短时记忆网络(LSTM)和Transformer,已经在时间序列数据分析领域取得了显著的成就。本博客将向您展示如何使用这两种深度学习模型来进行股票波动率预测,提供清晰的思路和相应的Python代码,以帮助您理解和应用这一重要任务。

斌擎科技 974

什么是API 网关?为什么需要 API网关?

在维基百科中,网关的定义是这样的:在计算机网络中,网关(Gateway)是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。有时客户端可能都不会察觉,自己的通信目标是一个网关。从定义可以看出,网关也是一组服务器,它位于客户端和服务器之间,是客户端请求进入服务器的唯一入口,

jjc4261的博客 3486

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

微服务API网关那些事

前言 微服务火了也有一段时间了,但是之前一直没有在项目中用过微服务。公司的项目从dubbo过渡到spring Cloud。结合这段时间的实际使用,打算系统地学习下spring Cloud微服务。微服务中涉及到的东西还是比较多的,系统的学习需要一步一步来,毕竟一口吃不成胖子嘛。这里先和大家一起学习一下微服务API网关。之前在上家公司有大佬培训(介绍)过这块,但是一直没有实际应用,后来渐渐都还回去了...

爱琴孩的博客 1221

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

为什么需要统一API网关?

API网关是一种在客户端应用程序和后端服务之间充当入口点的服务。它作为系统之间的桥梁,提供了多种功能来简化客户端与服务之间的交互,并增强系统的安全性、性能和可维护性。请求路由:API网关接收来自客户端的请求,并将其路由到适当的后端服务。这使得后端服务可以独立于客户端进行扩展或重构,而无需更改客户端代码。协议转换:API网关可以在不同的通信协议间进行转换,比如从HTTP到gRPC或者其他内部使用的协议,这样后端服务就可以使用最适合它们的技术栈。认证与授权。

软件行业技术文化交流。 2192

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

API网关

API网关作为现代应用程序架构中的关键组件,对于促进内外部服务的安全、可控访问至关重要。通过API网关,企业能够为外部合作伙伴或客户提供安全的访问通道,同时保持内部系统的稳定性和安全性。它支持多种核心功能,如协议转换、安全隔离、流量控制以及全面的API管理能力。例如,在处理商品查询接口时,API网关可以设定访问权限、记录日志并实施限流策略。主流的选择包括Kong和Apache APISIX等开源解决方案,它们不仅易于配置且功能丰富,非常适合微服务架构下的需求。API网关在实现高效、安全的服务开放方面发

xingxuechao的专栏 1734

API网关(什么是API网关、如何设计统一网关?)

一、背景 1.什么是API网关 API网关可以看做系统与外界联通的入口,我们可以在网关进行处理一些非业务逻辑的逻辑,比如权限验证,监控,缓存,请求路由等等。 2.为什么需要API网关 RPC协议转成HTTP。 由于在内部开发中我们都是以RPC协议(thrift or dubbo)去做开发,暴露给内部服务,当外部服务需要使用这个接口的时候往往需要将RPC协议转换成HTTP协议。 请求路由 在我们的系统中由于同一个接口新老两套系统都在使用,我们需要根据请求上下文将请求路由到对应的接口。 统一鉴权 对

m0_57066201的博客 1677

架构之API网关

在微服务架构中,随着服务数量的快速增长,我们面临着一个严峻的挑战:如何让客户端能够方便地访问分散在各个微服务中的功能?如何统一管理外部访问?如何确保系统的安全性和稳定性?API网关作为微服务架构的基础设施,正是解决这些问题的关键组件。 本文将深入探讨API网关的核心价值、设计原则、实现策略以及最佳实践,帮助构建高效、安全、可扩展的微服务入口层。

d3y1`5 81_09 1247

现代API网关的实现原理与优化策略

随着微服务架构的普及,API网关作为系统对外交互的核心枢纽,承担了请求路由、负载均衡、安全控制、协议转换等关键功能。本文将深入探讨API网关的核心实现原理,并结合实际场景分析其优化策略,帮助开发者构建高性能、高可用的网关系统。通过合理选择技术栈、优化算法、加强安全防护,并结合实际场景灵活调整策略,开发者可以构建出高效稳定的API网关,为业务的快速发展提供有力支撑。API网关需要实时监控请求的性能指标(如响应时间、错误率),并记录详细的日志。:复用TCP连接,降低连接建立和销毁的开销。

jie_kou的博客 851

您的 API 网关足够安全吗?

在将 API 网关投入生产环境之前,您必须考虑底层技术的可靠性、与安全防护工具的集成难易度、跨环境的策略细粒度以及确保低延迟

NGINX开源社区的博客 1515

使用 API 网关实现 API 版本迁移和升级策略

1.背景介绍 API(Application Programming Interface)是一种软件接口,它定义了如何访问和使用一个软件系统的功能。API 网关是一种软件组件,它作为一个中央入口点,负责处理来自客户端的请求,并将其路由到适当的后端服务。API 网关可以提供多种功能,如身份验证、授权、负载均衡、监控和API 版本控制。 API 版本控制是指在不改变现有 API 的情况下,为新功能...

AI天才研究院 695

API网关原理

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

lifeng205的博客 7488
上一篇: 服务网格领域的百花齐放,是否存在一个更优解?
下一篇: APISIX Ingress 如何使用 Cert Manager 管理证书
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

API7.ai 技术团队

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

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

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

打赏作者

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

抵扣说明:

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

余额充值