项目描述
从请求流程看网关和开放平台,都是将请求路由到内部服务,具有相似性。网关强调路由和流量管理。开放平台强度接入标注、安全和api文档:对外,降低第三方应用接入后端服务的门槛。对内,提供对后台服务的安全隔离。
技术选型
SpringcloudGateway,Aes、开放平台内置到网关中,基于路由重写路由到内部服务
共性设计
从请求流程看,网关和开放平台都是将请求路由到内部服务,抽象出了请求处理共性过程,以横纵责任链实现
- 流程设计:http请求进Gateway,通过一系列校验和业务处理,最后路由到内部服务
- 防护设计:内部服务请求路径会添加进布隆过滤器过滤大部分无效请求,防止dos攻击
- 安全设计:外部请求会进行权限验证,根据暴露api性质正对性设计限流措施、黑白名单、幂等性措施
- 权限设计:基于注解标记开放接口进行应用分组,及默认策略,三方可申请相应权限开放功能
- 扩展设计:横向责任链用于处理网关和开放平台中私有逻辑
- 预热设计:权限信息、url布隆过滤器等信息提前预热
- 多级缓存设计:基于openresty+lua+redis实现多级缓存,提高读多写少,高流量场景性能,降低系统负载
开放平台设计
1.注册设计:三方应用注册开放平台账号,配置获取公钥等信息
2.路由设计:open/{服务名}/uri,重写url进行路由匹配转发
3.防护设计:内部服务请求路径会添加进布隆过滤器过滤大部分无效请求,防止dos攻击
4.安全设计:外部请求会进行权限验证,根据暴露api性质正对性设计限流措施、黑白名单、幂等性措施
5.权限设计:基于注解标记开放接口进行应用分组,及默认策略,三方可申请相应权限开放功能
6.响应设计:分为同步和异步方式,异步通过三方提示的回调接口实现
7.幂等设计:每次请求携带唯一id,并通过多级缓存存储返回结果,重复请求走缓存
8.Api文档:基于swagger描述接口,通过nacos监听服务上线,api归档服务汇总api文档
成果
1.性能保障:设计并实施高效系统架构,提升平台性能和稳定性
2.安全保障:制定并执行安全策略,有效防止攻击,保障平台安全
3.提高效率:推动开放平台与网关深度整合,架构融合设计,提升了开放效率