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网关常见架构的主要内容,如果未能解决你的问题,请参考以下文章