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就行了

转载于:https://www.cnblogs.com/bianzy/p/6677531.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值