注意:
- hystrix基本使用:第十九章 springboot + hystrix(1)
- hystrix计数原理:附6 hystrix metrics and monitor
一、hystrixdashboard
作用:
- 监控各个hystrixcommand的各种值。
- 通过dashboards的实时监控来动态修改配置,直到满意为止
仪表盘:
二、启动hystrix
1、下载standalone-hystrix-dashboard-1.5.3-all.jar
- https://github.com/kennedyoliveira/standalone-hystrix-dashboard:该页面提供了一个很好的视频教学。
2、启动hystrix-dashboard
java -jar -DserverPort=7979 -DbindAddress=localhost standalone-hystrix-dashboard-1.5.3-all.jar
- 注意:其中的serverPort、bindAddress是可选参数,若不添加,默认是7979和localhost
3、测试
- 浏览器输入http://localhost:7979/hystrix-dashboard/,出现小熊页面就是正确了。
三、代码
1、pom.xml
<dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hystrix-core</artifactId> <version>1.4.10</version> </dependency> <!-- http://mvnrepository.com/artifact/com.netflix.hystrix/hystrix-metrics-event-stream --> <dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hystrix-metrics-event-stream</artifactId> <version>1.4.10</version> </dependency>
说明:
- hystrix-core:hystrix核心接口包
- hystrix-metrics-event-stream:只要客户端连接还连着,hystrix-metrics-event-stream就会不断的向客户端以text/event-stream的形式推送计数结果(metrics)
2、配置HystrixMetricsStreamServlet
package com.xxx.firstboot.hystrix.dashboard; import org.springframework.boot.context.embedded.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet; @Configuration public class HystrixConfig { @Bean public HystrixMetricsStreamServlet hystrixMetricsStreamServlet(){ return new HystrixMetricsStreamServlet(); } @Bean public ServletRegistrationBean registration(HystrixMetricsStreamServlet servlet){ ServletRegistrationBean registrationBean = new ServletRegistrationBean(); registrationBean.setServlet(servlet); registrationBean.setEnabled(true);//是否启用该registrationBean registrationBean.addUrlMappings("/hystrix.stream"); return registrationBean; } }
说明:以上方式是springboot注入servlet并进行配置的方式。
四、测试
说明:启动服务后,输入localhost:8001/hystrix.stream,之后点击"Add Stream",最后点击"Monitor Stream"即可。
说明:
- getHotelInfo - commandKey(其实就是servicename下的一个方法)
- hotelService - ThreadPoolKey(不配置的情况下就是commandGroupKey,其实就是servicename)