register 模块启动失败
内部资料,请扫码登录
佩格科技
# 关于 register 模块启动失败常见情况
pigx-register 就是 nacos 并未做任何封装,以下问题你使用 nacos.zip 启动也会遇到。
# java.lang.IllegalStateException: No DataSource set
- 错误日志
Caused by: java.lang.IllegalStateException: No DataSource set
at org.springframework.util.Assert.state(Assert.java:76)
at org.springframework.jdbc.support.JdbcAccessor.obtainDataSource(JdbcAccessor.java:86)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:376)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:465)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:475)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:508)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:515)
at com.alibaba.nacos.config.server.service.repository.extrnal.ExternalStoragePersistServiceImpl.findConfigMaxId(ExternalStoragePersistServiceImpl.java:659)
at com.alibaba.nacos.config.server.service.dump.processor.DumpAllProcessor.process(DumpAllProcessor.java:51)
at com.alibaba.nacos.config.server.service.dump.DumpService.dumpConfigInfo(DumpService.java:293)
at com.alibaba.nacos.config.server.service.dump.DumpService.dumpOperate(DumpService.java:205)
... 54 common frames omitted
- 解决方案
- 检查 hosts 配置确定 pigx-mysql 是否有效,逐条 ping 确认
- 检查 pigx-register/bootstrap.yml 里面的数据库配置是否有效,username password port 等信息
- 检查本地是否开启了 VPN 、翻墙软件,此类软件会影响本地 hosts 解析请关闭。
# java.lang.IllegalStateException:Fail to init node, please see the logs to find the reason.
- 错误日志
Caused by: java.lang.IllegalStateException: Fail to init node, please see the logs to find the reason.
at com.alipay.sofa.jraft.RaftServiceFactory.createAndInitRaftNode(RaftServiceFactory.java:48)
at com.alipay.sofa.jraft.RaftGroupService.start(RaftGroupService.java:129)
at com.alibaba.nacos.core.distributed.raft.JRaftServer.createMultiRaftGroup(JRaftServer.java:268)
at com.alibaba.nacos.core.distributed.raft.JRaftProtocol.addRequestProcessors(JRaftProtocol.java:163)
at com.alibaba.nacos.naming.core.v2.service.impl.PersistentClientOperationServiceImpl.<init>(PersistentClientOperationServiceImpl.java:94)
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:212)
... 49 common frames omitted
- 解决方案
请删除操作系统家目录下的 nacos 临时文件, 比如你是 Linux 那默认就是
~/nacos
;WindowsC:Users\xx\nacos
# java.lang.UnsatisfiedLinkError: /private/var/folders/3m/xx/T/librocksdbjni5xxx.jnilib:
- 错误日志
Caused by: java.lang.UnsatisfiedLinkError: /private/var/folders/3m/s4f08zv97cd24zb2xd9jw23r0000gn/T/librocksdbjni5085753294060122530.jnilib: dlopen(/private/var/folders/3m/s4f08zv97cd24zb2xd9jw23r0000gn/T/librocksdbjni5085753294060122530.jnilib, 1): no suitable image found. Did find:
/private/var/folders/3m/s4f08zv97cd24zb2xd9jw23r0000gn/T/librocksdbjni5085753294060122530.jnilib: mach-o, but wrong architecture
/private/var/folders/3m/s4f08zv97cd24zb2xd9jw23r0000gn/T/librocksdbjni5085753294060122530.jnilib: mach-o, but wrong architecture
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1950)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1832)
at java.lang.Runtime.load0(Runtime.java:811)
at java.lang.System.load(System.java:1088)
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)
解决方案
- 检查操作系统是否是 Mac M1 并且 JDK 安装的是 Zulu 版本,请使用 Oracle 官方的正式版本。 Nacos 不支持 M1
- 如果你使用的 arm 或者其他的奇怪操作系统,都可能会遇到此问题,你可以参考官方此 issue nacos 多平台兼容性疑问 #4336 (opens new window) 解决,但如果解决不了 请使用 旧 nacos 1.3.2 (opens new window) (抛弃 pigx-register)直连 pigxx_config 数据库即可
# 路径包含中文,需要打开以上注释配置指定不包含中文目录
解决方案
在其他盘创建一个不包含中文的新路径,比如
D:/nacos