SpringCloud第九章Hystrix断路器(服务监控hystrixDashboard)_cloud-consumer-hystrix-dashboard9001-程序员宅基地

技术标签: 微服务  java  spring cloud  

5、服务监控hystrixDashboard

5.1、概述

除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。Spring Cloud也提供了Hystrix Dashboard的整合,对监控内容转化成可视化界面。

5.2、仪表盘9001

  • 新建cloud-consumer-hystrix-dashboard9001

  • POM

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>cloud2020</artifactId>
            <groupId>com.likun.springcloud</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>cloud-consumer-hystrix-dashboard9001</artifactId>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
    
    </project>
    
  • YML

    server:
      port: 9001
    
  • HystrixDashboardMain9001+新注解@EnableHystrixDashboard

    package com.likun.springcloud;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
    
    /**
     * @author likun
     * @create 2021-04-29 6:46
     */
    @SpringBootApplication
    @EnableHystrixDashboard
    public class HystrixDashboardMain9001 {
          
        public static void main(String[] args) {
          
            SpringApplication.run(HystrixDashboardMain9001.class, args);
        }
    }
    
  • 所有Provider微服务提供类(8001/8002/8003)都需要监控依赖配置

    <!-- actuator监控信息完善 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
  • 启动cloud-consumer-hystrix-dashboard9001该微服务后续将监控微服务8001

    http://localhost:9001/hystrix (豪猪哥!!!出来)

    在这里插入图片描述

5.3、断路器演示(服务监控hystrixDashboard)

  • 修改cloud-provider-hystrix-payment8001

    注意:新版本Hystrix需要在主启动类MainAppHystrix8001中指定监控路径

    /**
    *此配置是为了服务监控而配置,与服务容错本身无关,springcloud升级后的坑
    *ServletRegistrationBean因为springboot的默认路径不是"/hystrix.stream",
    *只要在自己的项目里配置上下面的servlet就可以了
    */
    @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;
    }
    

    Unable to connect to Command Metric Stream.

    404

  • 监控测试

    • 启动1个eureka或者3个eureka集群均可

    • 观察监控窗口

      • 9001监控8001

        在这里插入图片描述

    填写监控地址http://localhost:8001/hystrix.stream

    • 测试地址

      • http://localhost:8001/payment/circuit/31

      • http://localhost:8001/payment/circuit/-31

      • 上述测试通过(ok)

      • 先访问正确地址,再访问错误地址,再正确地址,会发现图示断路器都是慢慢放开的。

        监控结果,成功

        在这里插入图片描述

    监控结果,失败

    在这里插入图片描述

    • 如何看?

      • 7色

      • 1圈

        在这里插入图片描述

    • 1线

      曲线:用来记录2分钟内流量的相对变化,可以通过它来观察到流量的上升和下降趋势。

    • 整图说明

      在这里插入图片描述

    • 整图说明2

      在这里插入图片描述

    • 搞懂一个才能看懂复杂的

      在这里插入图片描述

(完)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/likun111/article/details/116577087

智能推荐

Mac 如何干净的卸载 VMware Fusion_macbook中vmware fusion怎么卸载-程序员宅基地

文章浏览阅读9.1k次。# 1. 删除根目录下的,需要用管理员权限sudo rm -rf /Applications/VMware\ Fusion.appsudo rm -rf /Library/Application\ Support/VMwaresudo rm -rf /Library/Preferences/VMware\ Fusionsudo rm -rf /Library/Logs/VMware/s..._macbook中vmware fusion怎么卸载

js用递归遍历多维数组_JS数组的遍历上 (含forEach等方法源码)-程序员宅基地

文章浏览阅读3.5k次。forEach()方法用于调用数组的每个元素(循环遍历数组中的每一个元素),并将元素传递给回调函数。它内部的回调函数可以传入三个参数:function(item, index, arr)item为必填参数,表示当前元素index为可选参数,表示当前元素的索引arr同样为可选参数,表示当前元素所属的数组对象(正在遍历的这个数组)。forEach源码实现:Array.prototype.myForEa..._js递归遍历多维数组

android的apk在oppo手机无法安装(安装包没有签名文件)-程序员宅基地

文章浏览阅读2.6k次。在华为手机可以安装,却在oppo手机无法安装,这是怎么回事呢?原来在打包问题上之前仅仅只勾选了第二个,现在把两个都勾上,然后打包安装到oppo手机,完美解决!========================================Talk is cheap, show me the code============================..._oppo安装不了apk文件

什么才是物联网领域最好的开发语言?_micropython和c++执行效率对比-程序员宅基地

文章浏览阅读5k次。采用C/C++语言,运行最快,一般采用厂家提供的底层驱动支持包BSP,所有MCU都支持。最近很多小伙伴找我,说想要一些物联网学习资料,然后我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「物联网入门到高级教程+工具包」,点个关注,全部无偿共享给大家!采用uLISP语言,利用神奇的LISP语言,函数式编程,开发效率高,运行效率也较好。采用microPython语言,软件开发效率可提高5倍以上,但运行效率一般,有时需要优化,容易学习,需要选择microPython支持的MCU。_micropython和c++执行效率对比

自适应滤波(LMS,RLS)_利用lms与rls提取电频信号-程序员宅基地

文章浏览阅读3.6w次,点赞19次,收藏156次。1.背景及相关知识介绍自适应滤波存在于信号处理、控制、图像处理等许多不同领域,它是一种智能更有针对性的滤波方法,通常用于去噪。图中x(j)表示 j 时刻的输入信号值,y(j)表示 j 时刻的输出信号值,d(j)表示 j 的参考信号值或所期望响应信号值,误差信号e(j)为d(j)与y(j)之差。自适应数字滤波器的滤波参数受误差信号e(j)的控制,根据e(j)的值而自动调整,使之适_利用lms与rls提取电频信号

搜索引擎技术原理及其应用-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏4次。搜索引擎技术原理及其应用WEB——浅谈GOOGLE和BAIDU搜索技术2004级计算机科学与技术三班 刘xx本文将分为以下几部分阐述一、Web搜索引擎技术综述二、Google技术三、百度技术四、结束语 搜索引擎(search engine)是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,为用户提供检索服务的系统。一、 Web搜索引擎技术..._什么是搜索技术,搜索技术有哪些应用,搜索引擎

随便推点

Tensorflow下用自己的数据集对Faster RCNN进行训练和测试(二)-程序员宅基地

文章浏览阅读2.5w次,点赞3次,收藏127次。对于Tensorflow版本的Faster RCNN网络,网上包括github上都有不同的源码版本,本人之前也在进行不同版本的运行测试,可以说是每个版本都有不同的错误,在解决这些错误时可谓道阻且长。而对于用自己的数据集来训练和测试Faster RCNN网络,本人在之前的博客https://blog.csdn.net/hitzijiyingcai/article/details/81808091中已...

jq 穿梭框_jq穿梭框-程序员宅基地

文章浏览阅读1.1k次。#HTML代码&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;head&gt;&am_jq穿梭框

vue-cli的工程如何正确使用Google Analytics?-程序员宅基地

文章浏览阅读590次。前言最方便的方法,莫过于使用vue-analytics:https://github.com/MatteoGabriele/vue-analytics。包是有了,可是真正使用起来会发现Google Analytics(下称GA)可能没检测到或者出现漏统计的问题。本文的主题,就是讨论几个基本的检查点和说明下GA的基本用法,确保GA正常工作。本文分为以下几部分:如何正确地初始化G..._"cli\": { \"analytics\": false,"

Hybrd A*(混合A*)算法_混合a*算法-程序员宅基地

文章浏览阅读1.5w次,点赞34次,收藏282次。Hybrid A*算法是一种图搜索算法,改进于A*算法。与普通的A*算法区别在于,Hybrid A*规划的路径考虑了车辆的运动学约束,即满足了车辆的最大曲率约束。_混合a*算法

权限系统设计--zTree的分析简化使用_如何利用结构树初始化权限设置-程序员宅基地

文章浏览阅读191次。权限系统设计与开发什么是权限系统?权限系统是一种设定用户与可操作模块之间关系的系统。通过设定用户与可操作的模块之间的关系,控制用户在可指定范围内进行业务执行基于用户的权限控制(UBAC:User-BasedAccessControl)基于角色的权限控制(RBAC:role-BasedAccessControl)角色的权限控制RBAC树形控件结构分析(1)树形结构如下图所示:对应的实现技术有:dTreetdTreezTree我们主要来看关于zTree的相关操作.我们主要是针对_如何利用结构树初始化权限设置

饿了么element滚动条elScrollbar的使用(包含在el-table中的使用)_el-table中使用el-scrollbar-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏23次。饿了么element滚动条elScrollbar的使用(包含在el-table中的使用)简介引用基本使用只显示横向滚动条只显示纵向滚动条在el-table中使用滚动条简介由于项目需要统一滚动条样式有需要兼容ie,之前有用过一款滚动条插件,但是有点儿卡,而且数据更新需要自己重置,又刚好在elment官网看到了饿了么自带的滚动条样式比较友好,就想把他扣下来,搜索之后原来element-ui有这个滚动条的组件,只是文档里面没有,经使用验证可以兼容到ie10,而且可以很好的DIY样式,更不用每次更新数据就需要重_el-table中使用el-scrollbar

推荐文章

热门文章

相关标签