<spring.boot.version>2.3.1.RELEASE</spring.boot.version>
<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
spring cloud gateway 配置路由后使用 ribbon 的ZoneAvoidanceRule
的规则。
想使用其他规则:
一.Bean注入
@Configuration
public class AppConfiguration {
@Bean
public IRule ribbonRule() {
return new RandomRule();
}
}
二.配置文件
spring:
application:
name: mp-api-gateway
profiles:
active: @env@
cloud:
gateway:
enabled: true
httpclient:
response-timeout: 240000ms
connect-timeout: 10000
routes:
- id: server1
uri: lb://server1
predicates:
- Path=/**
##server1服务设置随机策略
server1:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
[clientName].ribbon.NFLoadBalancerClassName: Should implement ILoadBalancer
[clientName].ribbon.NFLoadBalancerRuleClassName: Should implement IRule
[clientName].ribbon.NFLoadBalancerPingClassName: Should implement IPing
[clientName].ribbon.NIWSServerListClassName: Should implement ServerList
[clientName].ribbon.NIWSServerListFilterClassName: Should implement ServerListFilter
参考:https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-ribbon.html