专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Zuul负载均衡配置

Zuul负载均衡配置

更新时间:2022-07-13 10:00:15 来源:动力节点 浏览985次

Zuul的负载均衡

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;
            }
        };
    }
}

 

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>