詹学伟
詹学伟
Published on 2024-05-20 / 29 Visits
0
0

SpringBoot Admin问题记录

一、说明

本章节不是描述怎么搭建admin服务端和客户端,这个比较简单,本文主要记录自己在搭建过程中遇到的一个问题,用了一点时间处理。

二、背景

项目有一个数据采集的场景,有很多设备,需要采集数据到数据中心处理,这里用的java(springboot项目)写的采集数据的程序,整合了redis、rocketmq等,注意这里写出来的整合的依赖等下会是问题关键。

三、问题

问题一

一直困扰着我的是,我自己搭建一个干净的admin server和client,相互通讯非常正常,没有不在线的情况。但是用在公司正式项目中就出现了client不在线问题。

报错:Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: io.netty.handler.codec.DefaultHeadersImpl.<init>(Lio/netty/util/HashingStrategy;Lio/netty/handler/codec/ValueConverter;Lio/netty/handler/codec/DefaultHeaders$NameValidator;ILio/netty/handler/codec/DefaultHeaders$ValueValidator;)V

刚开始找不到方向,后来问ai,给我几个方向查找原因,我初步判断是netty的版本冲突。

接着在idea中安装了maven依赖树的插件,

然后看到项目中有很多依赖冲突(虽然项目启动正常,运行也正常),然后就发现,netty在好几个依赖中都存在,然后一个一个的解决。解决方式是统一netty的依赖(排除其他依赖中的netty)

比如:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>2.3.12.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-all</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-common</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-handler</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-transport</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

因为我依赖了rocketmq,包含了netty的依赖,还有其他地方也有,这里就不展示了,最终留下了rocketmq的依赖,然后打包测试,一切正常。

其实之前一直没有在意依赖冲突的问题,借这次机会,顺便把项目的依赖整理了下,对于一个有强迫症的人而言,项目编译连warn都不允许看到的人,整理后非常干净,很解压

问题二

在服务端查看客户端日志的时候,中文乱码。客户端部署在windows环境下,查看客户端本地日志都正常,没有出现中文乱码的问题。

虽然不影响功能,但是看着不舒服,暂时没有解决掉这个问题~~~~~有没有遇到过这个问题的同学,一起交流下~~~


Comment