移动服务网关架构原理与设计深入

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:routingerror过滤器之后被调用

error:处理请求时发生错误时被调用

4.日志模型、记录、传输、存储、计算展示设计,接口问题排查和监控预警机制

5.用户行为数据采集跟踪设计

6.服务路由映射配置化

7.读、网络、请求熔断超时机制

8. SpringBoot熔断机制 Circuit Breaker


9.辅助理解内容:移动服务网关架构原理与设计深入

移动服务网关架构原理与设计深入


移动服务网关架构原理与设计深入


如果觉得有价值,记得分享~<o>~。

后续将推出分布式调度系统架构设计和实现细节的文章。

关注后续文章,长按以下二维码,关注成长,关注价值。


以上是关于移动服务网关架构原理与设计深入的主要内容,如果未能解决你的问题,请参考以下文章

升级微服务架构5:API网关

微服务之网关与注册中心高可用架构设计

微服务实战系列-注册中心与网关高可用架构设计

深入浅出SpringCloud原理及实战「SpringCloud-Gateway系列」微服务API网关服务的Gateway全流程开发实践指南(入门篇)

深入微服务 API 网关之架构实践篇

微服务架构中整合网关权限服务