SpringBoot下HystrixDashboard出现Http401状态码导致“hystrix dashboard Unable to connect to Command”数据无法出现的解决办法

Replay音频转换时samplerate缺失的解决方案指南 Replay音频转换时提示"No module named 'samplerate' This error is lazily reported, having originally occured in File"的解决方案 阅读详情

一. 问题描述

笔者在用SpringBoot 2.1.4.RELEASE + SpringCloud Greenwich.SR5学习Hystrix时,在Hystrix Dashboard页面出现了一个常见错误:hystrix dashboard Unable to connect to Command Metric Stream,截图如下:

在这里插入图片描述
而我直接在浏览器中输入hystrix.stream地址:http://localhost:20081/actuator/hystrix.stream 是能访问到接口内容的
在这里插入图片描述

二. 原因分析

1. SpringBoot2.0版本问题排查

首先审查了下,项目需要的security及hystrix相关依赖都已添加:

        <!-- spring security依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
   
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
            <version>2.2.6.RELEASE</version>
        </dependency>
        <!-- dashboard可视化面板 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>

一开始我以为是SpringBoot2.0以上版本出现的:url增加/actuator、需要配置Servlet映射问题(参见此博客)。

@Bean
    public ServletRegistrationBean getServlet() {
        HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
        ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
        registrationBean.setLoadOnStartup(1);
        registrationBean.addUrlMappings("/actuator/hystrix.stream");
        registrationBean.setName("HystrixMetricsStreamServlet");
        return registrationBean;
    }

但发现此配置没有用,依然会报错。思考到我之前就可以通过直接输入地址:http://localhost:20081/actuator/hystrix.stream 访问到接口内容,那应该不会是SpringBoot2.0的问题,换其他思路

2. 看后台服务报错

回看到后台服务的日志信息,发现后台服务报错与上文博客中的情况不同,为Http 401错误,日志如下

2021-11-13 20:36:30.002  WARN 22544 --- [io-20081-exec-7] ashboardConfiguration$ProxyStreamServlet : Failed opening connection to http://localhost:20081/actuator/hystrix.stream : 401 : HTTP/1.1 401 
2021-11-13 20:36:30.007  WARN 22544 --- [o-20081-exec-10] ashboardConfiguration$ProxyStreamServlet : Failed opening connection to http://localhost:20081/actuator/hystrix.stream : 401 : HTTP/1.1 401 
2021-11-13 20:36:45.476  INFO 22544 --- [trap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver      : Resolving eureka endpoints via configuration

HTTP 401错误是指用户权限认证出现问题。这提醒了我,本次实验项目pom中的Security模块是很早之前练习Eureka时就已经引入的包,当时还做了一些自定义配置。
会不会是当时的自定义配置影响了接口的调用?查到相关代码如下:

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        //所有的请求,都需要经过HTTP Basic认证
        http.authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .httpBasic();
    }
}

这里就看到了问题原因所在:Security设置的项目接口都需要HTTPBasic输入用户名和密码进行登录认证。但Dashboard页面框架是作为get参数来加载hystrix.stream后台接口,此时后台系统无法认证相关接口用户登录态问题,则报错401

三. 解决办法

因为需要Dashboard自己轮询http://localhost:20081/actuator/hystrix.stream 这个接口,所以需要让后台服务将此接口进行登录态放行,修改此方法:


    @Override
    protected void configure(HttpSecurity http) throws Exception {
        //所有的请求,都需要经过HTTP Basic认证
        http.authorizeRequests()
                .antMatchers("/actuator/hystrix.stream").permitAll()        //放行/actuator/hystrix.stream
                .anyRequest().authenticated()
                .and()
                .httpBasic();
    }

只增加了一行代码.antMatchers("/actuator/hystrix.stream").permitAll()。完成后重启,发现Dashboard成功出现监控数据
在这里插入图片描述

四. 总结

遇到问题需要对症下药,查到原因才能更好的解决

PS:

最开始测试时,我在打开浏览器访问本项目其他接口时,也做过用户认证,cookie中记下了我的登录态。因此后来直接用浏览器打开http://localhost:20081/actuator/hystrix.stream 接口时没有弹出登录接口,以至于疏忽了Security安全认证的配置
在这里插入图片描述

【ESP32CAM+Android+OpenCV】自定义目标数据集、训练自己的OpenCV模型部署到手机APP并对ESP32CAM无线图传显示并实时检测识别目标_资料编号30 本项目实现自定义目标数据集(想检测什么就检测什么,按照本文教程自己来更换目标)、训练自己的OpenCV模型实时检测识别(pycharm工程)。手机APP(Android studio工程)部署OpenCV模型实现对ESP32CAM(arduino工程)无线WIFI图传过来的图像实时检测识别。 本文以火焰检测识别为例进行演示,通过该过程,结合本文可自定义尝试更换为其它目标的检测,例如更换为车辆、车牌、手势、人脸面部活动、人脸表情、火焰烟雾、行人、口罩、行为、水果、植物、农作物、建筑、损伤等等部署进行检测。 阅读详情

相关推荐

树莓派+STM32+激光雷达:大学生工训赛智能物流小车全栈开发实录(附避坑指南)

本文详细记录了基于树莓派、STM32和激光雷达的智能物流小车全栈开发过程。文章从系统架构设计、硬件集成、软件框架搭建到机械臂控制与视觉辅助定位,系统阐述了如何构建一个完整的机器人系统,并分享了在电源管理、通信延迟、里程计误差等关键环节的实战避坑指南,为嵌入式与机器人开发提供了宝贵经验。

kotlin6android的博客 748

hystrixDashboard服务监控页面-不安全连接和报错404

记一次纠错 报错如下: 首先是Hystrix Dashboard首页能正常显示 根据提示,我应该按如下形式访问监控页面: 所以我就输入了 https://localhost:8001/actuator/hystrix.stream 显示为不安全连接 那个ERR_SSL_PROTOCTL_ERROR,一看就是https的锅,所以,我迅速改成了http,但是呢,还是没有显示出来,不过没有...

tiandc的博客 1915

Arduino智能小灯DIY:人体感应+光线感应+蓝牙控制全攻略(附完整代码)

本文提供了一份完整的Arduino智能小灯DIY制作指南。项目融合了人体感应、光线感应与蓝牙控制三大功能,通过详细的硬件清单、电路连接图、核心逻辑讲解及附带的完整代码,手把手教你打造一个能自动感知环境与人、并支持手机远程控制的智能照明装置,是入门智能家居和物联网开发的绝佳实践。

java5的博客 1091

关于开启熔断之后,请求一直报401异常错误的问题

附上原文作者:http://www.itmuch.com/spring-cloud-sum/hystrix-threadlocal/ #服务熔断 feign.hystrix.enabled = true hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds = 5000 这是我在公司...

weixin_42682352的博客 1001

MDPI期刊投稿全流程解析:从注册到提交的实用指南

本文详细解析了向MDPI期刊投稿的全过程,从注册账号、完善个人资料、上传稿件,到填写作者信息、推荐审稿人及提交附信等关键步骤。指南强调了使用机构邮箱、遵循期刊模板、认真准备Cover Letter等实用技巧,旨在帮助作者高效、规范地完成投稿,避免常见错误,提升稿件处理效率。

weixin_29250403的博客 920

多模态数据集对比:MicroLens、PixelRec和Amazon在电商推荐中的表现差异

本文深入对比了三大主流多模态数据集MicroLens、PixelRec和Amazon在电商推荐中的表现差异。通过实际测试数据,分析了这些数据集在冷启动处理、模态融合、稀疏性挑战等关键场景下的真实表现,为算法工程师和研究员提供实用指南。特别关注多模态数据集的选择对推荐系统效果的影响,帮助开发者优化模型性能。

weixin_28717939的博客 417

使用hystrix的监控页面dashboard时出现的问题以及解决方案

使用hystrix的监控页面dashboard时出现的问题以及解决方案

weixin_61904656的博客 884

ABAP CDS 视图参数 parameter_list 详解与最佳实践:从语法、作用域到可运行范例

本文系统梳理了ABAP CDS视图的WITH PARAMETERS定义与使用。主要内容包括:1)参数声明语法及其在整条SELECT语句中的贯穿使用;2)参数在WHERE/HAVING/ON等位置的多种写法(:pname和$parameters.pname);3)参数在航空公司航线筛选等实际业务场景中的应用;4)参数与会话变量的协作策略;5)在JOIN ON、HAVING、CASE等高级用法中的实践;6)提供完整的CDS视图与ABAP程序示例,展示参数声明、使用及Open SQL传参方式。所有内容均基于SAP

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 369

记录学习Hystrix Dashboard过程中出现的问题

记录学习Hystrix Dashboard过程中出现的问题 这几天在学习Spring Cloud的Hystrix组件,想把Hystrix Dashboard运行起来看看,谁知过程中遇到各种各样的坑,费了个把小时排查问题,终于解决。 一、Spring Boot版本和Spring Cloud版本 Spring Boot == 2.3.7 Spring Cloud ==Hoxton.SR9 二、pom.xml中的依赖 <dependency> <groupId>o.

u012351661的专栏 798

GPU架构(1.1)--介绍 GPU的 VPU(Vision Processing Unit)架构

基于自研的 VPU(Vision Processing Unit)架构,专为高性能图形处理和深度学习设计。VPU 架构通过优化计算单元、内存层次结构、同步机制和指令流水线,提供了卓越的性能和能效。VPU 架构通过优化计算单元、内存层次结构、同步机制和指令流水线,提供了卓越的性能和能效。这种架构不仅适用于高性能图形处理,还广泛应用于深度学习、科学计算和边缘计算等领域。通过了解 VPU 架构的详细设计和工作原理,读者可以更好地利用这些先进的 GPU 技术,开发出高效、可靠的计算系统。

MHD0815的博客 1296

Matlab实现雷达波位编排

1 简介 %本程序用于雷达球坐标系到正弦空间坐标系的转换,以及相控阵雷达的波位编排。 2 完整代码 ​%070228添加波位数据保存clear allclose allclc%波束宽度,单位:度BeamWidth = 3.6;theta05 = round(sin(BeamWidth*pi/180)*1000)/1000;%雷达作用空域AZ = [-15 15]; %方位角范围(雷达球坐标系),单位:度EL = [0 30]; %俯仰角范围(雷

qq_59747472的博客 2478

Spring Cloud 之Hystrix Dashboard

本文学习hystrix dashboard的使用,通过该组件功能实现对服务的监控,大大提高开发效率和维护。

风儿甚是喧嚣的博客 1545

基于STM32、HAL库的SC16IS752IPW总线转UART驱动程序设计

/ FIFO空间不足。// 设置LCR寄存器的DLAB位为1以访问DLL/DLH。// 设置LCR寄存器,先访问DLL/DLH。// 设置LCR寄存器(不包含DLAB位)

corlin6688的博客 813

Spring Cloud Hystrix【应用篇】 Hystrix Dashboard

参考资料: Hystrix GitHub 官方文档 Hystrix Wiki 文档 spring Cloud 文档 Hystrix Dashboard Hystrix Dashboard 界面 在 Hystrix Dashboard 界面中,我们能够知道有三种输入方式获取 Hystrix 监控信息 默认集群监控 Cluster via Turbine (default cluster):...

保持敏感!保持学习! 649

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Hystrix相关问题及答案(2024)

Hystrix允许你通过覆盖。

qq_43012298的博客 1583

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

总结一下springBoot框架自己容易遗漏的东西

1.配置依赖的时候,在项目配置上加热部署,热部署就是应用正在运行的时候升级软件,却不需要重新启动应用。配置上之后我们可以直接更改代码而不用重新启动项目 2.比如平时访问项目:localhost:8080/hello2就可以访问,我现在想加入项目名称,ceshi,所以我们需要在application.properties文件中另行配置 server.context-path=/ceshi ...

有问题可关注公众号:前端研究院 后台输入问题回复 449

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SpringBoot 401 Unauthorized问题

当我们使用了Spring-security 之后,Spring Security默认对所有路径进行权限认证,并且提供默认的登陆页面。如果系统最终没有使用到Spring Security,将该依赖移除即可解决问题;

qq_39323945的博客 2833

关于springboot内存泄露问题的排查

John Miiler 是ebay团队的高级后端工程师,负责各种项目,包括结账和支付系统。作为公司摆脱单一业务的努力的一部分,他的团队正试图将业务逻辑一块一块地提取到单独的微服务中。他分享了他的团队如何解决在提取图像处理微服务时遇到的内存使用问题。 最近提取的microservice是一种图像处理服务,它对图像进行大小调整、裁剪、重新编码和执行其他处理操作。这个服务是一个在Docker容器中使用springboot构建的Java应用程序,并部署到AWS托管的Kubernetes集群中。在实现该服务时,我们

Java架构师之路的博客 3152

springboot启动新项目,报401错误,需要输入用户、密码登录,但是并没有配置需要登录

错误描述 在新建一个项目moudle后,写完了controller、service等package之后,使用postman访问相应api,但是报错401 Unauthorized。在页面访问相应的api,出现登录界面: 但是我记得在该moudle的pom文件中并没有配置需要spring-security之类的东西。 解决方法 经过一番查询,给出的解决方案都是跟spring-security有关的,我分析了自己的pom文件配置内容,找到了该moudle的pom文件的父pom,然后在父pom中对这个配置进行了

qq_35531985的博客 4027

SpringCloud(15) —— Hystrix:Dashboard流监控

目录1.什么是Hystrix Dashboard2.Hystrix Dashboard入门案例3.小结 1.什么是Hystrix Dashboard Hystrix提供了对于微服务调用状态的监控信息,但是需要结合spring-boot-actuator模块一起使用 Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command实时的请求响应时间, 请求成功率等数据,可以帮助我们快速发现系统中存

Jzandth的博客 502

Spring Cloud 最新版使用 Hystrix DashBoard 问题解决

Hystrix报错:Unable to connect to Command Metric Stream 检查了pom文件 和启动类的注释都没有问题 后来发现是springboot版本的问题,版本1.5之前是不需要进行配置的 但是2.x之后是需要对Hystrix进行配置的。 在hystrix-service的启动类中添加 /** *此配置是为了服务监控而配置,与服务容错本身无关,springcloud升级后的坑 *ServletRegistrationBean因为springbo

Mick_^_^的博客 1326

Hystrix Dashboard 配置

数据监控 需要额外创建一个工程 依赖配置 <?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:schemaLocati...

日有寸进 774

Hystrix-Dashboard报错踩坑

spring2.0之后 Hystrix-Dashboard 一直出现 Unable to connect to Command Metric Stream解决办法Hystrix-Dashboard服务引入相关依赖配置yml文件主启动类被监控的微服务相关依赖配置yml文件主启动类 Hystrix-Dashboard服务 引入相关依赖 <!-- HystrixDashboardMain9001-dashboard 相关依赖 --> <dependency>

个人博客 1268

这可能是全网把Spring Boot信息泄露讲的最清楚的文章,毕竟出自阿里P7架构师之手

一、路由地址及接口调用详情泄漏 开发环境切换为线上生产环境时,相关人员没有更改配置文件或忘记切换配置环境,导致此漏洞 直接访问以下几个路由,验证漏洞是否存在: /api-docs /v2/api-docs /swagger-ui.html 一些可能会遇到的接口路由变形: /api.html /sw/swagger-ui.html /api/swagger-ui.html /template/swagger-ui.html /spring-security-rest/api/swa..

文章中资料均可获取,有需要请添加yunduoa2019即可 3051

【SpringCloud基础】Hystrix配置Dashboard

前言 Github:https://github.com/yihonglei/thinking-in-springcloud Eureka注册中心:eureka-server 服务提供者(订单服务):eureka-provider-order Feign-api(服务接口抽象):eureka-feign-api Feign客户端消费(含hystrix和dashboard):eureka-...

yhl_jxy的博客 864

前后端分离项目SpringBoot-Shiro-jwt处理401响应码的方案

前后端分离项目SpringBoot-Shiro-jwt处理401响应码的方案

h363659487的博客 2811
上一篇: SpringBoot+Freemarker+Security环境下自建/login登录页面,并解决一直302跳转登录首页、无法登录成功的问题
下一篇: Java8新特性:Stream流处理使用总结
郭Albert
博客等级 码龄14年 110粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭Albert

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值