环境:
<java.version>1.8</java.version>
<spring-boot.version>2.0.4.RELEASE</spring-boot.version>
<spring-cloud.version>Finchley.SR1</spring-cloud.version>
<lcn.last.version>4.2.1</lcn.last.version>
一.首先说在spring cloud的每个微服务中配置Hystrix Dashboard
>Dashboard代表仪表盘,作用是用于展示微服务之间调用时的监控。
>这里说明的是服务间进行feign调用时,微服务配置Dashboard的步骤
>这里说的是,在每一个业务服务上添加Dashboard的步骤,不是单独抽离出来一个Dashboard服务
>配置Dashboard之前,微服务直接按已经完成了feign的调用,并且已经在feignClient上设置了熔断器
【ms-member服务(port:9000) 调用 ms-integral服务(port:9002)】
【ms-member服务是服务调用方,通过feign调用ms-integral服务,ms-integral是服务提供方】
1.首先每一个需要配置Dashboard仪表盘的微服务都需要添加依赖
<!--熔断器 健康检查--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--熔断器 Dashboard--> <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-hystrix-dashboard</artifactId> </dependency>
2.启动类上添加注解
@EnableCircuitBreaker
@EnableHystrixDashboard//展示熔断器仪表盘
3.spring boot2.0以后,不提供 hystrix.stream节点,需要自己添加【可以不加@Service放在启动类,也可以加上@Service或者@Component放在一个单独的文件中,只要能注入spring中为Bean即可】
【解决:Hystrix仪表盘Unable to connect to Command Metric Stream的问题,就是这一步骤以上的这些都配置了即可解决这个问题】
/** * SpringBoot2.0以后,不提供 hystrix.stream节点,需要自己增加 */ @Service public class HystrixStreamServlet { @Bean public ServletRegistrationBean getServlet(){ HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet(); ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet); registrationBean.setLoadOnStartup(1); registrationBean.addUrlMappings("/hystrix.stream"); registrationBean.setName("HystrixMetricsStreamServlet"); return registrationBean; } }