熔断器出来的原因
一 简单使用体验(正常项目使用看下面的二)
引入jar包
假设现在项目逻辑中发生了异常。
二 解耦
像上面那样 每个方法都需要一个对应的异常熔断的方法,所以我们要进行统一的管理
一般项目间都采用feign远程调用机制,那么就会经过api工程,通过调用api工程的对应的接口来调用对应的工程接口的实现。如下三个接口。
那么怎么解耦呢?我们直接在api工程编写一个类统一实现异常异常熔断,如果远程调用过程中出现问题,就会走熔断机制, 具体实现如下:
首先我们先写一个对于这个类的统一的熔断机制的类,aop面向切面思想,
1.这个类有需要实现FallbackFactory<>,后面的泛型是要进行熔断统一管理的类。这里我们想对上面的那个类进行熔断管理,所以泛型应该写它
2.必须写@Component注解,否则无效,一定注意
熔断还和一个概念有所关联降级
三 服务监控hystrixDashboard
开始
新建项目引入jar包
yml
启动类加注解@EnableHystrixDashboard
在所有要被监控的工成中都添加以下jar包,我这里想要监控3个工程的一个服务集群,一个熔断服务工程,所以工程中都添加以下jar包
启动注册中心,启动刚刚创建的监控服务,启动被监控的项目:
然后访问:监控服务/hystrix 就可以访问的看到豪猪的页面就是成功了
)
因为我的监控服务的项目配置的端口时9001,所以访问如下面地址就可以看到豪猪页面:
如果要查看单个服务的监控信息的话:要监控的项目/hystrix.stream
例如:
但是这样展现的是,看起来不方便,所以我们试图看到图形化的页面
接下来我们来转换为图形化页面:做法如下
然后进入如下监控页面
下面有个参考示例图