server:
port: 9010
spring:
application:
name: micro-sdn-gateway
cloud:
gateway:
discovery:
locator:
enabled: true#是否适用默认路由(通过gatewayUri:port/服务名/path直接访问服务接口)
lowerCaseServiceId: true#是否忽略服务名大小写
routes:#gateway配置多条路由规则时注意顺序问题,例如本例中路由谓词为Query的场景
#路由规则ID,上下文唯一
- id: ptn
#路由目标的服务名
uri: lb://MICRO-SDN-PTN
#路由条件:请求中若包含ptn的路径自动转发至目标服务
predicates:#更多谓词翻阅:http://www.cnblogs.com/htuao/p/9764879.html
- Path=/**/ptn/**
filters:
#- StripPrefix=1 去掉Path中第一个节点
- name: Retry
args:
#重试次数
retries: 2
#触发重试的HTTP状态返回码,详情见:https://blog.csdn.net/a15561415881/article/details/84953049
#多个参数用-连接
statuses: BAD_GATEWAY
#参考同上,series与statuses二选一即可
series:
- SERVER_ERROR#表示5xx,以5开头的各种状态码
exceptions:#有以下异常时触发重试,此处注意timeout的时间与熔断设置的时间
- java.util.concurrent.TimeoutException
- java.net.ConnectException
#根据url携带参数"?app-name=collect1"匹配路由目标
#例http://localhost:9010/test?app-name=collect1
- id: micro-sdn-collect1
uri: lb://MICRO-SDN-COLLECT1
predicates:
- Query=app-name,collect1#参数谓词只有一个参数时,匹配url中的变量名app-name;两个参数则同时匹配变量与值
- id: micro-sdn-collect
uri: lb://MICRO-SDN-COLLECT
predicates:
- Query=app-name,collect
eureka:
client:
service-url:
defaultZone: http://localhost:9000/eureka/
logging:
level:
org.springframework.cloud.gateway: debug