Spring Cloud 系列之 Netflix Hystrix 服务监控
Hystrix 除了可以实现服务容错之外,还提供了近乎实时的监控功能,将服务执行结果和运行指标,请求数量成功数量等等这些状态通过 Actuator 进行收集,然后访问 /actuator/hystrix.stream 即可看到实时的监控数据。
1|1添加依赖
在需要开启数据监控的项目中添加 actuator 依赖。
1|2配置文件
在配置文件中开启 hystrix.stream 端点。如果希望所有端点暴露,配置为 '*'。
1|3启动类
1|4访问
访问:http://localhost:9090/actuator 可以看到已经开启了 hystrix.stream 端点。
访问:http://localhost:9090/actuator/hystrix.stream 结果如下:
此时并没有获取到 Hystrix 的数据。接下来请求一个肯定会出错的方法产生服务熔断降级处理后,结果如下:
对于这种纯 JSON 的查看方式非常不方便我们直观的观察到服务的运行状态。我们可以使用 Hystrix 监控中心来进行查看。
2|0监控中心
所谓的监控中心就是 Hystrix 提供的一套可视化系统 Hystrix-Dashboard ,可以非常友好的看到当前环境中服务运行的状态。Hystrix-Dashboard 是一款针对 Hystrix 进行实时监控的工具,通过 Hystrix-Dashboard 我们可以直观地看到各 Hystrix Command 的请求响应时间,请求成功率等数据。
2|1添加依赖
在需要开启数据监控的项目中添加 dashboard 依赖。
2|2启动类
在需要开启数据监控的项目启动类中添加 @EnableHystrixDashboard 注解。
2|3访问
访问:http://localhost:9090/hystrix 监控中心界面如下:
2|4查看数据
输入能够返回监控数据的URL:http://localhost:9090/actuator/hystrix.stream
2|5监控中心图解
3|0聚合监控
点击链接观看:聚合监控视频(获取更多请关注公众号「哈喽沃德先生」)
Turbine 是聚合服务器发送事件流数据的一个工具,dashboard 只能监控单个节点,实际生产环境中都为集群,因此可以通过 Turbine 来监控集群服务。
3|1创建项目
在 hystrix-demo 父工程下创建 hystrix-turbine 工程。
3|2添加依赖
项目引入 hystrix、dashboard、turbine 三个依赖。
3|3配置文件
application.yml
3|4启动类
启动类需要开启 @EnableHystrix、@EnableHystrixDashboard、@EnableTurbine 三个注解。
3|5访问
order-service-rest 和 order-service-feign 都配置监控中心,最终环境如下:
访问:http://localhost:8181/turbine.stream 多节点服务状态数据如下:
访问:http://localhost:8181/hystrix
order-service-rest 和 order-service-feign 两个服务的运行状态如下:
至此 Hystrix 服务监控知识点就讲解结束了。
本文采用 知识共享「署名-非商业性使用-禁止演绎 4.0 国际」许可协议。
大家可以通过 分类 查看更多关于 Spring Cloud 的文章。



















浙公网安备 33010602011771号