网关系统架构

2023-11-11

目录

 

一 API网关业务域 

1  业务域 

2  统一接入 

3  安全防护 

4  流量管控 

5  协议转换 

6  其他业务 

1)   接口文档管理 

2)   调试工具和示例 

3)   SDK自动生成能力 

4)   API增强 

二 API网关核心指标 

1  模型 

2  安全性 

3  高并发性 

4  高可用性 

5  扩展性 

6  运维成本 

 三 API网关架构 

1  几个要点 

2  网关整体模块 

3  系统领域划分 

4  系统分层模型 

5  防护层 

 ​6  接入层 

1)   接入规范 

2)   接入 

3)   文档 

7  核心层 

1)   验证层 

2)   增强层 

3)   协议转换 

8        高并发、高可用 

四 安全 

1  核心要素 

2  安全策略 

1)   安全策略 

2)   通用安全策略 

3)   设备级安全 

4)   应用级安全 

5)   接口级安全 

6)   用户级别安全 

3  企业级设备安全解决方案 

1)   设备注册 

2)   用户登录 

3)   HTTP请求处理


一 API网关业务域 


API网关作为内外的桥梁;对外通过暴露HTTP接口提供服务;对内管理所有业务系统对外暴露的接口,并将请求分发到内部各个业务系统。


1  业务域 

2  统一接入 

作为对外的门面,网关应该拥有统一且简洁的规范,以减少接入的成本。同时这也可以体现出专业化的技术能力。
统一的规范应该至少包括以下内容:
统一的编码规则。
统一的返回数据的结构。
统一的错误申明与处理方式。
统一的公共参数,例如识别用户身份的token,识别渠道来源的source等。
统一的加签、加解密方式;统一的身份认证或安全体系。


3  安全防护 

作为请求的入口,是保护内部系统的第一道屏障,当遭受攻击时要尽可能的将影响降为最低。所以应该具备清洗恶意攻击的流量,能够在流量异常的时候屏蔽这些异常请求,或者对这些请求进行限制。
验证请求信息,屏蔽非法请求,确保接口的安全性,保证所有达底层业务系统的请求都是安全、可靠地。

4  流量管控 

系统的承受能力都有限,例如:当营销活动做得好时,系统请求量超过系统的服务能力的极限,如果放任不管,势必压垮内部系统,此时应该对内部系统提供一定的保护。
作为服务能力的出口,一旦不可用,在外部看来所有的服务都不可用,所以应该网关必须高可用、高并发。
常见的手段有:限流、降级、熔断


5  协议转换 

对外提供的都是HTTP接口,但内部系统是使用Dubbo来相互调用的,所以网关势必要能够完成协议转换,并通过负载均衡等手段将请求高效的分发到内部系统中去。


6  其他业务 


1)   接口文档管理 

业务发展变化势必引起服务的增加或者扩展,如果能够统一的对文档进行维护,势必会降低开发、联调、定位问题成本。我们的做法是通过api规范自动生成接口文档。


2)   调试工具和示例 

当接入方很多,提供一个调试工具或者提供示例将会极大的简化接入成本。


3)   SDK自动生成能力 

为客户端(Android、IOS或者第三方调用者)生成SDK,简化接入、降低对方开发成本。


4)   API增强 

参数注入。例如注入userId、来源、ip等。 
合并多个请求。例如:在一个页面中可能需要访问多个接口才能拿到所有的数据,此时为了方便调用方使用,网关可以提供合并多个接口的能力,让调用方同时发起多个http请求。


二 API网关核心指标 


1  模型 

2  安全性 

常用的手段有:
防篡改,例如参数加签。
请求安全:请求端加密,网关层解密。
身份校验:必须是合法的用户,必须是合法的第三方。
接口安全级别。例如:接口不需要登录即可访问;需要登录方可访问;接口仅提供给app,H5不能使用等
接口权限限制。
黑白名单。
HTTPS。


3  高并发性 

作为企业级API的入口,所有接口都通过网关,流量可想而知是非常大的。
常见的手段有:
多级缓存
应用级缓存:堆缓存、磁盘缓存;
分布式缓存:热点数据缓存
并发:线程池;请求缓存;请求合并


4  高可用性 

网关故障时,在外部来看就是整个系统不可用;所以网关应该做到7*24小时稳定运行;能够自动伸缩;API热更新;对做到接口级别、应用级别的限流和降级;支持负载均衡;支持多机房;(准)实时的系统监控;应该有一定的隔离性,避免单点故障引起雪崩。


5  扩展性 

网关纵向扩展性:企业的服务能力、安全性随业务的发展而变化,所以网关要能随着业务发展灵活的调整。
网关横向扩展性:网关需要能应对业务发展而带来的流量激增,至少紧急是可以通过增加机器带来成比例的增加服务能力。
网关应该避免频繁调整。


6  运维成本 

升级发布网关、新服务的接入应该简单,方便。


 三 API网关架构 


1  几个要点 

要支持高并发、高可用。
不必要、非安全的请求不要到下游服务中去。
网关不负责任何业务相关内容,仅负责协议转换、请求转发。
接口要符合规范;文档与接口应同步。


2  网关整体模块 

 

3  系统领域划分 

防护层
       负责安全与流控;保障系统安全;可以直接在nginx层编码,例如openresty。
接入层
      负责统一接入相关的所有内容。
核心层
      负责请求验证、API增强、协议转换、负载均衡等。另外核心层也可以包含限流、降级、熔断功能


4  系统分层模型 

服务提供者将服务注册到网关
防护层作为网关的第一入口;过滤掉非法、无法处理的请求后,将请求交给核心层处理。
核心层转换协议通过Dubbo调用服务提供者接口,然后将调用数据沉淀,为防护层限流、降级、熔断等提供数据支撑。

5  防护层 

防护层主要业务域是:限流、降级、熔断;核心目标是保证后端系统不会大流量、异常流量击垮。
防护层是入口,从性能上考虑,完全可以通过在nginx层实现,例如通过openresty实现。架构如下:

 
6  接入层 

作为统一接入方,网关应该提供API规范,以保证对API的统一性。


1)   接入规范 


a)    模型 

b)    规范 
API组
        用于对api进行归类,限制错误码范围等。
API方法
        对应于每一个API接口,包括:名称、描述、使用范围、安全级别、状态、适用范围。
公共参数
        例如:token、sign、渠道、format、方法、应用等。
业务参数
        名称、是否必填、默认值、是否加密等
错误码声明
        类、属性注释

2)   接入 

服务提供者,根据规范定义接口,然后接入到网关,网关进行校验,校验通过则生成文档、SDK、RPC实例等。

 

3)   文档 

通过注解来定义规范,其中非常重要第一点就是生成客户端调用文档,并且文档应该和接入的接口同步更新。因为接入时解析注解,所以很容易做到这一点。


7  核心层 


1)   验证层 

验证层主要保证交付给业务系统的接口都是合法、有效的。
安全验证分为:常规型(sign验证)、应用型(Appkey)、用户型(token)、接口型(安全级别、参数必填、非空等)四种验证;这四种分别对应不同层次,用于不同目的。

 

2)   增强层 

增强层主要提供API增强功能,例如:支持合并多个api请求;请求参数注入等。

3)   协议转换 

将外部的HTTP接口转换成内部的Dubbo接口。


8        高并发、高可用 

高并发、高可用技术以后找机会详细分析,这里暂不详细讨论。
从上面的领域划分、系统分层中可以看到,每一层都是可以分布式集群部署,并且可以水平扩展的,最不济的情况是流量激增的时候等比例的增加服务器。

四 安全 

目前有很多的成熟的安全策略,他们足以应对绝大多数公司的安全需要;使用他们的时候需要清晰每种策略的用途以及适用范围。在这里主要介绍常用的几种策略,如:通用安全策略、设备级安全、应用级安全、接口级安全、用户级别安全来介绍几种。

1  核心要素 

衡量一个系统是否安全主要有两个核心要素:
       破解的难度。
       破解后危害范围有多大。
       对于开发者而言,通过抓包获取请求的参数,通过分析javascript的逻辑或者反编译app来分析app的逻辑,两方面结合起来就可以伪造用户请求,面对这种困境,我们应该尽可能增大破解难度,降低破解后对系统的危害以及影响面。

2  安全策略 

1)   安全策略 

2)   通用安全策略 

a)    请求信息加签 

请求参数加签的最重要目的是实现请求数据防篡改功能。主要用于防止通过修改请求数据伪造请求,攻击系统、破坏用户数据的行为。
一般而言在H5、app中,加签逻辑都可以通过(反编译代码)分析代码来获悉,一般仅仅将加签作为请求防篡改的手段。
如果是服务端A向服务端B发送请求,因为服务端代码部署在内网,他人无法获知其中逻辑,此时可以通过两端约定一个字符串,加签的时候使用此字符串,但是请求时不传递次字符串,服务端B收到请求以后,同样在加签的时候使用此字符串,由此可以实现请求防篡改、请求参数安全的目的。个人并不是很赞同这种做法,主要原因是将请求参数防篡改和请求参数安全两者混淆了,并且因为两端约定的字符串恒定不变,一旦被人破译出此字符串,将导致他人可以完全伪造此参数。

b)    防止请求重复提交 

相同的请求多次提交到服务端,在大多数场景中(并不是所有场景中)都不是正常的行为,此时应该处理掉这些重复的请求。常见的处理手段有:客户端提交一次请求以后禁用按钮;客户端进入页面时在页面中保存一个随机字符串,服务端同时受到的请求中含有相同的此值时,忽略后一个请求;服务端防并发处理等等。

c)    注入攻击 

最常见的就是SQL注入了。

d)    Cookie劫持 

第三方通过javascript获取、修改Cookie的信息。服务端通过httponly模式来设置cookie可以解决这个问题。

e)    混淆打包 

混淆打包主要针对app、javascript,用于增大他人破解难度。

3)   设备级安全 

设备级安全主要是用于防止第三方通过反编译app、分析javascript代码,解析出系统安全规则,从而完成系统攻击的目的。
后文将介绍一种保障App的设备级安全的方案。

4)   应用级安全 

常见的场景有:营销活动中,一个用户只能参加一次活动,如一个用户只能秒杀一个商品;同一个ip最多能只能参加10次抽奖。使用验证码接收器,通过虚拟号注册app,刷奖励;同一个ip(某一个时间段内)的请求量不能超过N,防止并发攻击;等等。
这些场景与具体的业务相关,而且很多时候规则也会各有不同,通常使用分布式锁、风控等手段一起这些问题。

5)   接口级安全 

常见的场景有:接口的参数、返回结果是否需要加密;接口有只有在登录状态时才能访问还是任何时候都能访问;接口是否只是针对app的还是app、h5、web都可以访问;请求中是否包含了接口要求的所有参数;参数格式是否符合要求等等。

6)   用户级别安全 

常见的场景有:是否拥有某一个菜单的权限;是否必须登录或授权才能使用某部分功能;是否允许自己的信息被他人查看;等等。

3  企业级设备安全解决方案 

没有最好的方案,只有最适合的方案。设计安全方案时要充分考虑公司的安全级别、业务诉求、开发人员水平、使用复杂度等。
以下是之前使用过的一种安全解决方案。这里仅讨论RSA加密的方式,其实也支持AES加密,流程比较简单,所以就不做讨论。

1)   设备注册 

app第一次打开的时候进行设备注册,其核心目标是为了生成device token和证书。
device token是设备token,通过它可以解析出是哪一台设备。
证书中包含RSA加密的公钥,如果请求参数需要加密,客户端可以通过此公钥进行加密。

2)   用户登录 

登录流程其实是获取user token的过程;这样做的目的是:这里还将用户信息和设备信息绑定在一起了,可以做到一台设备一个用户;可以很简单的实现设备互踢,即一个用户只能在一个设备互踢。

3)   HTTP请求处理

收到HTTP请求以后,通过解析user token或者device token来获取用户、设备信息,如果是合法的用户、设备,那么允许用户的后续操作,如果是不合法的,将请求直接拦截掉。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网关系统架构 的相关文章

  • Android通用流行框架大全,零基础入门学习android

    Picasso transformations 一个为Picasso提供多种图片变换的库 Glide transformations 一个为Glide提供多种图片变换的库 Android gpuimage 基于OpenGL的Android过
  • 《大型网站技术架构设计》第二篇 架构-性能

    不同视角下的网站性能 1 用户 从用户角度 网站性能就是用户在浏览器上直观感受到的网站响应速度快还是慢 用户感受到的时间 2 开发人员 开发人员关注的主要是应用程序本身及其相关子系统的性能 包括响应延迟 系统吞吐量 并发处理能力 系统稳定性
  • HarmonyOS-开发避坑指南——源码下载和编译,企业级项目实战讲解

    安装文件系统打包工具 运行 mkfs vfat 如果未找到该命令 需要安装 运行 mcopy 如果未找到该命令 需要安装 sudo apt get install dosfstools mtools 官方文档说明的两个文件系统打包工具sud
  • 拼多多招收java开发的三轮面试题,你能撑到第几轮?

    我相信 面试一直是大家关注的问题 包括最近有很多刚毕业或者刚实习的小伙伴跟我讲投了很多简历出去 但却都像泥牛入海一样了无音讯了 确实出于程序员的直觉 今年着实是要比往年要更冷一些 对于面试来说 我相信大家都听过一个说法就是 金九银十 但是现
  • dubbo分布式服务

    架构 节点角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次调和调用时间的监控中心 Container 服务运行容器 调
  • 面试官让我讲讲分布式系统容错架构,结果。。。

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 TB级数据放在一台机器上 难啊 到底啥是分布式存储 啥又是分布式存储系统 某台机器宕机了咋办 Master节点如何感知到数据副本消失 如何复制副本保持足够副本数
  • 一文带你从IntelliJ IDEA中一键生成Controller、Service、Dao、Model层代码,真的不看看吗?

    前言 EasyCode插件介绍与安装 简介EasyCode是基于IntelliJ IDEA开发的代码生成插件 支持自定义任意模板 Java html js xml 只要是与数据库相关的代码都可以通过自定义模板来生成 支持数据库类型与java
  • 【实践篇】领域驱动设计:DDD工程参考架构

    背景 为什么要制定参考工程架构 不同团队落地DDD所采取的应用架构风格可能不同 并没有统一的 标准的DDD工程架构 有些团队可能遵循经典的DDD四层架构 或改进的DDD四层架构 有些团队可能综合考虑分层架构 整洁架构 六边形架构等多种架构风
  • [项目管理-15]:项目执行中的三大管理者:项目活动管理、职能部门管理、产品架构设计。

    目录 1 矩阵项目管理 2 项目活动管理 2 1 项目架构 2 2 项目管理活动 3 职能部门管理 要与产品 设备架构一致 3 1 组织架构 3 1 需求部门 3 2 硬件开发部门 3 3 软件开发部门 3 4 测试部门 4 产品设备管理
  • 4大主流CPU处理器技术架构

    推荐阅读 浅谈linux 内核网络 sk buff 之克隆与复制 深入linux内核架构 进程 线程 了解Docker 依赖的linux内核技术 导读 RISC 精简指令集计算机 是一种执行较少类型计算机指令的微处理器 起源于80年代的MI
  • 分布式系统详解--基础知识(通信)

    分布式系统详解 基础知识 通信 上一篇文章我们写到了 分布式系统详解 基础知识 线程 简单了解了一下线程的基本概念和线程和分布式的那斩不断理还乱的关系 今天再讲解一下它的另外一个必备知识 通信 进程之间进行通信是分布式的核心 失去了通信 也
  • 测试人员为什么要去了解业务架构和技术架构?

    问题 在入职公司不久 我参加老员工再给新来的员工和管培生宣讲产品的业务 功能 直接拿着功能清单和实际页面在讲解 等把产品功能讲完了 我问了一下实习生和管培生怎么样 他们都说功能讲的太多 太乱 不清楚讲解产品的核心业务逻辑及操作流程 后来发现
  • 网盘系统设计:万亿 GB 网盘如何实现秒传与限速?

    Java全能学习面试指南 https javaxiaobear cn 网盘 又称云盘 是提供文件托管和文件上传 下载服务的网站 File hostingservice 人们通过网盘保管自己拍摄的照片 视频 通过网盘和他人共享文件 已经成为了
  • 双非本科进不了大厂?阿里技术四面+交叉面+HR面,成功拿到offer

    前言 前两天 我收到了阿里巴巴的实习offer 从学长内推开始面试到拿到最后offer经历了4面技术 一面交叉面和一面HR面 经过了漫长的等待和几次几乎折磨的面试之后 终于拿到了实习offer 自我介绍 本人来自西南某双非本科学校 该校学的
  • 第六章--- 实现微服务:匹配系统(下)

    0 写在前面 这一章终于完了 但是收尾工作真的好难呀QAQ 可能是我初学的缘故 有些JAVA方面的特性不是很清楚 只能依葫芦画瓢地模仿着用 特别是JAVA的注解 感觉好多但又不是很懂其中的原理 只知道要在某个时候用某个注解 我真是有够菜的
  • 实现基于 Keepalived 和 Nginx 的高可用架构

    目录 前言 1 高可用性简介 2 准备服务器和软件 3 高可用的配置 主从配置 3 1 配置 etc keepalived keepalived conf文件 3 2 配置 usr local src nginx check sh脚本文件
  • 浅谈小程序开源业务架构建设之路

    一 业务介绍 1 1 小程序开源整体介绍 百度从做智能小程序的第一天开始就打造真正开源开放的生态 我们的愿景是 定义移动时代最佳体验 建设智能小程序行业标准 打破孤岛 共建开源 开放 繁荣的小程序行业生态 百度智能小程序的生态玩家有三类 分
  • 适用于任何公司的网络安全架构

    1 第一等级 基础级 优势 可防范基本有针对性的攻击 使攻击者难以在网络上推进 将生产环境与企业环境进行基本隔离 劣势 默认的企业网络应被视为潜在受损 普通员工的工作站以及管理员的工作站可能受到潜在威胁 因为它们在生产网络中具有基本和管理员
  • 【技术科普】什么是达芬奇架构?有什么优势?

    芯片架构是指芯片设计的基本结构和组织方式 用于实现各种计算 存储和通信功能 芯片架构通常包括处理器核心 内存 输入输出接口等组成部分 这些部分的设计对芯片性能和功耗有着直接的影响 世界上主流的芯片架构主要包括x86 ARM PowerPC和
  • 如何解读服务器的配置和架构?

    在当今数字化时代 服务器作为企业或组织的重要基础设施 其配置和架构对于保障业务的稳定运行至关重要 如何解读服务器的配置和架构 成为了一个备受关注的话题 本文将围绕服务器配置和架构的解读进行深入探讨 帮助读者更好地理解服务器的性能 扩展性和安

随机推荐

  • 【mysql】云服务器被攻击,数据库以及数据都被删除如何通过binlog日志恢复

    前言 小编买了一台阿里云服务器 然后通过docker 部署了mysql 然后用了一段时间突然发现数据都没有了 然后就排查问题 发现是被攻击了 如下图 you must pay 0 26BTC 怒了 好多钱呢 如果有同样的问题 可以参考此博客
  • MFC实现socket网络通信--主机与服务器之间传送数据

    MFC实现socket网络通信 模拟主机与服务器之间传送数据 MFC实现socket网络通信 1 新建MFC应用程序 2 创建服务端窗口界面 3 写服务器代码 4 创建客户端窗口界面 5 客户端代码部分 6 开始调试 7 小结 MFC实现s
  • smallworld bm 配为ldap授权后授权界面中无法显示设计权限,需要修改config_local_and_ldap.xml配置文件

    config local and ldap xml配置文件增加相应配置
  • Sequel Pro导出关系图,可视化你的数据库

    教程链接 https nicolaswidart com blog exporting relations diagram from sequel pro 简易步骤 使用homebrew安装 brew install graphviz Se
  • 【网络通信】Netty面试专题之十大考问

    1 BIO NIO 和 AIO 的区别 BIO 一个连接一个线程 客户端有连接请求时服务器端就需要启动一个线程进行处理 线程开销大 伪异步 IO 将请求连接放入线程池 一对多 但线程还是很宝贵的资源 NIO 一个请求一个线程 但客户端发送的
  • 你知道this.$options吗?(Vue)

    题记 我们在Vue项目中会有很多情况下需要用到this options 所以接下来我们介绍几个场景会用到 options 我们想第一个问题当我们在template经常使用filter 那么你可以直接在methods里边用过滤器吗 我们在表单
  • GC 的三种基本实现方式

    GC 的三种基本实现方式 参考资料 代码的未来 作者 日 松本行弘 由于并非本人原著 我只是个 搬运工 SO 未经本人允许请尽情转载 另外个人像说明一下这里所说的GC指泛指垃圾回收机制 而单指Java或其他某种特定语言中的GC 可能具体语言
  • 【PTA】7-6 整除光棍

    7 6 整除光棍 这里所谓的 光棍 并不是指单身汪啦 说的是全部由1组成的数字 比如1 11 111 1111等 传说任何一个光棍都能被一个不以5结尾的奇数整除 比如 111111就可以被13整除 现在 你的程序要读入一个整数x 这个整数一
  • 设计模式-day02

    4 创建型模式 4 2 工厂模式 4 2 1 概述 需求 设计一个咖啡店点餐系统 设计一个咖啡类 Coffee 并定义其两个子类 美式咖啡 AmericanCoffee 和拿铁咖啡 LatteCoffee 再设计一个咖啡店类 CoffeeS
  • Ubuntu虚拟机和Windows实现文件拖拽复制粘贴

    方法 安装vm tools 1 在Ubuntu内部鼠标右键打开终端 2 更新apt get 一般新装的系统都需要更新apt get sudo apt get update ps 若无法更新 可以试着换一下镜像站 Ubuntu系统配置镜像站
  • Python基础系列2——Numpy数值计算及分析

    文章目录 1 实验内容 2 实验过程 2 1 numpy数组的建立 索引 计算 统计等 2 2 利用numpy对数据集 iris data 进行分析 3 实验结论及注意事项 1 实验内容 1 numpy数组的建立 索引 计算 统计等 2 利
  • BIOS和BootLoader uboot

    BIOS BIOS是英文 Basic Input Output System 的缩略语 直译过来后中文名称就是 基本输入输出系统 其实 它是一组固化到计算机内主板上一个ROM芯片上的程序 它保存着计算机最重要的基本输入输出的程序 系统设置信
  • Java Sort方法

    Java的sort方法就是排序 而且排的是升序 你要想降序可以先获得升序的 然后倒过来或者你重新写比较器Comparator的接口就可以 一 sort 排序方法本身 这里讲的sort方法 都是以Arrays类里面的方法为准 因为很多类的so
  • STM32 端口复用学习

    一 STM32端口复用 1 端口复用定义 STM32有很多的内置外设 这些外设的外部引脚都是与GPIO复用 也就是说 一个GPIO如果可以复用为内置外设的功能引脚 那么当这个GPIO作为内置外设使用的时候 就叫做复用 2 作用 最大限度的利
  • vue 实现计时器组件

    vue 实现计时器组件 结果图 v if 和 v show 的区别 总结来说v if是在不断的销毁和重建 v show 只是改变 display 属性 元素依然存在 dom 中 v if 切换开销大 v show 初始化开销大 time v
  • 人称代词用法大全

    语言发明出来自然是要给人用的 所以跟人相关的词就特别多 划分的很细 我们提到某个具体的人一般就直接说名字 但有时是泛指 或者前面已经提过名字了 后面用个啥简称指代下就清楚了 这就需要代词 代词嘛顾名思义是一个代称 是指代某个人或者某类人 某
  • 搭建使用 VS 开发 Qt 项目的环境

    搭建使用 VS 开发 Qt 项目的环境 个人认为 使用 Qt 工具开发 Qt 项目是最好的方案 在开发的过程出现的 bug 会比较少一些 但是有些同伴可能对 VS 比较钟爱 而 VS 又有此功能 因此想采用 VS 进行开发 本文将本人搭建成
  • nacos源码启动找不到istio包

    现象 源码版本2 1 0 启动时 编译不通过 报错 找不到 istio mcp v1alpha1 MetadataOuterClass Metadata istio networking v1alpha3 ServiceEntryOuter
  • 算法:链表

    单链表 单链表是一种链式存取的数据结构 链表中的数据是以结点来表示的 每个结点存储两个数据 一是该结点本身的值 二是其指向的下一结点的下标 用e i 表示节点i的值 用ne i 表示结点i指向的下一结点的坐标 head表示头结点的下标 id
  • 网关系统架构

    目录 一 API网关业务域 1 业务域 2 统一接入 3 安全防护 4 流量管控 5 协议转换 6 其他业务 1 接口文档管理 2 调试工具和示例 3 SDK自动生成能力 4 API增强 二 API网关核心指标 1 模型 2 安全性 3 高