spring-cloud熔断和负载均衡

spring-cloud熔断和负载均衡
强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码

1.服务熔断,是指当前服务调用的另一个服务响应超时的时候会直接终止调用而直接调用备用的另一个方法,称为服务降级。

配置类

复制代码

@Configuration
public class HystrixConfig {

    @Bean
    public ServletRegistrationBean getServlet() {
        HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
        ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
        registrationBean.setLoadOnStartup(1);
        registrationBean.addUrlMappings("/hystrix.stream");
        registrationBean.setName("HystrixMetricsStreamServlet");
        return registrationBean;
    }
}

复制代码

服务类

复制代码

@Service
@Slf4j
public class EurekaRibbonService {

    @Autowired
    RestTemplate restTemplate;

    @HystrixCommand(
            commandProperties = {
            @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "1000"),
            @HystrixProperty(name = "execution.isolation.strategy",value = "THREAD")},
            fallbackMethod = "syaHelloFailure")
    public String sayHello() {
        String message;

        message = restTemplate.getForObject("http://eureka-client/info", String.class);
return message;
    }

    public String syaHelloFailure() {return "error";
    }
}

复制代码

 

启动类中加入@EnableHystrix注解。

 

2.负载均衡

spring-cloud的负载均衡是在客户端完成的

负载均衡的规则:

NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #配置规则 随机
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule #配置规则 轮询
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RetryRule #配置规则 重试
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule #配置规则 响应时间权重

ribbon方式

复制代码

@Configuration
public class RestTemplateConfig {

    @Bean
    @LoadBalanced //实现负载均衡
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

}

复制代码

配置文件

eureka-client: #对应的服务client的name
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

如果是使用feign方式则只配置yml文件即可。

本文来源huayang183,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/18392

发表评论