14、Spring Clou14——路由配置细节

首先我们来回忆一下上篇文章我们配置路由规则的那两行代码:

zuul.routes.fc.path=/fc/**
zuul.routes.fc.service-id=feign-consumer

我们说当我的访问地址符合/fc/**规则的时候,会被自动定位到feign-consumer服务上去,不过两行代码有点麻烦,我们可以用下面一行代码来代替,如下:

zuul.routes.feign-consumer=/fc/**

zuul.routes后面跟着的是服务名,服务名后面跟着的是路径规则,这种配置方式显然更简单。
如果映射规则我们什么都不写,系统也给我们提供了一套默认的配置规则,默认的配置规则如下:

zuul.routes.feign-consumer.path=/feign-consumer/**
zuul.routes.feign-consumer.serviceId=feign-consumer

默认情况下,Eureka上所有注册的服务都会被Zuul创建映射关系来进行路由,但是也可忽略某个服务,不放过:

zuul.ignored-services=feign-consumer

有的时候我们还会遇到,比如我有两个服务,一个叫做feign-consumer,还有一个叫做feign-consumer-hello,此时我的路由配置规则可以这样来写:

zuul.routes.feign-consumer.path=/feign-consumer/**
zuul.routes.feign-consumer.serviceId=feign-consumer

zuul.routes.feign-consumer-hello.path=/feign-consumer/hello/**
zuul.routes.feign-consumer-hello.serviceId=feign-consumer-hello

此时我访问feign-consumer-hello的路径会同时被这两条规则所匹配,Zuul中的路径匹配方式是一种线性匹配方式,即按照路由匹配规则的存储顺序依次匹配,因此我们只需要确保feign-consumer-hello的匹配规则被先定义,feign-consumer的匹配规则被后定义,但是在properties文件中我们不能保证这个先后顺序,此时我们需要用yaml文件来配置,这个时候我们可以删掉resources文件夹下的application.properties,然后新建一个application.yml,内容如下:

spring:
  application:
    name: zuul

server:
  port: 5000

eureka:
  client:
    service-url:
      defaultZone: http://localhost:1111/eureka

zuul:
  routes:
    provider: /p/hello/**
    feign-consumer: /p/**

启动项目后访问结果如下:
在这里插入图片描述在这里插入图片描述第二个匹配到下面去了,说明是先和第一个匹配,匹配不上就在第二个上面匹配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值