移动服务网关架构原理与设计深入
Posted 爪哇架构之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动服务网关架构原理与设计深入相关的知识,希望对你有一定的参考价值。
接续上一篇
7.关键点技术实现方案
1.SDK是封装发送请求的API,抽象出基于HTTPS请求发送、加密、Refer、鉴权、超时、重试、异步操作,处理响应数据。
ApiClient->
ApiRequest(url,path,version,method,type,dataType,data…,paramsMap,token,timestaps,clientIp,appCode,appKey)
Token:根据app参数请求服务器得到token缓存起来,token在服务端也缓存起来会过期。后续每次api请求都需要带上token做校验,如果校验不通过,需要重新请求生成新的token再使用。Token生成算法=appKey参数+时间戳,MD5/base64/DES.获取token的url是特定的Server(也可以就是代理Server)requestUrl.
appKey,appCode:防内容传输途中篡改,秘钥,加密参数+appKey+token+timestamp前后传递给服务端,采用加密秘钥再次加密参数+appKey,与传递过来JSON化数据的MD5摘要对比,如果数据一致,可认为参数没有被篡改过。加密算法(保密)
根据app的编码、名称等生产appKey。
SSL HTTPS协议
Refer:RequestHeader
超时设置3种
重试(查询类接口)
APP级别的接口权限数据模型、后台配置权限、请求的appCode,path。
HttpsAsyncRequest,Okhttp等异步请求封装组件.
ApiResponse(data(zml,string,json,ObjectClass),dataType,resultCode,errors)
https://www.apigateway.com/services/v1/itemDetail/get?type=get&datatype=json&data={}
2.请求路由正则格式配置映射
在properties配置,或mysql+Cache,ZK动态配置。
7.关键点技术实现方案续1
3.代理Server开发&限流、限次、鉴权、解密、日志、熔断、降级、来源验证、缓存、黑白名单、其他过滤。
HttpProxyServer
限流:byte字节数MB,Kb
限次:并发限次,信号量,并发计数器,memcached/redis计数器
App&接口Path权限验证(后台授权+权限数据表|应用注册|秘钥管理|接口管理|等等)
自定义滑动窗口熔断,SpringHystrix,SpringBoot熔断机制CircuitBreaker
降级:代理网关server、聚合server、接口拒绝服务
Refer验证:Requestheader
相同app,接口,方法,入参作缓存key,响应数据作缓存value
客户端ip,app…黑白名单
其他自定义过滤器逻辑
记录日志组件(log4j+ queue + 多线程 + 日志/MQ/MySQL分区表)
…
4.请求转发&负载均衡
根据请求映射到实际的聚合Server请求,监听&读取ZK聚合服务SERVER并负载均衡算出一个并反向代理转发请求。
5.聚合服务Server
注册ip:port到zk齐群,组合多个单体服务处理请求。日志&HC
6.单体RPC服务(略)
8.扩展补充知识点
1.基于Token的接口鉴权机制(HTTPS,其他加密,token生产、缓存、销毁、认证)
2.服务网关Server架构设计、客户端SDK封装设计、部署:高可靠&负载均衡
3.具体服务接口设计:
Filter
与SpringMvc中的过滤器功能一样
例如检查请求来源
自定义Filter需要extend ZuulFilter
设置 filterType, 重写run内的业务逻辑
创建 AccessSignFilter
public class AccessSignFilter extends ZuulFilter {}filterType类型
pre:可以在请求被路由之前调用
routing:在路由请求时候被调用
post:在routing和error过滤器之后被调用
error:处理请求时发生错误时被调用
4.日志模型、记录、传输、存储、计算展示设计,接口问题排查和监控预警机制
5.用户行为数据采集跟踪设计
6.服务路由映射配置化
7.读、网络、请求熔断超时机制
8. SpringBoot熔断机制 Circuit Breaker
9.辅助理解内容:
如果觉得有价值,记得分享~<o>~。
后续将推出分布式调度系统架构设计和实现细节的文章。
关注后续文章,长按以下二维码,关注成长,关注价值。
以上是关于移动服务网关架构原理与设计深入的主要内容,如果未能解决你的问题,请参考以下文章
深入浅出SpringCloud原理及实战「SpringCloud-Gateway系列」微服务API网关服务的Gateway全流程开发实践指南(入门篇)