【微服务架构】无法在Sentinel Dashboard查看到服务的监控信息原因

news/2024/12/22 10:57:21/

(目前项目中使用的Hystrix,而Hystrix已经不维护了,至今仍然是2018年发布的1.5.8版本。)

开始学习一下新的服务治理框架Sentinel

Sentinel官网介绍

在集成Sentinel案例中碰到的问题

微服务,无法在sentinel dashboard中看到微服务的监控信息,这个问题找了蛮久的。

在网上查找的各位网友们的解决方法:

sentinel.eager

要配置sentinel.eager为true的,这个尝试了,确实可以在sentinel中直接就能看到服务信息,

但是在sentinel控制台中微服务的实时监控中,无法看到请求信息。

 

sentinel.transport.clientIp 

有说要指定指定sentinel.transport.clientIp

增加启动参数

Dcsp.sentinel.dashboard.server=consoleIp:port

以上方法都试过了,并没有解决我遇到的问题。

有考虑过时版本兼容问题,也降过版本,还是不行。

我使用的spring boot、spring cloud 、spring cloud alibaba、 sentinel版本都是官方匹配的版本。

考虑过是其他依赖冲突、配置冲突导致,最后在不断的尝试中,终于找到了原因。

因为项目中配置了WebMvcConfigurationSupport ,导致sentinel拦截器失效。

package pers.kw.config.mvc;import com.alibaba.csp.sentinel.adapter.spring.webmvc.SentinelWebInterceptor;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {@Overrideprotected void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new TokenInfoInterceptor());super.addInterceptors(registry);}@Overrideprotected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {converters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8));//1、定义FastJson转换消息的对象FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();//2、添加fastjson的配置信息FastJsonConfig fastJsonConfig = new FastJsonConfig();SerializerFeature[] features = {SerializerFeature.WriteMapNullValue, // 输出空置字段SerializerFeature.WriteNullListAsEmpty, // list字段如果为null,输出为[],而不是nullSerializerFeature.WriteNullStringAsEmpty,// 字符类型字段如果为null,输出为"",而不是nullSerializerFeature.WriteMapNullValue //MAP为null输出空};//SerializerFeature.PrettyFormatfastJsonConfig.setSerializerFeatures(features);//3、在convert中添加配置信息fastConverter.setFastJsonConfig(fastJsonConfig);List<MediaType> fastMediaTypes = new ArrayList<>();fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);fastConverter.setSupportedMediaTypes(fastMediaTypes);//4、将convert添加到converters中converters.add(fastConverter);super.addDefaultHttpMessageConverters(converters);}
}

在openai找到了解释

在Spring Boot项目中,如果你配置了`WebMvcConfigurationSupport`类,可能会导致Sentinel无法监控到服务请求信息。这是因为`WebMvcConfigurationSupport`类会覆盖Spring Boot默认的Web MVC配置,其中包括Sentinel的拦截器。

为了解决这个问题,你可以尝试以下几种方法:

  1. 不使用`WebMvcConfigurationSupport`:如果你的项目中没有必要使用`WebMvcConfigurationSupport`,可以尝试删除该类或将其注释掉。这样可以恢复Spring Boot默认的Web MVC配置,包括Sentinel的拦截器。

  2. 手动添加Sentinel拦截器:如果你需要使用`WebMvcConfigurationSupport`类,可以尝试在该类中手动添加Sentinel的拦截器。你可以创建一个`Bean`,继承自`WebMvcConfigurer`接口,并重写`addInterceptors`方法,在方法中添加Sentinel的拦截器。

添加SentinelWebInterceptor到拦截器中

  @Overrideprotected void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new TokenInfoInterceptor());registry.addInterceptor(new SentinelWebInterceptor()).addPathPatterns("/**");super.addInterceptors(registry);}

 


http://www.ppmy.cn/news/185765.html

相关文章

在R语言中实现Logistic逻辑回归

逻辑回归是拟合回归曲线的方法&#xff0c;当y是分类变量时&#xff0c;y f&#xff08;x&#xff09;。典型的使用这种模型是给定一组预测的X预测Ÿ。预测因子可以是连续的&#xff0c;分类的或两者的混合。最近我们被客户要求撰写关于Logistic逻辑回归的研究报告。 相关视频…

360路由器v2刷第三方固件_己亥年网件R6220路由器刷openwrt固件的方法(亲测可用)...

本人三年前入手网件R6220路由器,就是看中其品牌和较高的性价比。刚开始使用没有问题,一直很稳定,除了无线网信号不好(其他房间使用360、TP等垃圾路由器桥接)。但是最近使用发现,经常是无线信号满格但是无法上网,重启路由器以后会好一点,用一段时间又变得断断续续,实在…

usb网卡带宽测试软件,腾达AC9与网件R6220无线性能和USB速度测试

腾达AC9这款双频无线ac无线路由器,目前售价240元左右,偶尔活动价199元。无线方面是2.4G 300m + 5G 867m ,2x2MIMO,都有PA和LNA。全博通芯片,CPU是BCM47189,运行内存128MB,闪存8MB,有beamforming,即波速成形技术,天线3dbi,估计适合覆盖上下两层。1wan+4lan全千兆网口…

网件刷breed_网件R6220刷breed变砖的维修

首先说下网件R6220路由器的特点,有多种固件支持,并且有breed和PB-BOOT不死uboot加持,可玩性很强,刷机较不易变砖。 但是少数情况下运气欠佳,刷机时候输错了命令,或者更奇葩的是在刷机关键过程中被猫绊掉了电源,就会出现彻底变砖的杯具。别笑,真有这样的情况!这种情况是…

网件R6220刷回原厂固件的奇葩经历

网件R6220刷回原厂固件的奇葩经历 因为想体验openwrt固件&#xff0c;刷的openwrt 使用一段时间后发现&#xff0c;手机能正常&#xff0c;电脑却总是断流&#xff0c;网页看视频断断续续&#xff0c;迅雷不断&#xff0c;下载游戏也断流 再就是openwrt需要安装Qos&#xff…

网件R6220刷机失败

网件R6220救砖 一、出现情况&#xff1a; 1、 路由器开机后电源出现重复启动&#xff1b; 2、 按路由器上的恢复按钮&#xff0c;出现2灯、3灯交替闪烁&#xff0c;无法ping通192.168.1.1 3、 使用nmrpflash.exe这个软件刷机&#xff0c;一直提示“No response after 60 second…

Netgear R6220桥接组网设置

现在netgear的A6210无线网卡和R6220路由器的价格基本上一样&#xff0c;如果对移动性没有要求的话&#xff0c;那么选择R6220&#xff0c;WDS桥接方式组网&#xff0c;将比单纯的A6210功能更强大&#xff0c;信号穿透能力更强。 网上没有找到两台R6220路由器WDS桥接组网的设置…

r6220 虚拟服务器,R6220折腾记录 2021-06-15 最终还是刷了openwrt

本帖最后由 友谊 于 2021-6-15 01:02 编辑 现在是2021-06-08 我总结一下我买了这个路由器以后的折腾过程吧 ############################ 首先如果想折腾的玩家必须要了解路由器的启动知识 说一下路由器的启动过程: 通电以后路由器会启动引导区 然后这个引导区再根据reset键是…