泓泰

SpringCloud 基础教程(九)-Hystrix服务监控(下)

admin
SpringCloud 基础教程(九)-Hystrix服务监控(下)-第1张-游戏信息-泓泰

  我的博客:http://www.hao127.com.cn/,欢迎浏览博客!



 上一章 http://hao127.com.cn/#/view/72当中,我们介绍了Hystrix在分布式环境下,如何通过熔断、降级的方式解决了服务延迟或者故障出现的问题,本章我们将深入了解Hystrix的服务监控。

前言

 当服务端因为网络延迟或故障出险问题时,我们可以通过Hystrix实现服务熔断,那么如何做到迅速的发现问题并且迅速的解决问题呢?熔断的监控工具有2款工具:Hystrix-dashboard和Turbine,Hystrix-dashboard是针对Hystrix进行实时的监控工具,通过Hystrix-dashboard我们可以直观的看到单个应用的服务信息。但是,在分布式的模式下,我们需要一个能够汇总所有的服务数据并直观的显示出来,这个工具就是Turbine。

一、健康检查

 我们在 SpringCloud 基础教程(三)-Eureka 进阶 中提到了 Eureka是默认使用心跳机制来监测服务的健康与否的,我们通过在服务端引入actuator依赖,并修改yml配置,开启健康检查,能够查到服务是否正常,这里在需要被监测的服务组件中,开启监控也需要引入actuator:

       <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-actuator</artifactId>        </dependency>

 application.yml添加配置,默认只有"health","info",这里我们添加"hystrix.stream"

management:  endpoints:    web:      exposure:         include: ["health","info","hystrix.stream"]

 启动被监测的项目后,这里我启动了server-consumer服务消费者,actuator为hystrix提供了管理接口,我们通过http://localhost:5168/actuator/hystrix.stream (当前版本是2.x版本,如果是1.x版本,请求的接口就是/hystrix.stream ),就可以看到页面在动态的、实时的刷新,监控一些参数:

二 、监控面板

 在被检测的项目中引入actuator就可以通过接口的方式收集Hystrix Command标注的资源接口参数信息,我们还可以通过直观的方式,使用Hystrix-dashboard仪表盘的方式展示:

 首先,新建仪表盘应用Monitor,创建Maven项目,引入hystrix-dashboard依赖:

 <dependency>      <groupId>org.springframework.cloud</groupId>      <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>  </dependency>

 在主类上添加@EnableHystrixDashboard注解,表示开启仪表盘:

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;@SpringBootApplication@EnableHystrixDashboardpublic class MonitorApplication {    public static void main(String[] args) {        SpringApplication.run(MonitorApplication.class, args);    }}

 配置文件中指定端口为8412,启动项目后,可以通过http://localhost:8412/hystrix访问仪表盘的页面:



 控制主页面,我们可以输入指定服务的接口,刷新时间,默认是2秒就可以显示指定服务的监控数据了,比如我们可以输入server-consumer服务消费者的url http://localhost:5168/actuator/hystrix.stream ,就可以实时的显示以下的信息:


具体的信息,包括了成功数量、熔断数量,错误数量,错误的百分比等等信息:


三 、聚合监控Turbine

 在实际的企业开发中,服务的实例不知一个,这个时候就需要将所有服务的监控信息聚合到一个面板上,我们可以使用Turbine。

 在上文Monitor仪表盘项目中,我们继续引入turbine依赖:

 <dependency>     <groupId>org.springframework.cloud</groupId>     <artifactId>spring-cloud-starter-netflix-turbine</artifactId>  </dependency>

 并在主类上添加@EnableTurbine注解:

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;import org.springframework.cloud.netflix.turbine.EnableTurbine;@SpringBootApplication@EnableHystrixDashboard@EnableTurbinepublic class MonitorApplication {    public static void main(String[] args) {        SpringApplication.run(MonitorApplication.class, args);    }}

 配置仪表盘的应用添加配置application.yml,并添加Eureka配置,这样可以从Eureka中心通过服务名称获取服务实例信息:

eureka:  instance:    hostname: eureka7001.com    instance-id: monitor    prefer-ip-address: true #eureka服务端的实例名称  client:    service-url:       # 与注册中心交互的url       defaultZone: http://eureka7001.com:7001/eureka/       enabled: trueturbine:  aggregator:     #集群的名称,可以多个    cluster-config: MAIN  #监控服务的名称,可以有多个  app-config: server-consumer  cluster-name-expression: metadata['cluster']

 同样,我们在被监控的服务server-consumer的配置中,需要配置和Monitor项目的配置一样:、

eureka:  instance:    metadata-map:      cluster: MAIN

 我们启动1个Eureka,2个服务server-consumer,1个Monitor仪表盘项目,接下来就直接在Hystrix的仪表盘页面输入:

http://localhost:8412/turbine.stream?cluster=MAIN

 我们就可以看到数据都被聚集到一起了,Hosts为2表示有2个实例:


这样既可以看到聚合之后的监控图形化信息了。


四、总结

 本章在上一章的基础之上,详细的介绍了Hystrix熔断的监控,以示例的方式展示了单个服务的监控和多个服务的聚合监控。在实际的企业应用中,我们能够通过这样的方式及时的掌握每个服务的健康状况。这是非常有必要和实用的。

 以上就是本期的分享,你可以关注本博客的#http://hao127.com.cn/#。 还可以关注公众号: 程序员笑笑生,关注更多精彩内容!


以就是本期的分享,你还可以关注公众号: 程序员笑笑生,关注更多精彩内容!


https://mp.weixin.qq.com/s?__biz=Mzg4MDE3NzI1NA==&mid=2247483760&idx=1&sn=66a559f4d318980dc80e7b159176b472&chksm=cf787879f80ff16fd38552cc1ab888e075b9b46faffee65bbd966553f355499761a7cb71220c&token=226159718&lang=zh_CN#rd

https://mp.weixin.qq.com/s?__biz=Mzg4MDE3NzI1NA==&mid=2247483768&idx=1&sn=555a0e53228c596830ca72e22c9cbab1&chksm=cf787871f80ff167b4ceb4d042cced2184f3a0ce82149ccb40b7218beab6c767748c0dcf95c6&token=226159718&lang=zh_CN#rd

https://mp.weixin.qq.com/s?__biz=Mzg4MDE3NzI1NA==&mid=2247483783&idx=1&sn=71aa8383ff49117c60a73c2bcfab5fe0&chksm=cf78788ef80ff198ff034a06cd0e16c868d8545ca63f8cde6a8fa3f345678b51ae8b9a4da1b8&token=226159718&lang=zh_CN#rd

https://mp.weixin.qq.com/s?__biz=Mzg4MDE3NzI1NA==&mid=2247483795&idx=1&sn=7686413496decaa2627aa92321f177a7&chksm=cf78789af80ff18ccf0a33d1a9701ead20000408711db6ee1e581225191b50c8866dc26d6606&token=226159718&lang=zh_CN#rd

https://mp.weixin.qq.com/s?__biz=Mzg4MDE3NzI1NA==&mid=2247483804&idx=1&sn=0db76d3d11adcab12be4b019435ce11e&chksm=cf787895f80ff1831658e45ab654da77bcc6eccda52f41f2a42aac579f9bd9011d4153dbd982&token=226159718&lang=zh_CN#rd

https://mp.weixin.qq.com/s?__biz=Mzg4MDE3NzI1NA==&mid=2247483813&idx=1&sn=61d12c61525bb95b63b60cb77634ed24&chksm=cf7878acf80ff1ba22b914256369a1a07dbb480162ccf65b851bd10d015325278e4e05d4b4cb&token=226159718&lang=zh_CN#rd

https://mp.weixin.qq.com/s?__biz=Mzg4MDE3NzI1NA==&mid=2247483826&idx=1&sn=9161f768011dfa3fc843ef7127c37270&chksm=cf7878bbf80ff1adfcce2b0f017f69806132388fc160f330eb27a92246a1d7bca5f861717e62&token=786925329&lang=zh_CN#rd

https://mp.weixin.qq.com/s?__biz=Mzg4MDE3NzI1NA==&tempkey=MTA0Nl9vc2hqM1U5ZWJxRWZ2MDNmY1JSbUh3eEFrakR0SVZmWjBPOWJtVXY3ZE9mUE1yaGFWRmNPbkdUcHdjTVhINjhyMmJSWXVkNHpqdkF6MmdUTTFWalNFRS1SXzdwd05tZjV1S1d3WGdkQXY1Q0J2ZW9pNVR3c3RxLXJnckxzTjZTSGI4N09sXzBYMEVBYjdFbFNOYU1Wc0QwVDRBZzlELWF1bWRSWnNRfn4%3D&chksm=4f7878b0780ff1a6c04d27325fe2d008e5bfa88de771f61b1ba241d812ad4a73a3b46b869bbf#rd

更多精彩内容,请期待...


本文由博客一文多发平台 https://openwrite.cn?from=article_bottom 发布!

标签: #谁有魔兽神之墓地27a劫尽10d详细攻略