API网关常见架构

Posted 程序猿元

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了API网关常见架构相关的知识,希望对你有一定的参考价值。

一、简介

类似api市场

sc-api-gateway api核心路由服务
sc-api-admin   api管理平台
sc-api-monitor api监控服务

二、整体架构图

三、api核心路由服务 【sc-api-gateway】

3.1 涉及功能:

  • 超时熔断

  • 流量控制

  • 用户鉴权

  • 智能路由

  • 数据加密

  • 负载均衡

  • 数据缓存

  • 协议转换

  • 服务编排

3.2 涉及技术:

  • hystrix - 熔断

    • 超时控制

    • 熔断

  • oauth2 - 认证鉴权

    • 基于接入应用进行授权

    • Baisc认证

    • 基于Token认证

    • 根据IP/域名认证

    • 微信小程序Token认证

    • 认证

    • 鉴权

  • zuul - 路由管理

    • 动态刷新路由配置

    • 过滤器加载组件

  • 流量管理 - 每秒、每分、每小时、每天等的请求次数限制

    • 基于IP

    • 基于API

  • redis - 数据缓存

    • 缓存经常访问的API

  • 数据安全

    • 公私钥加密传输

    • 授权应用访问

    • 单应用访问量限制

    • 访问白名单、黑名单

    • 防止访问攻击

  • 协议转换

    • webservice 转 rest

  • 服务编排

    • 自定义服务

  • 负载均衡

    • 基于consul的zuul本身的负载

3.3 可参考博客

《Spring cloud 多版本控制及灰度发布》 

https://blog.csdn.net/longdan3105/article/details/79187198

《Spring Cloud限流详解》 

https://blog.csdn.net/tracy38/article/details/78685707

《使用zuul及oauth2构建api网关实践之路》 

https://www.jianshu.com/p/b1fc3f7260d3?winzoom=1

《spring-cloud中zuul的两种隔离机制实验》 

http://mp.weixin.qq.com/s/CF0VPbKROuDpuUy1yuujvg

10ms以内的系统 使用 信号量隔离
10ms以上的系统 使用 线程池隔离

四、api管理平台 【sc-api-admin】

4.1 系统管理

  • 角色管理

  • 用户管理

  • 权限管理

  • 黑名单设置

4.2 API管理

  • api分组管理 - 设置全局变量

  • api管理

    • api基本信息设置

    • 在线文档

    • 支持mock自动化测试

    • api监控信息

    • 历史版本

    • 授权应用

    • 组件配置

4.3 应用管理

  • 应用管理

    • 应用ID - UUID自动生成

    • 应用密码 - 手动设置

    • 应用来源ip - 多个

4.4 运维模块

  • 网关节点

  • 注册中心节点

  • redis节点

  • rabbitmq节点

  • 监控服务节点

4.5 平台组件

  • 组件管理

五、api监控中心 【sc-api-monitor】

5.1 api监控台

  • 今日API调用次数走势 - 所有API

  • 今日API调用次数走势 - 分组

  • 今日API访问排行 - 访问前十API

  • 今日API访问排行 - 访问前十分组

5.2 api日志

  • api调用明细

  • api错误汇总

  • 系统异常记录

    • api名称

    • 来源ip

    • 请求路径

    • 请求方法

    • 创建时间

    • 错误内容

    • 状态码

    • 响应时间

5.3 api告警规则

  • 颗粒度到api级(可以绑定多个api)

  • 告警级别

  • 规则类型 - 一定时间内满足一下条件的数量

    • 平均响应时间

    • 错误次数

    • 总请求次数

  • 告警间隔时长

  • 连续几次超过阈值报警

  • 生效时间区间

  • 通知对象与通知方式

    • 手机

    • 邮箱

    • 手机 + 邮箱

  • 通知标题

5.4 第三方监控

  • spring boot admin

  • sleuth


以上是关于API网关常见架构的主要内容,如果未能解决你的问题,请参考以下文章

浅析阿里云API网关的产品架构和常见应用场景

如何架构一个合适的企业API网关

vivo亿级微服务 API 网关架构实践

网关安全-微服务安全面临的挑战及常见架构

一个简单可参考的API网关架构设计(内含代码)

API网关架构设计