企业级API网关设计参考

统一解决:认证、鉴权、安全、流量管控、缓存、服务路由,协议转换、服务编排、熔断、灰度发布、监控报警等

...

自定义组件扩展

1)除产品内置的组件外,用户可以根据行业需求自定义组件,输出成Jar包,通过Admin上传发布即可。

2)网关根据API配置动态加载新的组件,无需重启服务器。


多维度的认证授权策略

1)网关提供多种认证模式,如:Token、Basic、IP地址等,只有通过认证的客户端才能进一步访问网关暴露的服务。

2)认证通过后再检测客户端是否有权限访问指定的API

...

...

流量控制策略

1)在APIGW Admin中配置API流量阈值,如:每秒、每分、每小时的请求次数限制,当流量超过阈值,新来的请求会被网关拦截,确保后端服务可以正常运行。

2)客户可以根据需求选择集群或者单网关节点的流量控制;


服务编排控制

1)服务编排:对于APP或者前端Web应用,存在一个页面需要集成多个后端服务数据的情况而其是远程连接,导致大部分的时间都消耗在建立连接上; 为此可以通过管理中心将多个后端服务编排成一个新的服务,由网关将每个后端服务的数据聚合后再返回给客户端,提高页面的响应速度。

...

...

服务转换与数据缓存

1)后端服务路由和协议转换:网关对外统一暴露的是Rest服务,但后端服务确实多样的,客户开发人员可以根据后端服务接口类型开发不同的路由转换组件。按照约定的格式打成Jar包,通过管理中心发布即可使用; 网关默认提供Rest风格的服务路由。

2)API数据缓存:对于查询类型且数据变化不频繁的API,适当的缓存设置可以有效降低后端服务的压力;管理人员可以根据API服务的特点配置是否需要缓存已经缓存更新的策略。 网关接收到请求后会判断API是否有设置缓存,如果有且缓存未过期网关直接从缓存提取数据并返回给客户端,如果已经过期则通过路由组件访问后端后在更新缓存;该机制对后端服务开发人员是透明的,只需要在管理中心设置即可生效。


API设计、在线测试、快速开发

1)产品提供了可视化的API设计功能,产品经理等非技术人员可以无障碍快速设计API,构建模拟数据,在无开发人员的介入情况完成前期设计对接;

2)服务调用者可以在线测试,服务提供方开发人员可以下载模板工程,填写相关的业务逻辑代码即可,系统自动提供了相关的脚手架代码。

...

...

基于DB快速创建API

1)支持连接各类数据源通过编写SQL快速创建API的能力,尤其是对于一些外购系统(无源码)可以直接通过DB开放API,高效、便捷、安全。


API监控告警

1)通过监控平台提供了API调用过程的各种统计报表,便于运维人员提前规避风险;

2)管理人员可以自定义各种报警规则,系统将自行监控并推送告警信息。

...
...

服务超时和熔断处理

1)服务超时和熔断处理:网关对于稳定性和性能要求非常高,不能因为个别API响应缓慢或者无法提供服务导致整个网关堵塞。为此网关为所有注册的API提供了超时处理机制,管理员可以根据API的特点设置合理的超时时间,当响应超时网关直接返回超时异常或者API预设置的异常返回数据; 如果某个API服务连续多次请求无响应,系统会自动熔断对该API的请求,从而避免每次请求过来都需要触发超时和服务返回异常才返回客户端,当服务恢复后网关会自动恢复熔断链路。

功能点 功能点介绍
认证 支持4种认证方式,包括:Baisc认证、JWT认证、微信小程序Token认证、NULL认证(放行)
鉴权 支持2种授权方式,包括:基于接入应用进行授权、NULL授权(放行)
微信小程序支持 对小程序类型的客户端应用进行了特殊处理,简化小程序对微信用户进行认证,后端服务只需要关系业务逻辑。
流量管控 支持2种流程管理,包括: 1、基于客户端应用进行流量管控,防止客户端恶意获取数据; 2、基于API的流量管理,保护上游服务,支持按天、小时、分钟、秒等多种纬度进行限流; 3、支持本地和分布式限流;
缓存 缓存API后端服务返回的数据,降低后端服务压力。
安全防护 保护API的安全是API网关重任: 1、客户端身份认证; 2、只有授权的应用才能访问对应的API; 3、公私钥算法保护API接口调用和数据传输安全; 4、IP白名单、黑名单机制; 5、防重放; 6、通过组件二次开发可以扩展很多定制安全功能,如:设备id,地理位置、敏感数据二次检验等;
服务路由 1、识别请求参数和路径转发上游API服务; 2、服务地址伪装,可将内部服务伪装成一个不易识别的地址暴露到公网;
日志记录 默认以分钟纬度对API调用情况进行汇总记录,也支持配置第三方服务记录完整的API调用详细信息,方便自定义审计和统计。
服务注册和暴露 支持Http rest、Webservice服务注册和暴露。
协议转换 1、支持将Webservice服务转换成Restful对外提供服务; 2、引入脚本引擎,支持各类参数自定义转换; 3、扩展协议转换组件,实现更多类型的服务接入平台;
负载均衡|心跳检测 支持网关内部负载均衡,用户可以选择注册代理和服务实例地址,网关通过心跳检测机制自动探测服务实例的可用性。
服务编排 1、提供WebIDE实现图形化的方式编辑服务流程; 2、将各种类型的异构服务以SOA的形式进行编排,替代原有ESB系统,更加高效、快捷;
DB快速开发 对接各种数据源,无需应用快速生成新的API。
dubbo集成 无需编写代码,自动将dubbo转化为restful服务。
超时控制 通过API配置访问超时时间,超时后立即返回,避免工作线程长时间等等。
灰度发布 产品支持让指定部分客户端应用使用新版本API,其他应用继续使用以前的API,当新版本的API逐渐稳定后,所有用户能平滑过渡到新版本的API。使用灰度发布能够及早获得用户的意见反馈,完善产品功能,提升产品质量。让用户参与产品测试,加强与用户互动,降低产品升级所影响的用户范围。
熔断、自动恢复 后端服务N秒内连续X%调用出现超时或者异常,系统自动熔断该服务,M秒后尝试恢复链路;该机制可以有效避免无效等等。
动态配置更新 运行时变更API、分组、组件等配置,自动同步、及时生效。
API系统迁移 支持API以系统维度接入API网关,自动纪录API,让API系统迁移自动化。
高可用 产品支持企业级高可用部署,避免单点故障。
高性能 网关无状态,支持横向扩展,运行时弱依赖持久层,最大化提升网关整体性能。
分布式缓存(redis) 当系统API缓存量大时,可使用redis集群提高系统的响应。
自定义组件开发 支持自定义组件开发,动态加载,在不中断网关服务的情况下重新加载配置和运行组件;企业可根据自身业务需求扩展更多组件。
自定义规则报警 支持自定义规则报警,采用短信、邮件等方式通知运维人员。
管理中心 1、服务注册、更新、删除、发布、历史版本切换、绑定组件、应用授权、在线测试、服务导入、导出、Swagger集成等; 2、组件管理,上传、编辑、发布组件等; 3、客户端应用管理,新建、编辑、删除、授权、导出文档等; 4、系统报警订阅、网关|监控中心|Redis|Zookeeper节点维护; 5、角色管理、用户管理、邮件系统设置、短信平台设置、黑白名单维护等;
监控中心 1、API平均响应时间、调用次数、正确率、流量等多种纬度报表; 2、统计API被消费的情况; 3、查看API调用明细,包括详细入参信息和返回结果等; 4、从客户端应用的纬度统计其调用了哪些API,调用情况等; 5、熔断面板展示; 6、各类告警信息统计;

参考:
https://www.xbgateway.com/function_introduction.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容