架构设计内容分享(五十五):企业级API网关,金蝶是如何架构的?

目录

企业级API网关,金蝶是如何架构的?

什么是API网关?

金蝶API网关KCGW介绍

KCGW功能

KCGW网关的功能

新建服务分组

新建API并发布

新建应用

其他功能

API的申请和使用流程


企业级API网关,金蝶是如何架构的?

许多开发者可能已经编写了许多 API 接口,但未必了解或接触过API网关的功能与作用。

在大多数情况下,我们的 API 都是“裸奔”在外,在高流量,高并发等场景下,可能会轻易导致服务异常。在这种情况下,网关就应运而生,为我们的系统提供保护!

什么是API网关?

API 网关是一种服务器,作为应用程序编程接口 (API) 的入口点,用于接收和处理来自外部应用程序的请求,并提供适当的响应。可以将其视为一个管理 API 访问的中间件,在请求和响应之间进行转换、路由、安全检查和其他处理。

如果将 API 网关比喻为地铁的进站口,那么它可以更好地理解其重要作用。就像地铁的进站口一样,API 网关是所有流量进入系统的入口点,需要进行安全检查和身份验证,以确保只有授权的用户和应用程序可以访问 API。

当系统中的流量超过 API 的承受能力时,API 网关可以执行限流操作,以确保系统的稳定性和可靠性。这可以通过减少同时连接的数量或限制请求的速率来实现。API 网关还可以执行其他任务,如日志记录、监控和分析,以便更好地了解应用程序的使用情况和性能。

因此,API 网关对于保障应用程序的平稳运行和安全稳定性至关重要。它充当着整个系统的流量大门,管理着所有 API 访问,确保只有经过授权的请求才能进入系统,并提供适当的响应。

金蝶API网关KCGW介绍

网关作为一个如此重要作用的产品,基本上各大互联网公司都会有网关这个中间件,金蝶也不例外。

在苍穹云基础平台部中,有一个名为KCGW(Kingdee-Cloud-API-Gateway)的网关组件,它是一款全动态、高性能的自研企业级 API 网关,提供了基础的反向代理、负载均衡、动态路由、服务限流、服务熔断、身份认证、可观测性等功能。

KCGW功能

KCGW 是基于 Golang+etcd 实现的云原生网关,采用数据面与控制面分离的架构,控制面下发规则,数据面处理规则。

在 KCGW 中,一切都是动态的。

配置、路由规则、插件等都是以毫秒级热更新热加载至内存的,无需重启服务就可以持续更新配置和插件。

KCGW 还引入了 RadixTree 压缩前缀树来作为高性能路由的保障,大家看看路由性能压测数据就知道它有多强悍了。

场景QPS时延(微秒)
路径全部匹配31177681.73
前缀匹配30149691.99
动态参数匹配30544713.86

路由性能压测数据1

KCGW网关的功能

下面我们将简要说明如何使用 KCGW,作为服务的流量保护伞。

假设我们作为 API 发布者,场景是API发布者如何将API发布到网关

新建服务分组

API 分组可以理解为同一业务 API 的集合,API 开发者以 API 分组为单位,管理分组内的所有 API。

新建API并发布

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,应用将自身的服务能力封装成 API,并通过 API 网关开放给用户调用。

创建完对应的 API 分组后,我们需要定义 API 的请求、后端信息,并设置对应的认证、流量控制等策略。

创建API的方式有两种

1)可以通过在界面上定义并创建API;

2)也支持通过swagger来批量导入。

本次我们通过前一种方式来创建API。

 

 

新建应用

一个应用(APP)可以定义 API 的调用者身份。一个 API 可以被多个应用授权,同样,多个 API 也可以被同一个应用授权。

我们可以把“应用”理解为API的消费者,创建完成后,就可以进行 API 的授权调用测试了!

 

其他功能

作为一款企业级网关,KCGW 不仅支持上述功能,还提供

  • 环境管理

  • 多租户

  • 多区域

  • API 分组管理

  • API 的授权订阅

  • Swagger 接口的导入导出

  • 配额管理

  • 限流熔断

  • 可观测性

  • 调用链等

API的申请和使用流程

最后,我们再提供一下API的申请和使用流程

  • 租户内调用

  • 跨租户调用

租户内调用流程如下:

 跨租户调用流程如下:

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

之乎者也·

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

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

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

打赏作者

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

抵扣说明:

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

余额充值