Hystrix熔断器(笔记)

当请求的微服务宕机,或者响应时间超时,会触发熔断机制,熔断当前请求。
Hystrix 是一个供分布式系统使用,提供延迟和容错功能,保证复杂的分布系统在面临不可避免的失败时,仍能有其弹性。

1、依赖

<!--hystrix依赖,主要是用  @HystrixCommand -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

2、在消费者配置文件中添加hystrix配置

# 开启熔断机制
feign.hystrix.enabled=true
# 设置hystrix超时时间,默认1000ms
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=6000

3、添加FeignClient接口的实现类(该接口定义在服务消费者中)FeignClient接口是声明远程微服务方法的接口,通过它的实现类来决定熔断触发后执行的方法,以下是接口以及实现类。
接口

@FeignClient(name = "service-vod",fallback = VodClientImpl.class)
@Component
public interface VodClient {
     
	
	// @PathVariable后面必须加上参数名
	@DeleteMapping("/edu/vod/deleteVideoById/{id}")
	public RE deleteVideoById(@PathVariable("id") String id);
}

实现类

@Component
public class VodClientImpl implements VodClient{
     
	
	@Override
	public RE deleteVideoById(String id) {
     
		return RE.failed("删除视频出错,触发熔断机制。。。");
	}
}

通过以上配置,当请求的服务宕机或出现其他不可预期的错误时,都会触发熔断机制,从而执行FeignClient接口实现类里面的方法。

你可能感兴趣的:(笔记,分布式)