B站尚硅谷最新版SpringCloud 学习笔记(6)-Hystrix断路器
B站视频:https://www.bilibili.com/video/BV18E411x7eT
上一篇:B站尚硅谷最新版SpringCloud 学习笔记(5)-Ribbon负载均衡和OpenFeign服务接口调用
文章目录
- B站尚硅谷最新版SpringCloud 学习笔记(6)-Hystrix断路器
- 上一篇:[B站尚硅谷最新版SpringCloud 学习笔记(5)-Ribbon负载均衡和OpenFeign服务接口调用](https://blog.csdn.net/weixin_42417934/article/details/112760705)
- 一、概述
- 二、hystrix案例
- 三、hystrix工作流程
- 四、服务监控hystrixDashboard
- 下一篇:[B站尚硅谷最新版SpringCloud 学习笔记(7)-Gateway新一代网关](https://blog.csdn.net/weixin_42417934/article/details/112797938)
一、概述
1.分布式系统面临的问题
2.是什么
3.作用
①服务降级
服务器忙,请稍候再试,不让客户端等待并立刻返回一个友好提示,fallback
哪些情况会触发降级
- 程序运行异常
- 超时
- 服务熔断触发服务降级
- 线程池/信号量打满也会导致服务降级
②服务熔断
类比保险丝达到最大服务访问后,直接拒绝访问,拉闸限电,然后调用服务降级的方法并返回友好提示
服务的降级->进而熔断->恢复调用链路
③服务限流
秒杀高并发等操作,严禁一窝蜂的过来拥挤,大家排队,一秒钟N个,有序进行
二、hystrix案例
1.构建提供者
①新建cloud-provider-hystrix-payment8001
②修改POM,添加application.yml,添加启动类
POM
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>mycloud2020</artifactId>
<groupId>org.yezhinao</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloud-provider-hystrix-payment8001</artifactId>
<dependencies>
<!--新增hystrix-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- 引入自己定义的api通用包 -->
<dependency>
<groupId>org.yezhinao</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
application.yml
server:
port: 8001
spring:
application:
name: cloud-provider-hystrix-payment
# eviction-interval-timer-in-ms: 2000
eureka:
client:
register-with-eureka: true
fetchRegistry: true
service-url:
# defaultZone: http://localhost:7001/eureka
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版
instance:
instance-id: hystrix-payment8001 #主机名称:服务名称修改
prefer-ip-address: true #访问信息有ip信息提示
# server:
# enable-self-preservation: false
启动类
@SpringBootApplicati