在微服务架构中通常会涉及到多个服务间调用,处于调用链路底层的基础服务故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应。服务雪崩效应是一种因“服务提供者”的不可用导致“服务消费者”的不可用,并将不可用范围逐渐放大的过程。 大家在开发过程中肯定都遇到了 HTTP Connection Timeout 异常,这其实也是一种熔断器概念,当连接请求一直连不上超时就结束了请求并抛出异常。
2、简单的断路器
添加pom依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </dependency>
新建hystrix-server项目,在入口处新增@SpringCloudApplication:
@SpringCloudApplication public class HystrixApplication { public static void main(String[] args) { SpringApplication.run( HystrixApplication.class, args ); } /** * 实例化RestTemplate,通过@LoadBalanced注解开启均衡负载 */ @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } }