更新時(shí)間:2022-07-13 10:00:15 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1346次
1.默認(rèn)配置
Zull默認(rèn)結(jié)合Ribbon負(fù)載均衡的實(shí)現(xiàn),Ribbon默認(rèn)的負(fù)載均衡算法是ZoneAvoidanceRule
2.修改算法配置
配置方式和Ribbon的消費(fèi)者中配置一樣,也可以自定義隨機(jī)算法
@Configuration
public class RibbonClientConfig {
@Bean
public IRule getRule() {
return new RandomRule();
}
}
增加熔斷配置,當(dāng)服務(wù)不可用的時(shí)候,自動(dòng)會(huì)觸發(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)行熔斷降級(jí)", 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;
}
};
}
}
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)