• geteway我的一些记录


    geteway路由规则 

    1.匹配到了以后,就会变成如果本地网关的端口为8099,请求地址为http://localhost:8099/xxxx,然后转发到 http://localhost:7070/xxxx

    动态获取URL 

    1.注册到注册中心

    2.url写成服务名称,不写成固定的url

    多服务配置 

    服务名称转发 

    网关过滤器-路径过滤器 -重写请求规则

    1.真正的请求地址不暴露出来,通过网关改写请求的路径,防止被恶意破坏

    网关过滤器-路径过滤器-添加指令前缀 

    1.在请求前前面拼一段前缀

     网关过滤器-路径过滤器-分割前缀

    1.请求过来后删除前面几个前缀

    网关过滤器-路径过滤器-获取参数后,将参数重新拼接到新的URL上面

    网关过滤器-参数过滤器

    网关过滤器-状态过滤器-setstatus

     

     当官方的网关过滤器不满足实际的时候,可以使用自定义的网关过滤器

     全局过滤器

    1.系统自带的过滤器,不用修改,但是可以自定义

     

    自定义全局过滤器-使用

    1.会作用在全局的过滤器上面

    2.@Component注册为全局组件,就会执行

     自定义全局过滤器-统一鉴权

    自定义全局过滤器需要实现GlobalFilter和Ordered接口。
    在filter方法中完成过滤器的逻辑判断处理
    在getOrder方法指定此过滤器的优先级,返回值越大级别越低
    ServerWebExchange 就相当于当前请求和响应的上下文,存放着重要的请求-响应属性、请求实 例和响应实例等等。一个请求中的request,response都可以通过 ServerWebExchange 获取
    调用 chain.filter 继续向下游执行

    1.判断用户是否有token


     

    1. /**
    2. * 自定义一个全局过滤器
    3. * 实现globalfilter,ordered接口
    4. */
    5. @Component
    6. public class LoginFilter implements GlobalFilter, Ordered {
    7. /**
    8. * 执行过滤器中的过滤逻辑
    9. * @param exchange
    10. * @param chain
    11. * @return
    12. */
    13. @Override
    14. public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
    15. String token = exchange.getRequest().getQueryParams().getFirst("access-token");
    16. if (token == null){
    17. //如果为null,认证失败
    18. System.out.println("没有登录");
    19. exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
    20. return exchange.getResponse().setComplete();
    21. }
    22. System.out.println("触发了全局过滤器!");
    23. return chain.filter(exchange);
    24. }
    25. /**
    26. * 指定过滤器执行顺序,返回值越小,执行优先级越高
    27. * @return
    28. */
    29. @Override
    30. public int getOrder() {
    31. return 0;
    32. }
    33. }

     

     

    限流 +Sentinel(根据这个视频进行配置)

    163-SpringCloudGateway整合Sentinel实现限流_哔哩哔哩_bilibili

    具体文件在百度云盘

  • 相关阅读:
    OGG-Postgres实时同步到Kafka
    改进YOLOv5、YOLOv7系列:首发最新改进一种强大性能的全新架构(顶会2022), 该架构精度超越TPH-YOLOv5, 新范式高效涨点
    Java_异常详解
    Redis知识-实战篇(2)
    【读书笔记】《你有你的计划世界另有计划》——达·芬奇诅咒
    【Unity记录】编写一个超实用的单例模式模板
    C++智能指针之weak_ptr
    flutter系列之:flutter架构什么的,看完这篇文章就全懂了
    分享个人收集或整理的word中常用的vba代码
    了解、熟悉、掌握、精通 浅解
  • 原文地址:https://blog.csdn.net/zxc472504515/article/details/128214079