Skip to content

Nacos M1 支持

说明

M1 芯片的苹果系统无法使用zulu jdk运行NACOS,原因存在两个地方:

1. Nacos 官方(2.0.4)依赖grpc-java的1.26.0.而grpc官方在1.43.0已添加GRPC支持(不用改动版本)
2.  Nacos 官方(2.0.4)依赖jraft-core 1.3.8 又因为jraft 依赖rocksdb 的6.22.1.1,而rocksdb 在6.29.3才添加了m1芯片支持。

解决思路

NACOS官方肯定需要测试grpc 1.43.0、以及等待jraft-core修改而rocksdb依赖6.29.3以上版本后测试通过才会发布。
解决方法两种:

  1. 选择使用rosseta 运行JDK8来使用。(官方稳定)
  2. 自行修改相关依赖编译。

    解决方法1

    参考我之前写的M1 芯片下搭建Nacos

    解决方法2

    一共分两个部分,1. 修改相关依赖,2.编译
    首先下载nacos官方源码。Nacos,执行git checkout -b 2.0.4 2.0.4切换到2.0.4.

    修改jraft依赖版本

    1. 下载jraft项目sofa-jraft
    2. 执行git checkout -b 1.3.9 1.3.9切换到1.3.9
    3. 修改项目下pom.xml <rocksdb.version>6.29.3</rocksdb.version>rocksdb(6.29.3 目前02-25 m2仓库最高6.28.2 ).
    4. 下载rocksdb项目rocksdb,然后执行git checkout -b v6.29.3 v6.29.3.
    5. 编译rocksdb项目java-jni包,项目根目录下执行ROCKSDB_DISABLE_JEMALLOC=0 DEBUG_LEVEL=0 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home make rocksdbjavastatic 一定使用JDK11版本编译。
    6. mvn本地发布jar到本地仓库cd java/target&&mvn install:install-file -Dfile=./rocksdbjni-6.29.3-osx.jar -DgroupId=org.rocksdb -DartifactId=rocksdbjni -Dversion=6.29.3 -Dpackaging=jar
    7. 修改版本号mvn versions:set -DnewVersion=1.3.9-m1 然后执行mvn versions:commit
    8. 切换到jraft项目根目录执行mvn clean install -DskipTests
    9. 切换到Nacos项目根目录修改pom.xml,<jraft-core.version>1.3.9-m1</jraft-core.version>

      Nacos编译

    10. 切换到Nacos项目根目录执行mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
    11. cd distribution/target/ 目录就是编译完成的目录.

      运行效果

已编译包

引用

发表评论

电子邮件地址不会被公开。 必填项已用*标注