Hystrixr熔断,降级,Feign无法使用feign: hystrix: enabled: true的问题,Unable to connect to Command Metric Stream.

在这里插入图片描述

在这里插入图片描述

服务熔断

@RestController
public class DeptController {
    @Autowired
    private DeptService deptService;
    @GetMapping("/dept/get/{id}")
    @HystrixCommand(fallbackMethod = "hystrixGet")
    public Dept get(@PathVariable("id") Long id) {
        Dept dept = deptService.queryById(id);
        if (dept==null) {
            throw new RuntimeException("id+=>" + id + "不存在该用户,或者信息无法找到");
        }
        return dept;
    }

    //备用方法
    public Dept hystrixGet(@PathVariable("id") Long id) {
        return new Dept()
                .setDeptno(id)
                .setDname("id+=>" + id + "没有对应信息,null--@Hystrix")
                .setDb_source("no this dataDept in Mysql");
    }
}
-----------------------------------------------
//启动类
@SpringBootApplication
@EnableEurekaClient//在服务启动后自动注册到Eureka中
@EnableDiscoveryClient//服务发现
@EnableHystrix //添加对熔断的支持
public class SpringcloudProviderDeotHystrixApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudProviderDeotHystrixApplication.class, args);
    }



熔断图解

一个请求过来掉很多服务

在这里插入图片描述
万一 I 服务蹦了
在这里插入图片描述
所有的请求都会都在这里,就会雪崩
在这里插入图片描述
所以需要熔断,加个备份文件

在这里插入图片描述

降级

@FeignClient(value = "SPRINGCLOUE-PEOVIDER-DEPT",fallbackFactory = DeptChlientServiceFallbackFactory.class)
public interface DeptChlientService {
    @GetMapping("/dept/get/{id}")
    public Dept queryByaId(@PathVariable("id") Long id);

    @GetMapping("/dept/list")
    public List<Dept> queruAll();

    @PostMapping("dept/add")
    public boolean addDept02(Dept dept);

}
--------------------------------------------------------------------------------
@Component
public class DeptChlientServiceFallbackFactory implements FallbackFactory {
    @Override
    public DeptChlientService create(Throwable cause) {
        return new DeptChlientService() {
            @Override
            public Dept queryByaId(Long id) {
                return new Dept().setDeptno(id)
                                 .setDname("id=>"+id+"没有对应的信息,客户端提供了降级的信息,这个服务现在已经被关闭")
                                 .setDb_source("没有数据");
            }

            @Override
            public List<Dept> queruAll() {
                return null;
            }

            @Override
            public boolean addDept02(Dept dept) {
                return false;
            }
        };
    }
}



Feign无法使用feign:hystrix:enabled: true的问题

客户端配置
# 新版本改成了
feign:
  circuitbreaker:
    enabled: true #开启降级

服务熔断,和服务降级概念

服务熔断:服务端~某个服务超时或者异常,引起熔断,保险丝
服务降级:客户端、从整体网站请求负载考虑,当某个服务熔断或者关闭之后,服务将不再被调用此时在客户端,我们可以准备一个 FaLlbackFactory,返回一个默认的值(缺省值),整体的服务水平下降了但是,好歹能用·比直接挂掉强

监控

在这里插入图片描述

      
   <!--完善监控信息-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

Unable to connect to Command Metric Stream. 错误

在这里插入图片描述
在配置类加上

hystrix:
  dashboard:
    proxy-stream-allow-list: localhost
或者
hystrix:
  dashboard:
    proxy-stream-allow-list: *

Hystrix dashboard怎么看:

在这里插入图片描述

一线

在这里插入图片描述
整图说明:
在这里插入图片描述

搞懂一个才能搞懂全部:

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值