alibaba / nacos

an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.
https://nacos.io
Apache License 2.0
30.01k stars 12.8k forks source link

nacos 1.4.0 多平台兼容性疑问 #4336

Open lltx opened 3 years ago

lltx commented 3 years ago

Describe the bug

    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
    ... 105 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'persistentServiceProcessor' defined in URL [jar:file:/C:/Users/Administrator/.m2/repository/com/pig4cloud/nacos/nacos-naming/1.4.0/nacos-naming-1.4.0.jar!/com/alibaba/nacos/naming/consistency/persistent/impl/PersistentServiceProcessor.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.naming.consistency.persistent.impl.PersistentServiceProcessor]: Constructor threw exception; nested exception is java.lang.UnsatisfiedLinkError: C:\Users\Administrator\AppData\Local\Temp\librocksdbjni3732491341899342270.dll: Can't find dependent libraries
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:313)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:294)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1203)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:884)
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
    ... 119 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.naming.consistency.persistent.impl.PersistentServiceProcessor]: Constructor threw exception; nested exception is java.lang.UnsatisfiedLinkError: C:\Users\Administrator\AppData\Local\Temp\librocksdbjni3732491341899342270.dll: Can't find dependent libraries
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:217)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:309)
    ... 133 common frames omitted
Caused by: java.lang.UnsatisfiedLinkError: C:\Users\Administrator\AppData\Local\Temp\librocksdbjni3732491341899342270.dll: Can't find dependent libraries
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1817)
    at java.lang.Runtime.load0(Runtime.java:809)
    at java.lang.System.load(System.java:1086)
    at org.rocksdb.NativeLibraryLoader.loadLibraryFromJar(NativeLibraryLoader.java:78)
    at org.rocksdb.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:56)
    at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:64)
    at org.rocksdb.RocksDB.<clinit>(RocksDB.java:35)
    at com.alipay.sofa.jraft.storage.impl.RocksDBLogStorage.<clinit>(RocksDBLogStorage.java:75)
    at com.alipay.sofa.jraft.core.DefaultJRaftServiceFactory.createLogStorage(DefaultJRaftServiceFactory.java:50)
    at com.alipay.sofa.jraft.core.NodeImpl.initLogStorage(NodeImpl.java:545)
    at com.alipay.sofa.jraft.core.NodeImpl.init(NodeImpl.java:961)
    at com.alipay.sofa.jraft.core.NodeImpl.init(NodeImpl.java:137)
    at com.alipay.sofa.jraft.RaftServiceFactory.createAndInitRaftNode(RaftServiceFactory.java:47)
    at com.alipay.sofa.jraft.RaftGroupService.start(RaftGroupService.java:129)
    at com.alibaba.nacos.core.distributed.raft.JRaftServer.createMultiRaftGroup(JRaftServer.java:267)
    at com.alibaba.nacos.core.distributed.raft.JRaftProtocol.addLogProcessors(JRaftProtocol.java:163)
    at com.alibaba.nacos.naming.consistency.persistent.impl.PersistentServiceProcessor.init(PersistentServiceProcessor.java:149)
    at com.alibaba.nacos.naming.consistency.persistent.impl.PersistentServiceProcessor.<init>(PersistentServiceProcessor.java:143)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:204)
    ... 135 common frames omitted

Desktop (please complete the following information):

Additional context 在上述环境下 nacos 1.4 提示缺少相关依赖dll , 当然在参考 jraft、rocksdb issue 问题得到解决 Microsoft Visual C++ 2015 Redistributable"

https://github.com/facebook/rocksdb/wiki

但问题在其他操作系统 例如 此条 issue 报告:

以上问题是 100%可以复现 ,所以jraft协议取代自实现raft协议,这个对nacos 作为java 中间件的普适性冲击较大。

感觉以上兼容性报告issue,官方没有得到重视,特此提出 欢迎大伙交流哈

Kevinboy2020 commented 5 months ago

当前我们在中科麒麟也遇到了同样的问题?是否解决了呢

image

我看这个close了,是重复,还是解决了,谢谢

通过降低版本的方式,在麒麟上安装

qq31715879 commented 3 months ago

2024年了, 2.3.2最新版本还是依旧启动报错

3054308729 commented 3 weeks ago

大家在服务器安装 Microsoft Visual C++ 2015 Redistributable 后如果还不行。 请访问 https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 如果已经安装过,请先卸载原先的安装文件再,下载最新的安装文件。 我这边安装的nacos版本是:2.3.0。 服务器:windows 2016 datacenter 附上vc安装文件 VC_redist.x64.zip

dove2021 commented 1 week ago

我也遇到相同的问题,不过我是将jdk8升级到jdk17,解决,可以参考。