1.默认配置
Zull默认结合Ribbon负载均衡的实现,Ribbon默认的负载均衡算法是ZoneAvoidanceRule
2.修改算法配置
配置方式和Ribbon的消费者中配置一样,也可以自定义随机算法
@Configuration
public class RibbonClientConfig {
@Bean
public IRule getRule() {
return new RandomRule();
}
}
增加熔断配置,当服务不可用的时候,自动会触发熔断
@Component
public class MyZuulFallBack implements FallbackProvider {
private final Logger logger = LoggerFactory.getLogger(MyZuulFallBack.class);
/**
* getRoute方法的返回值就是要监听的挂掉的微服务名字
* api服务id,如果需要所有调用都支持回退,则return "*"或return null
*
* @return
*/
public String getRoute() {
return "*";
}
public ClientHttpResponse fallbackResponse(String route, Throwable cause) {
logger.info("--> route:{}进行熔断降级", route);
return new ClientHttpResponse() {
public HttpStatus getStatusCode() throws IOException {
return HttpStatus.OK;
}
public int getRawStatusCode() throws IOException {
return this.getStatusCode().value();
}
public String getStatusText() throws IOException {
return this.getStatusCode().getReasonPhrase();
}
public void close() {
}
public InputStream getBody() throws IOException {
return new ByteArrayInputStream("服务不可用".getBytes());
}
public HttpHeaders getHeaders() {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
return headers;
}
};
}
}
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习