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

在mac Apple M1 Pro 下使用报错 #8109

Closed ljwhx2002 closed 2 years ago

ljwhx2002 commented 2 years ago

不论是代码编译还是直接下载release包启动都一样的错

本地启动模式 sh startup.sh -m standalone

错误信息:

2022-04-08 17:17:00,086 ERROR Nacos failed to start ...

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.na cos.naming.core.v2.service.impl.PersistentClientOperationServiceImpl]: Constructor threw exception; ne sted exception is java.lang.UnsatisfiedLinkError: Can't load library: /var/folders/3f/ggndq4x96_s8sb28 r9tkrlsr0000gn/T/librocksdbjni474116185971816776.jnilib at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:187) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleIns tantiationStrategy.java:117) at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolv er.java:300) ... 53 common frames omitted Caused by: java.lang.UnsatisfiedLinkError: Can't load library: /var/folders/3f/ggndq4x96_s8sb28r9tkrls r0000gn/T/librocksdbjni474116185971816776.jnilib at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2398) at java.base/java.lang.Runtime.load0(Runtime.java:785) at java.base/java.lang.System.load(System.java:1979) 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.(RocksDB.java:35) at com.alipay.sofa.jraft.storage.impl.RocksDBLogStorage.(RocksDBLogStorage.java:75) at com.alipay.sofa.jraft.core.DefaultJRaftServiceFactory.createLogStorage(DefaultJRaftService

onewe commented 2 years ago

换 oracle jdk8 重试一下

ljwhx2002 commented 2 years ago

还是一样的,看起来是mac m1 是apple自己的arm platform导致,从docker镜像启动image也是有错:

nacos-standalone | Caused by: java.io.IOException: Function not implemented nacos-standalone | at sun.nio.fs.LinuxWatchService.(LinuxWatchService.java:64) nacos-standalone | at sun.nio.fs.LinuxFileSystem.newWatchService(LinuxFileSystem.java:47) nacos-standalone | at com.alibaba.nacos.sys.file.WatchFileCenter$WatchDirJob.(WatchFileCenter.java:184)

KomachiSion commented 2 years ago

duplicate with #4336

zqq90 commented 2 years ago

pom 中升级三个依赖就可以了, 编译和启动都顺利通过 其中 RocksDB JNI 是间接引入的

<grpc-java.version>1.47.0</grpc-java.version>
<protobuf-java.version>3.21.1</protobuf-java.version>
<rocksdb.version>6.29.5</rocksdb.version>

...

<dependency>
    <groupId>org.rocksdb</groupId>
    <artifactId>rocksdbjni</artifactId>
    <version>${rocksdb.version}</version>
</dependency>

PTAL @KomachiSion

zqq90 commented 2 years ago

还是一样的,看起来是mac m1 是apple自己的arm platform导致,从docker镜像启动image也是有错:

nacos-standalone | Caused by: java.io.IOException: Function not implemented nacos-standalone | at sun.nio.fs.LinuxWatchService.(LinuxWatchService.java:64) nacos-standalone | at sun.nio.fs.LinuxFileSystem.newWatchService(LinuxFileSystem.java:47) nacos-standalone | at com.alibaba.nacos.sys.file.WatchFileCenter$WatchDirJob.(WatchFileCenter.java:184)

这个问题社区里面已经很多同学给出了答案, 与题主的问题不是同一类 最简单的办法就是, 使用 CentOS8 的 Image 打包, 比如:

FROM centos:8.4.2105

PTAL @KomachiSion

LWeiM commented 1 year ago

pom 中升级三个依赖就可以了, 编译和启动都顺利通过 其中 RocksDB JNI 是间接引入的

<grpc-java.version>1.47.0</grpc-java.version>
<protobuf-java.version>3.21.1</protobuf-java.version>
<rocksdb.version>6.29.5</rocksdb.version>

...

<dependency>
    <groupId>org.rocksdb</groupId>
    <artifactId>rocksdbjni</artifactId>
    <version>${rocksdb.version}</version>
</dependency>

PTAL @KomachiSion

nacos2.2.0实测有效,但我将jraft依赖版本改了一下

1.3.11
sukai-cheng commented 1 year ago

你好, 我在pom中没有找到, 请问如何修改呢

LWeiM commented 1 year ago

你好, 我在pom中没有找到, 请问如何修改呢

你好,在pom里自己加的。

6.29.5
BrotherJie commented 7 months ago

结合上面的消息分享一点成功的经验: 环境:m1 macbook air, zulu-8 jdk

在根目录的pom文件下修改以下依赖版本可解决

   <protobuf-java.version>3.21.1</protobuf-java.version>
   <rocksdb.version>6.29.5</rocksdb.version>
   <jraft-core.version>1.3.11</jraft-core.version>

   <dependencies>
            <dependency>
                <groupId>org.rocksdb</groupId>
                <artifactId>rocksdbjni</artifactId>
                <version>${rocksdb.version}</version>
            </dependency>
  <dependencies>
miukinon commented 1 month ago

哥,这个pom文件在哪里啊,nacos根目录吗?我的咋没有啊 @BrotherJie