聚沙成塔 - Turbine收集器
Turbine其实也是一个服务节点,它正是借助Eureka的服务发现来完成信息聚合的。
配置监控服务和集群:在Turbine里我们需要配置目标服务,也就是需要Turbine实时监控的服务名称。如果应用的部署结构比较复杂,比如说分了几个大集群,这时一个Turbine节点可能就无法监管这么多的服务节点了。我们可以启用多个Turbine聚合服务,每个服务指定一个集群,用来聚合这个集群下所有服务节点的Hystrix状态。在默认单cluster的部署结构下,Turbine默认监管default cluster(课程也是采用默认配置)。
服务发现:连接Eureka注册中心,利用服务发现机制拉取服务节点列表,从中找到上一步中配置的指定服务都有哪些服务节点。
聚合信息:这一步聚合操作是Turbine的核心功能,它并不是让各个服务节点把自己的信息上报给Turbine,因为对服务节点来说它们并不知道自己是否在Turbine的监控名单上。这一步其实是由Turbine主动发起的,从服务节点的指定"/actuator"路径下的Hystrix监控接口获取信息。
如果客户端集成了Hystrix,可以在“/actuator”服务中找到Hystrix的healthcheck url,Turbine正是从这个url获取Hystrix当前状态。
监控大盘
有料就要show出来,后台服务再牛,不叫人看到也没用。Hystrix提供了一个监控大盘的服务叫Dashboard,可以简单地通过@EnableHystrixDashboard注解直接开启,它会采用图形化的方式将每个服务的运行状态显示出来,它提供了两个维度的监控:
单一节点监控:通过直接访问服务节点的“/actuator”接口,获取当前节点的Hystrix监控信息。
Turbine聚集信息监控:通过访问Turbine服务的“/actuator”接口,获取经过聚合后的Hystrix监控信息。
通过大盘监控,我们就可以实时掌握服务的健康度状态,知晓哪些服务正处于熔断状态,以便及时排查问题。