• zuul简单使用


    zuul路由的几个配置参数
    1.静态路由
    zuul:
    routes:
    myroute1:
    path: /mypath/**
    url: http://localhost:8080 (注意这里url要http://开头)
    2.静态路由+ribbon负载均衡/故障切换
    zuul:
    routes:
    myroutes1:
    path: /mypath/**
    serviceId: myserverId
    myserverId:
    ribbon:
    listOfServers: localhost:8080, localhost:8081
    ribbon:
    eureka:
    enabled: false
    3.动态路由+ribbon负载均衡/故障切换
    zuul:
    routes:
    myroutes1:
    path: /mypath/**
    serviceId: myserviceId
    eureka:
    client:
    serviceUrl:
    defaultZne:xxx
    4.路由匹配的一些配置
    stripPrefix=true,转发会过滤掉前缀。
    path: /myusers/**,默认时转发到服务的请求是/**,如果stripPrefix=false,转发的请求是/myusers/**
    zuul.prefix=/api 会对所有的path增加一个/api前缀

    ignoredPatterns: /**/admin/** 过滤掉匹配的url
    route:
    users: /myusers/** 会匹配所有/myusers/**的url,但由于ignoredPatterns, /myusers/**/admin/**的请求不会被转发,而是直接由zuul里的接口接收

    匹配顺序
    path:/myusers/**
    path:/** 如果是在application.yml中配置的,那么会优先匹配/myusers/**
    但如果是applicaiton.properties配置的,那么可能导致/myusers/**被/**覆盖
    ignored-Services: '*' 对于自动发现的services,除了route中明确指定的,其他都会被忽略
    5.请求头过滤
    route.sensitiveHeaders: Cookie,Set-Cookie,Authorization
    默认就有这三个请求头,意思是不向下游转发请求这几个头
    zuul.ignoredHeaders 是一个全局设置,而route.sensitiveHeaders是局部设置


    zuul过滤器
    标准的zuul过滤器有4中,分别对应一次路由转发的几个关键点;
    pre: 在路由转发之前起作用
    routing: 在路由时其作用
    post: 在把结果返回给浏览器时起作用
    error: 在整个路由阶段,出现异常时起作用

    如果要分析前端传来的参数,验证前端身份等对前端参数的操作,显然是用pre过滤器
    如果是要对返回给前端的结果进行操作或者分析,显然是用post过滤器

    编写自定义路由器

    public class MyFilter extends ZuulFilter{
    filterType() 重写,返回这个过滤器的类型
    filterOrder() 重写,返回这个过滤器在过滤器链的顺序
    shouldFilter() true启动
    run() 具体逻辑
    }
    然后向Spring注入这个Bean就行了

  • 相关阅读:
    03 Linux下运行Django项目
    02 Linux常用基本命令(二)
    01 Linux常用基本命令(一)
    08 基本数据结构
    07 Deque的应用案例-回文检查
    给select增加placeholder技巧
    易经中人生的六大阶段 :潜、现、惕、跃、飞、亢 你在第几个阶段?
    java 实现傅立叶变换算法 及复数的运算
    java 正则表达式 复习
    关于mysql varchar(N)
  • 原文地址:https://www.cnblogs.com/bianzy/p/6677531.html
Copyright © 2020-2023  润新知