服务器升级Nacos2.2.3报错、rocksdb报错问题处理

2024-06-07 04:12

本文主要是介绍服务器升级Nacos2.2.3报错、rocksdb报错问题处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于系统之前使用的Nacos2.0.4有反序列化漏洞,故需要将Nacos升级到2.2.3版本。
该Nacos在本地运行没有问题,但是在Windows服务器运行就会报错:

rocksdb java.lang.UnsatisfiedLinkError: C:\Users\Administrator\AppData\Local\Temp\2\librocksdbjni5975940319059115965.dll: Can't find dependent libraries

表面上看是找不到dll文件,于是去百度,发现各种解决办法均无效。

刨根究底,发现这个问题是由于Nacos引用了rocksdb导致的,于是从rocksdb着手解决。

猜想过是因为jar包没有Temp目录的权限,从而导入文件失败导致,直接手动复制文件进目录,已然报错。
后来发现有网友说手动导入rocksdb依赖:

<dependency><groupId>org.rocksdb</groupId><artifactId>rocksdbjni</artifactId><version>版本号改成了跟Nacos依赖相同的版本</version><classifier>win64</classifier>
</dependency>

导入后发现这个依赖只是Nacos原有依赖排除掉除win64外的其他版本,并没有什么帮助。

陷入思考……

突然想到,之前旧版本(5.18.4)可以正常使用,这次Nacos2.2.3依赖的7.7.3却无法正常使用,怀疑是导入的依赖与系统(CPU?)不兼容。

于是将导入的rocksdb依赖改为:

<dependency><groupId>org.rocksdb</groupId><artifactId>rocksdbjni</artifactId><version>5.18.4</version><classifier>win64</classifier>
</dependency>

也就是改成了Nacos2.0.4依赖的rocksdb。
但是启动报了另外一个错,具体就不贴了,意思就是有一个方法不存在,猜想是7.7.3对5.18.4增加了新的方法,而且Nacos2.2.3使用了。

于是直接上mvn仓库找到最新版rocksdb,将依赖改为:

<dependency><groupId>org.rocksdb</groupId><artifactId>rocksdbjni</artifactId><version>9.2.1</version><classifier>win64</classifier>
</dependency>

然后本地测试的时候发现aliyun没有这么高等级的依赖,只能降到7.10.2才能依赖进来。

但是7.10.2和7.7.3存在着相同的问题。

于是打算从5.18.4 ~ 7.7.3之间来寻找一个能用的依赖。

直接试了6.29.5,也就是升级大版本7之前的最高版本。

然后启动成功!

总结:
Nacos项目新增依赖如下(放到所有依赖最上面):

<dependency><groupId>org.rocksdb</groupId><artifactId>rocksdbjni</artifactId><version>6.29.5</version><classifier>win64</classifier>
</dependency>

这篇关于服务器升级Nacos2.2.3报错、rocksdb报错问题处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1038133

相关文章

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

idea npm install很慢问题及解决(nodejs)

《ideanpminstall很慢问题及解决(nodejs)》npm安装速度慢可通过配置国内镜像源(如淘宝)、清理缓存及切换工具解决,建议设置全局镜像(npmconfigsetregistryht... 目录idea npm install很慢(nodejs)配置国内镜像源清理缓存总结idea npm in

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺