• 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

    具体文件在百度云盘

  • 相关阅读:
    redis实现分布式锁的原理
    vscode 无法激活conda虚拟环境
    Linux:在线扩容
    小程序源码:云之道知识付费独立线传版V2-2.4.9
    软设上午题错题知识点4
    vue插件瀑布流vue-masonry(带源码)
    解决 sharp: Installation error: unable to verify the first certificate
    【c++随笔08】可变参数——va_list、va_start、va_end、va_arg
    python爬虫 Appium+mitmdump 京东商品
    Proteus仿真--量程自动切换数字电压表(仿真+程序)
  • 原文地址:https://blog.csdn.net/zxc472504515/article/details/128214079