SpringCloud入门(五)

什么要有Hystrix?

雪崩

 就是来微服务相互访问的过程中,某个微服务出现等待情况,造成其他调用这个微服务的微服务都处于等待状态,最终造成服务崩溃。

 

Hystrix就是为了防止雪崩。

 

 

Hystix如何防止雪崩

  1. 线程隔离

在之前,比如tomcat中,所有的访问享有所有的线程权限。默认tomcat有200个线程。

(通铺)

我们现在的微服务都是设定好了,自己微服务需要的线程,当某个微服务线程占满的时候,并不会影响其他微服务。(单间)

  1. 服务降级

就是当访问微服务阻塞的时候,当超过一定时间,返回给错误的结果。而进行友好的提示。

造成阻塞的假象

就在服务提供者代码里添加线程休眠

try {

    Thread.sleep(10*1000);

} catch (InterruptedException e) {

    e.printStackTrace();

}

 

 

  1. 局部服务降级
  1. 添加依赖
<dependency>

    <groupId>org.springframework.cloud</groupId>

 <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>

</dependency>

 

  1. 修改属性文件
  2. 添加注解
@EnableHystrix

 

因为后面要将熔断

@EnableCircuitBreaker

 

最后发现

@SpringBootApplication

@EnableDiscoveryClient

@EnableCircuitBreaker

使用

 

@SpringCloudApplication

 

 

  1. 添加代码
    在要进行服务降级的方法上,添加注解,指定注解的回调函数
@HystrixCommand(fallbackMethod = "helloFallback")

 

实现回调函数(参数,返回值类型一致)

public Object helloFallback(int id){

    User user = new User();

    user.setId(id);

    user.setName("降级处理了");

    return user;

}

 

 

  1. 全局服务降级

类上添加

@DefaultProperties(defaultFallback = "myFallback")

 

方法上添加

@HystrixCommand

 

实现回调方法

public String myFallback(){

    return "降级处理了111";

}

 

  1. 熔断机制

总结

Ribbon是负载均衡,负载均衡就是让所有的访问请求,都平均的负载到每个服务上,这种负载均衡的策略称为简单的轮询。

高可用的概念是任何一个服务都有备用,当某个服务意外停止后,备用服务依然可用。

集群的概念就是多台服务器实现一个功能,而这些服务器被称为集群。

我们可以通过添加依赖--添加注解--修改代码,来开启我们的负载均衡。配置完成后我们可以通过查找RibbonLoadBalancerClient类的reconstructURL方法来查看负载均衡。

重试机制就是springCloud整合了springRetry来增强我们的RestTemplate的重试能力,当一次服务调用失败之后,不会立即抛出,而是再次重试该服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值