1.重试机制 ribbon
1.1 解释:当一次服务调用失败后,不会立即抛出异常,而是再次重试另一个服务。
1.2 实现步骤:
- 在服务调用端配置文件中开启重试机制
spring:
cloud:
loadbalancer:
retry:
enabled: true # 开启Spring Cloud的重试功能
service: #负载均衡规则的配置
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #规则:随机________默认:轮循
ConnectTimeout: 250 # Ribbon的连接超时时间
ReadTimeout: 1000 # Ribbon的数据读取超时时间
OkToRetryOnAllOperations: true # 是否对所有操作都进行重试
MaxAutoRetriesNextServer: 1 # 切换实例的重试次数
MaxAutoRetries: 1 # 对当前实例的重试次数
- pom文件添加依赖
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
- 运行测试
当多个消息提供端关闭一个,不会有请求返回异常,经过连接超时时间就会返回所有响应数据
- 跟踪源码,查看ip地址:
双击Shift键,搜索LoadBalancerInterceptor–>
双击Shift键,搜索LoadBalancerlnterceptor–>
通过intercept方法,点击返回函数execute方法–>
ctrl + alt +B查找实现类–>
execute方法处加断点
2.熔断器 Hystrix
2.1 简介 :
Hystrix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败。
2.2 功能 :
当服务繁忙时,如果服务出现异常&