linux怎么查看本机内存大小
350
2022-11-23
Spring Cloud Zuul 中路由配置详解
首先我们平时写zuul路由可能会这样写
zuul:
ignored-services: '*'
routes:
test1:
path: /test1/**
serviceId: zebra-test
test2:
path: /test2/**
serviceId: zebra-test
当我的访问地址符合/test1/**规则的时候,会被自动定位到zebra-test服务上去,不过两行代码有点麻烦,我们可以用下面一行代码来代替,如下:
zebra-test: /test3/**
zuul.routes后面跟着的是服务名,服务名后面跟着的是路径规则,这种配置方式显然更简单。
如果映射规则我们什么都不写,系统也给我们提供了一套默认的配置规则,默认的配置规则如下:
zuul.routes.zebra-test.path=/zebra-test/**
zuul.routes.zebra-test.serviceId=zebra-test
默认情况下,Eureka上所有注册的服务都会被Zuul创建映射关系来进行路由,我们可以禁用默认路由,只认配置的路由
ignored-services: '*'
还有我们定义路由规则/test1/**
的时候,为什么最后面是两个*,一个可不可以呢?当然可以,不过意义可就不一样了,Zuul中的路由匹配规则使用了Ant风格定义,一共有三种不同的通配符:
通配符 | 含义 |
? | 匹配任意单个字符 |
* | 匹配任意数量的字符 |
** | 匹配任意数量的字符 |
我们也可以统一的为路由规则增加前缀,设置方式如下:
zuul:
prefix: /api
我们在使用Nginx的时候,会涉及到一个请求头信息的配置,防止页面重定向后跳转到上游服务器上去,这个问题在Zuul中一样存在,假设我的feign-consumer中提供了一个接口/hello4,当访问/hello4接口的时候,页面重定向到/hello,默认情况下,重定向的地址是具体的服务实例的地址,而不是API网关的跳转地址,这种做法会暴露真实的服务地址,所以需要在Zuul中配置,配置方式很简单,如下:
表示API网关在进行请求路由转发前为请求设置Host头信息。
zuul:
add-host-header: true
默认情况下,敏感的头信息无法经过API网关进行传递,我们可以通过如下配置使之可以传递,可以写在顶层也可以写在具体哪一个服务:
zuul:
sensitiveHeaders:
如果我们想关闭Hystrix重试机制,可以通过如下方式:
关闭全局重试机制:
zuul:
retryable: false
关闭某一个服务的重试机制:
zuul:
routes:
feign-consumer:
retryable: false
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~