更新時間:2022-07-13 10:00:15 來源:動力節(jié)點 瀏覽1304次
1.默認(rèn)配置
Zull默認(rèn)結(jié)合Ribbon負(fù)載均衡的實現(xiàn),Ribbon默認(rèn)的負(fù)載均衡算法是ZoneAvoidanceRule
2.修改算法配置
配置方式和Ribbon的消費者中配置一樣,也可以自定義隨機(jī)算法
@Configuration
public class RibbonClientConfig {
@Bean
public IRule getRule() {
return new RandomRule();
}
}
增加熔斷配置,當(dāng)服務(wù)不可用的時候,自動會觸發(fā)熔斷
@Component
public class MyZuulFallBack implements FallbackProvider {
private final Logger logger = LoggerFactory.getLogger(MyZuulFallBack.class);
/**
* getRoute方法的返回值就是要監(jiān)聽的掛掉的微服務(wù)名字
* api服務(wù)id,如果需要所有調(diào)用都支持回退,則return "*"或return null
*
* @return
*/
public String getRoute() {
return "*";
}
public ClientHttpResponse fallbackResponse(String route, Throwable cause) {
logger.info("--> route:{}進(jìn)行熔斷降級", 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("服務(wù)不可用".getBytes());
}
public HttpHeaders getHeaders() {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
return headers;
}
};
}
}
初級 202925
初級 203221
初級 202629
初級 203743