错误示例
Error creating bean with name ‘instanceOperatorClientImpl’ defined in URL [jar:file:/Users/qiyuechuqi/devtools/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-naming-2.0.2.jar!/com/alibaba/nacos/naming/core/InstanceOperatorClientImpl.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘clientOperationServiceProxy’ defined in URL [jar:file:/Users/qiyuechuqi/devtools/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-naming-2.0.2.jar!/com/alibaba/nacos/naming/core/v2/service/ClientOperationServiceProxy.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘persistentClientOperationServiceImpl’ defined in URL [jar:file:/Users/qiyuechuqi/devtools/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-naming-2.0.2.jar!/com/alibaba/nacos/naming/core/v2/service/impl/PersistentClientOperationServiceImpl.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.naming.core.v2.service.impl.PersistentClientOperationServiceImpl]: Constructor threw exception; nested exception is java.lang.UnsatisfiedLinkError: /private/var/folders/ww/2lkbf3710c36xk622gydlp2m0000gn/T/librocksdbjni8433147615822558326.jnilib: dlopen(/private/var/folders/ww/2lkbf3710c36xk622gydlp2m0000gn/T/librocksdbjni8433147615822558326.jnilib, 0x0001): tried: ‘/private/var/folders/ww/2lkbf3710c36xk622gydlp2m0000gn/T/librocksdbjni8433147615822558326.jnilib’ (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e)))
nacos2.x不支持使用zulu版本的jdk,否则就会报各种奇葩的bug,例如什么9848端口或者找不到服务,nacos2.x可以向下兼容。
解决方案:
/usr/libexec/java_home -V 根据此命令查询jdk
第二个zulu是我默认的jdk,就是因为此jdk导致2.x的Nacos启动报错。
此处需要进入到/国内jdk下载Oracle版本jdk1.8后将此jdk安装的路径保存。然后打开Nacos的bin目录找到startup.sh
修改配置
将此处配置成你的地址。
然后启动 sh startup.sh -m standalone 或者 bash startup.sh -m standalone就可以看到2.x的Nacos启动成功了。