SpringCloud中Turbine聚合监控组件
前言
我们在使用Hystrix中的Dashborad组件进行监控服务熔断情况的时候, 每个微服务都会有一个单独的监控页面, 当我们业务的微服务数量足够多的时候, 那么管理起来相对来说不是很方便, 所以Netflix开源了Hystrix的另一个组件Turbine, Turbine组件能够进行对Hystrix服务的聚合, 能够将多个Dashborad集中在一个页面上进行展示
搭建一个单独的Turbine服务
在我们的项目下创建一个新的模块, base-turbine
, 这个模块使用了Spring Cloud Turbine组件, 它提供了聚合服务监控功能
在模块中我们需要增加如下依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-turbine</artifactId>
</dependency>
然后我们将在application.yml
文件中进行一些基础的配置
server:
port: 8090
spring:
application:
name: base-turbine
turbine:
app-config: testclient
cluster-name-expression: new String("default")
instanceUrlSuffix: /hystrix.stream #注意,在SpringBoot2.X以上的版本,需要重新配置这个地址,否则会抛出异常
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
在启动类上我们需要加上如下注解,以保证我们Turbine聚合服务的正常运行
@EnableTurbine //通过这个注解进行对Turbine的支持
@EnableHystrixDashboard
直接在配置文件中加上instanceUrlSuffix: /hystrix.stream
或者新配置一个@bean
@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;
}
然后我们就可以愉快的启动服务了
进行测试
首先,待服务完全启动成功后(注册中心->微服务模块->客户端->Turbine聚合监控模块)
我们首先在浏览器地址中输入
http://localhost:8090/turbine.stream
如果能够持续输出json信息,那证明Turbine聚合服务成功启动,然后我们来测试Turbine是否监控到微服务
我们继续在浏览器地址中输入
http://localhost:8080/findOrder
之后再http://localhost:8090/turbine.stream
这个地址中的界面显示类似以下Json数据,那么表示我们的Turbine聚合服务监控微服务已经成功
那么准备工作已经准备好了,我们就可以进入可视化面板中进行监控了
我们在浏览器中输入http://localhost:8090/hystrix
之后再在显示的界面中输入http://localhost:8090/turbine.stream
这个地址
然后就会出现可视化面板
由于我们在配置中只监控了一个,所以这里也只显示了一个微服务,在实际运用中就能监控多个服务了
2 comments
LOGO好看的博主到此一游
哈哈!刚刚更新了5.3,阅读模式高亮插件CSS有BUG,赶紧修,改天我也去做个好看点的LOGO