Spring Cloud Gateway去掉url前缀
主要是增加一个 route,其他配置不变
routes: - id: service_customer uri: lb://CONSUMER order: 0 predicates: - Path=/customer/** filters: - StripPrefix=1 - AddResponseHeader=X-Response-Default-Foo, Default-Bar
新增的StripPrefix可以接受一个非负整数,对应的具体实现是StripPrefixGatewayFilterFactory,从名字就可以看出它的作用是去掉前缀的,那个整数即对应层数。
具体到本例中,我们通过 Spring Cloud Gateway 访问 /customer/hello/windmt,那么当网关服务向后转发请求时,会去掉/customer,微服务收到的就是/hello/windmt。
Spring Cloud中eureka.instance为前缀的的常用配置参数说明
参数名 | 说明 | 默认值 |
---|---|---|
preferIpAddress | 是否优先使用IP地址作为主机名的标识 | false |
leaseRenewalIntervalInSeconds | Eureka客户端向服务端发送心跳的时间间隔,单位为秒 | 30 |
leaseExpirationDurationInSeconds | Eureka服务端在收到最后一次心跳之后等待的时间上限,单位为秒。超过该时间之后服务端会将该服务实例从服务清单中剔除,从而禁止服务调用请求被发送到该示例上 | 90 |
nonSecurePort | 非安全的通信端口号 | 80 |
securePort | 安全的通信端口号 | 443 |
nonSecurePortEnabled | 是否启用非安全的通信端口号 | true |
securePortEnabled | 是否启用安全的通信端口号 | |
appname | 服务名,默认取spring.application.name的配置值 | unkonwn |
hostname | 主机名,不配置的时候将根据操作系统的主机名来获取 |
注意:
org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean
类中,可以查看各个参数的默认值。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。