springcloud gateway

springcloud gateway

在这里插入图片描述

什么是网关

鉴权、限流、日志、负载、降级、健康检查,和业务逻辑贴合紧密,可称作业务网关;
一般都集成单点登录、jwt、会话认证、集中鉴权;
在这里插入图片描述

底层实现

netty,普通主机连接数1w,消耗业务线程
在这里插入图片描述
先用ng控流,再用业务网关接cloud
在这里插入图片描述

响应数据过网关吗?

gateway过网关
只有lvs的dr模型不过网关;

区别

zuul1.0架构图

在这里插入图片描述

zuul2.0架构图

基于netty
在这里插入图片描述

基本使用

断言

客户端请求时候,路由时候如何匹配请求?
用什么方式,匹配什么规则。
在这里插入图片描述

path断言匹配

predicates:
 - Path=/mg/**

Query断言

predicates:
 - Query=foo,ba.

method断言

predicates:
 - Method=get

Host断言

predicates:
 - Host=mashibing.com

header断言

cookie断言

gateway返回请求给客户端写个标记,意思是下次你还找我,这样有利于会话保持;

predicates:
 - Cookie=name,yiming

基本路由的配置

最简单手工配置转发

在这里插入图片描述

path+query组合断言两级

先进行path断言,通过后在query断言,一个.就是至少有一个(可以换成正则)
在这里插入图片描述

整合Eureka

把gateway整合eureka,注册成eureka客户端;
locator开启后就从注册中心里拿服务起起规则是服务的名字;
locator拿到的是服务名+ip地址,给我们自动选一个转发过去;
在这里插入图片描述

把业务服务也注册到eureka;
在这里插入图片描述

自定义负载均衡(底层用ribbon负载)

比如MDB服务名不优雅,想用mangodb代替转发;
在这里插入图片描述

自定义负载规则

定义gateway配置文件配置MDB服务下ribbon下负载均衡策略为自定义的类,就不读默认的负载策略;
在这里插入图片描述
自定义负载策略类,集成类重2个方法,chose是负载方法,第二个是配置方法

在这里插入图片描述

过滤器(权限、限流)

用户请求到gateway里内部有很多filter
Mono:可变长度的数据序列

自定义过滤器(全局)

在这里插入图片描述
order代表当前filter类执行优先级,数组小优先级高;

过滤器的GatewayFilterChain 执行顺序:

  1. 通过 GatewayFilter集合构建顶层的 GatewayFilterChain
  2. 调用顶层 GatewayFilterChain,获取第一个Filter,并创建下一个 Filter索引对应的 GatewayFilterChain
  3. 调用filter的filter方法执行当前filter,并将下次要执行的filter对应GatewayFilterChain传入。

filter应用

在这里插入图片描述
如:写多个filter类,验证token的filter类优先级0,权限filter类优先级2;
在这里插入图片描述
场景:
也可以在gateway的filter里做缓存操作,有缓存就不请求service
在这里插入图片描述

service服务,基于业务逻辑二次开发

使用webflux
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值