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,官方没有得到重视,特此提出 欢迎大伙交流哈
https://github.com/facebook/rocksdb/issues/7710
当然在 M1 上也不能正确运行
We can add some description and F&Q in document.
The problem is a dependency problem.
We can add some description and F&Q in document.
The problem is a dependency problem.
可能大家都在 mac 下开发,这个问题影响不大。 但是对于大部分window用户来讲体验并不好,昨天尝试去装 vc++ 2015 好难
,乱七八糟的依赖 。 window下还有解决方案、arm 或者 M1 就很难搞了、、、、
重构raft 技术选型有待商榷 个人看法
技术选型肯定是向前看,对于旧版本系统有一定的不支持或者依赖包安装是必然的。
M1是因为刚出,系统中有一些非兼容修改很正常,等待更新即可。
window也是普适系统,肯定优先使用更新更好的依赖包来运行,也没有问题。
至于ARM 中标麒麟(龙芯)操作,很抱歉,我们实在不知道还有这么个操作系统,甚至都不知道他是基于什么系统修改的。这种系统没法兼容。
技术选型肯定是向前看,对于就版本系统有一定的不支持或者依赖包安装是必然的。
M1是因为刚出,系统中有一些非兼容修改很正常,等待更新即可。
window也是普适系统,肯定优先使用更新更好的依赖包来运行,也没有问题。至于ARM 中标麒麟(龙芯)操作,很抱歉,我们实在不知道还有这么个操作系统,甚至都不知道他是基于什么系统修改的。这种系统没法兼容。
arm 啊
window也是普适系统,肯定优先使用更新更好的依赖包来运行,也没有问题。
为啥普适性系统 这么多报告兼容性的问题的?? 现在只有报告的少是因为 SCA 那边还是1.3.X 没有 1.4
我觉着兼容性问题 还是没有得到重视啊 兄弟
那您有什么办法能够解决兼容性吗?
自研的raft 有啥问题?为啥一定要切到sofa 上去 去耦合rocksdb
首先你需要了解nacos自己写的raft,严不严格,是不是标准raft 的实现,在考虑说为什么我们当初要重新对raft选型
首先你需要了解nacos自己写的raft,严不严格,是不是标准raft 的实现,在考虑说为什么我们当初要重新对raft选型
哦,没艾特你把? 严不严格和你兼容性有什么问题?eureka paxos 搞出来兼容性问题了 ?
首先呢,当初nacos自己写的raft是非标准的,没有经过证明的变种Raft实现,因此需要重新实现raft,raft 优秀的实现有很多,这一块当初选型了两款,但是jraft团队的沟通成本低,可以相互演进,因此选择jraft,至于普适性的问题,rocksdb不是强耦合,只是默认的存储而已,如果你需要,你可以参与贡献实现一个具有普适性的存储,或者等待rocksdb的升级或nacos官方对于这一块raft协议log存储的处理。
自研raft存在很多问题,比如不符合raft语意,性能低,数据多启动速度慢等。而且重复造轮子本身就不可取,别人已经有很好的实现了,没有必要再造一次轮子。
至于你说的所谓兼容性问题,其实是大家都不可避免的,软件更新,肯定向着更新更好更标准的方向发展。
解决方法应该考虑是否需要兼容,如果需要兼容怎么推动其兼容,如果推不动,最后再考虑是否绕开。
@KomachiSion @chuntaojun 感谢两位答疑, 此issue 目的是引起官方对兼容性问题的重视, 无论是使用jraft 还是兼容性 最终目标提高终端用户使用体验 。
再次感谢
附 vc++ 2015 下载链接 https://www.microsoft.com/zh-CN/download/details.aspx?id=48145
今天在linux跟windows服务器上搭建集群也碰到了该问题,很头疼,只能在另一台linux服务器上搭建了集群
技术选型肯定是向前看,对于旧版本系统有一定的不支持或者依赖包安装是必然的。
M1是因为刚出,系统中有一些非兼容修改很正常,等待更新即可。
window也是普适系统,肯定优先使用更新更好的依赖包来运行,也没有问题。至于ARM 中标麒麟(龙芯)操作,很抱歉,我们实在不知道还有这么个操作系统,甚至都不知道他是基于什么系统修改的。这种系统没法兼容。
m1处理器运行nacos报错。感觉应该是兼容问题。请问什么时候能做适配呢?
Most helpful comment
可能大家都在 mac 下开发,这个问题影响不大。 但是对于大部分window用户来讲体验并不好,昨天尝试去装 vc++ 2015 好难
,乱七八糟的依赖 。 window下还有解决方案、arm 或者 M1 就很难搞了、、、、
重构raft 技术选型有待商榷 个人看法