手把手教你一分钟设计一个微服务网关层微服务网关集群怎么实现

一:网关的设计需求:高性能,分布式,实现http请求转发rpc服务、接口权限校验,反作弊拦截等相关功能包含关键字:高性能分布式模块、鉴权功能、路由能力、反作弊能力对应的方案:无状态设计、过滤器责任链设计、路由方案设计、反作弊设计二:网关的具体作用功能一:请求鉴权常用的登陆鉴权或者接口鉴权功能二:数据完整性检查数据包定长header+变长body功能三:协议转换JSON->HashMap(String,Object)功能四:路由转发根据CMD转发到不同的业务逻辑层功能五:服务治理限流、降级、熔断三:网

1.网关的设计要求:

高性能,分布式,实现http请求转发rpc服务,接口权限检查,防作弊拦截等相关功能。

关键词:高性能分布式模块、认证功能、路由能力、防作弊能力。

对应的方案:无状态设计、过滤责任链设计、路由方案设计、防作弊设计。

第二,网关的具体作用

功能:请求认证

普通登录验证或界面验证

功能:数据完整性检查

包定长头+变长体

功能:协议转换

JSON- gt;HashMap(字符串,对象)

功能:路由和转发

根据CMD到不同的业务逻辑层。

功能:服务治理

限流、降级和熔断

三。网关的整体功能架构图

功能架构图

四。网关时序图

程序图表

五:需求实现计划

1.无状态设计:

1 gt:单机下不存在会话共享,只是存储内存;但是,它不能使用分布式环境下的高可用需求;

2 gt:分布式方案:会话绑定、会话复制、会话共享和会话客户端存储;

会话绑定:固定节点的UID哈希。具体实现方案如下图所示。

绑定图

会话复制:每台机器都存储了大量的会话;

会话共享:使用缓存服务Redis统一存储会话;

会话缓存:存储在客户端;

2.会话生成算法:暂时不写。一般个人信息+DDL+参数都是用AES加密的。

3.反作弊需求

第一,对于恶意流量,从网关层面进行拦截,防止后端服务的高并发压力。

表现:爬虫,恶意攻击

方案:黑名单(IP,设备id,UID)

数据来源如图所示:

黑名单数据处理源码图

思考:数据量太大怎么办?如何保证实时性?

二是为了防止误伤,需要具备定期发布黑名单数据的能力;

4.网关路由请求:http请求转换成后端服务的rpc请求。

1.协议。

1.网关和前端(如APP)传输协议JSON

2.网关层RPC调用统一HashMap的参数

3:数据返回到统一结果对象{code,data,msg}

2.负载平衡服务发现:rpc框架实现

3.保险丝设计:

组件:海斯特里克斯,链接:https://github.com/Netflix/Hystrix

4.路线分析图

路线分析图

通过上图分析,核心其实是实现URIs到服务的映射;使用RPC通过反射实现远程调用,然后将数据返回到前端。

后记:关于路由映射的问题,这里有很多地方可以讨论,也有很多实现机制。最终还是要看各自公司的实际需求。